Hadoop 2.8.0 全分布模式下遇见的坑

来源:互联网 发布:大尺度网络腐剧百度云 编辑:程序博客网 时间:2024/06/07 10:39

我这里设置了三台机子: 全是Ubuntu 16.04

192.168.244.120 Master192.168.244.128 Slave1.Hadoop192.168.244.130 Slave2.Hadoop

备注:机子上已经全部安装了,JDK1.8,Hadoop-2.8.0 ,ssh 并且设置好无密码登录。
以下是我碰见的所有坑:

java.io.EOFException: End of File Exception between local host is: "Slave2.Hadoop/192.168.244.130"; destination host is: "Master":9001; : java.io.EOFException; For more details s     ee:  http://wiki.apache.org/hadoop/EOFException

在节点2 datanode 上的log信息提示IOEF错误: 没有格式化namenode ,我在三台机子上格式化了全部namenode,再次运行成功。


java.io.IOException: java.lang.RuntimeException: Could not resolve Kerberos principal name: java.net.UnknownHostException: Slave2.Hadoop: Slave2.Hadoop: Name or service not known

节点2连接超时,通过检测发现PING MASTE能过,但是连接不上。
发现在 core-site.xml中的 namenode节点URI用的是 localhost,改成对应的IP,重试成功。

<configuration>        <property>                <name>hadoop.tmp.dir</name>                <value>file:/usr/local/hadoop-2.8.0/tmp/dfs/name</value>                <description>Abase for other temporary directories.</description>        </property>        <property>                <name>fs.defaultFS</name>                <value>hdfs://192.168.244.129:9001</value>        </property></configuration>

fs.defaultFS 下的值就是对应主机的地址


java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop-2.8.0/tmp/dfs/data: namenode clusterID = CID-d748b6ec-1d65-43eb-8d82-ba0462675c3f; datanode clusterID = CID-b4bf     606e-0409-468b-83e4-8efc39090b72

上面提示的信息是说namenode节点在格式化时没有关闭集群,导致生成了新的ID,不匹配。
解决: 去/tmp目录下删除所有内容,重新格式化namenode,成功。
或者 把/tmp/dfs/name/里面的VERSION中的ID复制到 /tmp/dfs/data 中的VERSION中去。


Failed on local exception: java.io.IOException: Connection reset by peer; Host Details : local host is: "localhost/127.0.0.1"; destination host is: "Master":     9001;

这个原因我一直不明白:在三个机器上的/etc/hosts中全部吧localhost 对应的地址改成127.0.0.1
同时全部删除/tmp下的全部内容,格式化namenode,再次运行,发现成功。。。

以上。。未完待续。。。