扩展于2021-12-29日解决外网无法访问HDFS文件系统①博文,直达链接已附上,两篇内容配合食用更佳。
防火墙开启导致的error,关闭防火墙并设置开机不自启,Spark和hadoop平台中,很多服务貌似都和防火墙有点冲突,所以最好还是直接设置防火墙开机不自启动吧。
# 查看防火墙状态 systemctl status firewalld # 关闭防火墙 systemctl stop firewalld # 设置开机不自启 systemctl disable firewalld
如果防火墙关闭后还不行可以在hdfs-site.xml设置"dfs.socket.timeout"值为60000。
1.2 连接超时dfs.socket.timeout 60000
集群内部配置hosts映射是内网映射(内网ip与主机名映射),本地只能通过公网ip访问集群
Failed to connect to /内网ip:9000 for block, add to deadNodes and continue. org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/内网ip:9000]
本地IDEA无法连接内网ip,报错解读60000ms超时访问,连接不到内网ip(client访问的是外网地址,要连内网ip是肯定连不上的)
1.3 解决方法2. 问题引申 Win系统的特有bugonly cofig in clients dfs.client.use.datanode.hostname true
CopyException in thread "main" java.lang.UnsatisfiedlinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(IILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IILjava/lang/String;JZ)V at org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(Native Method) at org.apache.hadoop.util.NativeCrc32.verifyChunkedSums(NativeCrc32.java:59) at org.apache.hadoop.util.DataChecksum.verifyChunkedSums(DataChecksum.java:301) at org.apache.hadoop.hdfs.RemoteBlockReader2.readNextPacket(RemoteBlockReader2.java:231) at org.apache.hadoop.hdfs.RemoteBlockReader2.read(RemoteBlockReader2.java:152) at org.apache.hadoop.hdfs.DFSInputStream$ByteArrayStrategy.doRead(DFSInputStream.java:767) at org.apache.hadoop.hdfs.DFSInputStream.readBuffer(DFSInputStream.java:823) at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:883) at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:926) at java.io.DataInputStream.read(DataInputStream.java:149)
windows下HADOOP_HOME的bin目录脚本是32位的,应替换为支持windows版本的64位,网上有编译好的windows64位版本的hadoop包,需要的自行查阅下载,这里不做提供
在IDEA中配置环境参数
HADOOP_HOME=E:hadoophadoop版本 PATH=%PATH%;E:hadoophadoop版本bin
大年初一不出门,在此给大家拜年。 了解更多知识请戳下:
@Author:懒羊羊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)