Couldn't preview the file. NetworkError: Failed to execute 'send' on 'XMLHttpRequest':
Failed to load 'http://lindata01:9864/webhdfs/v1/warehouse/sparkiceberg/default/sample1
/metadata/v1.metadata.jsonop=OPEN&namenoderpcaddress=lindata01:8020&offset=0&_
=1712893436827'.Couldn't preview the file. NetworkError:
Failed to execute 'send' on 'XMLHttpRequest': Failed to load '
这个错误信息提示的是,在尝试预览文件时,通过 XMLHttpRequest
的 send
方法执行请求时失败了。具体地,是在尝试加载指定 URL(http://lindata01:9864/webhdfs/v1/warehouse/sparkiceberg/default/sample1/metadata/v1.metadata.json?op=OPEN&namenoderpcaddress=lindata01:8020&offset=0&_=1712893436827
)时发生了问题。
可能的原因包括:
网络连接问题:客户端无法与服务器 lindata01
建立连接,可能是因为网络不通、防火墙设置、或者服务器没有运行等原因。
服务器问题:lindata01
上的 WebHDFS 服务可能没有正确运行,或者服务端口 9864
并没有开放或监听请求。
权限问题:当前用户可能没有权限访问 lindata01
上的 WebHDFS 服务,或者没有足够的权限去读取指定路径下的文件。
路径或参数错误:请求的 URL 可能包含错误的路径或参数,导致服务器无法识别或处理请求。
服务器配置问题:WebHDFS 服务器的配置可能存在问题,比如没有正确配置与 NameNode 的通信,导致无法找到或加载指定的文件。
浏览器或客户端问题:如果是在浏览器中预览文件,那么可能是浏览器插件、设置或者客户端脚本的问题。
跨域请求问题:如果客户端和服务器不在同一个域下,可能会因为浏览器的同源策略而遭到阻止。
解决这个问题的步骤可能包括:
检查网络连接,确保客户端能够访问到服务器lindata01
。检查服务器 lindata01
上的 WebHDFS 服务是否正常运行,并且端口 9864
是否开放。检查当前用户是否有足够的权限去访问和读取指定的文件。检查请求的 URL 是否正确,包括路径和参数。检查服务器的配置,确保 WebHDFS 能够正确与 NameNode 通信。如果是在浏览器中预览,尝试清除浏览器缓存、禁用插件或尝试不同的浏览器。检查是否有跨域请求的限制,并考虑是否需要设置 CORS(跨源资源共享)策略。 报错原因
hdfs-site.xml 文件中的 dfs.webhdfs.enabled 没有配置或者配置为 false
解决方案
1、编辑文件 hdfs-site.xml
增加或修改的配置信息为:
<property> <name>dfs.webhdfs.enabled</name> <value>true</value></property>
2.本机映射
修改"C:\Windows\System32\drivers\etc\hosts"
问题总结
针对预览文件时遇到的通过XMLHttpRequest发送请求失败的问题,我们可以采取以下解决方案:
检查网络连接: 确保客户端与服务器lindata01
之间的网络连接是通畅的。尝试ping命令或其他网络工具来测试网络连接。验证服务器状态: 确认lindata01
服务器上的WebHDFS服务是否正在运行。检查端口9864
是否已开放且服务正在监听该端口。查看服务器日志文件,以获取任何关于服务启动或失败的信息。检查用户权限: 确认当前用户是否有权限访问服务器lindata01
。检查HDFS文件系统的权限设置,确保用户有读取目标文件的权限。验证URL和参数: 仔细核对请求的URL,确保路径、文件名和参数都是正确的。特别注意op=OPEN
、namenoderpcaddress
等参数的正确性和格式。检查服务器配置: 验证WebHDFS服务的配置,包括与NameNode的通信设置。确保配置文件中没有错误,且所有必要的配置项都已正确设置。