问题描述:
环境都配置好,第一次格式化后,启动集群,输入jps查看启动的节点是没有问题的。主从节点都正常。
但是不正常掉线一次重新登陆以后,主节点开始报错,ERROR: ld.so: object '/usr/local/lib/pscan.so' from /etc/ld.so.preload canno在网上找了一个方法,解决了主节点报错。
但是第二次启动集群,发现从节点的DataNode都没有启动。
第一个问题是hosts配置文件更改了。开始配置时自己的主机名映射到127.0.0.1的映射是删掉了的,但是再次打开每个节点的hosts文件时都有这个映射,需要重新进行删除保存(主从节点都需要)。
> vim /etc/hosts
# 需删除自己的主机名映射到127.0.0.1的映射,如hd-node1为:
127.0.0.1 hd-node1 hd-node1
此行务必删除!
# 加入以下内容如下:
192.168.0.101 hd-node1
192.168.0.102 hd-node2
查看hosts内容
> cat /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.101 hd-node1
192.168.0.102 hd-node2
第二个问题在格式化之前,删除datanode里面的信息 默认在hadoop-2.8.3/tmp
rm -rf tmp (从节点都要执行) 删除tmp文件
hdfs namenode -format (主节点执行) 在主节点再进行一次格式化
然后再重新启动。 每次启动集群从节点的datanode都能正常启动了。
如果还没有解决,可以查找存放namenode和datanode的文件,
应该是在hadoop-2.8.3/tmp/dfs里,找到 name/curren/VERSION 查看Namenode集群的ID
行: clusterID= ........
再找到从节点的datanode的ID,查看是否一致,如果不一致就修改为Namenode的ID。