datanode,datanode无法启动
小白求教,datanode无法正常启动是什么情况
这样的情况一般有2种可能:
1、datanode启动失败。可以像楼上说的倒datanode机器上执行jps命令查看datanode进程是否已经启动。如果jps不能正常显示,可以使用ps -ax | grep hadoop
2、datanode进程已经启动,仍在运行。出现这种情况是由于namenode和datanode中保存的namespaceID不同所引起的。知道的可能情况是启动过集群后,又重新执行了hadoop namenode -format导致的。解决方法是删掉datanode配置的dfs.data.dir目录,不过这样一来所有文件就都没有了。要慎重。

hdfs在写数据的过程中datanode死掉怎么办
在写入的时候不会重新重新分配datanode。 如果写入时,一个datanode挂掉,会将已经写入的数据放置到data queue的顶部,并将挂掉的datanode移出pipline,将数据写入到剩余的datanode.在写入结束后, namenode会收集datanode的信息,发现此文件的replication没有达到配置的要求(default=3),然后寻找一个datanode保存副本。
hadoop缩减datanode
1、配置NameNode的hdfs-site.xml,适当减小dfs.replication副本数,增加dfs.hosts.exclude配置
2、在对应路径(/etc/hadoop/)下新建excludes文件,并写入待删除DataNode的ip或域名
3、在NameNode上刷新所有DataNode
4、此时,可以在web检测界面(ip:50070)上可以观测到DataNode逐渐变为Dead。或者也可以用以下命令查看
主要是看Decommission Status 字段,Decommissioned(退役的),如果只是节点的datanode没有启动,或者服务器就没启动,这个字段会是Normal并且提示Dead datanodes (1):
DataNode无法启动,All specified directories are failed to load
Namenode节点因网络问题挂掉以后,整个集群的datanode等服务也相继挂了,待修复网络问题,并且启动集群后发现有两个datanode节点无法启动,查看日志发现其报错如下:
分析最终发现无法启动原因是disk1和disk2存储的数据版本不一致:
继续排查发现:
cat /mnt/disk2/hdfs/current/VERSION
而 cat /mnt/disk1/hdfs/current/VERSION
~ 不明白为啥这个ID会变~, 后续推测若集群可能被其他同事多次 hdfs namenode -format是可能会导致此问题的
hadoop中datanode怎么启动
首先,哪些服务器作为datanode,是根据你的"hadoop的安装目录/etc/conf/slaves"配置的主机的别名来决定的。
其次,在第一次启动Hadoop前,必须先将HDFS格式化。使用hadoop namenode -format命令来格式化。
然后执行下述命令来启动hadoop相关组件。
cd hadoop的安装目录/sbin
./start-all.sh
最后通过直接输入jps命令,来查看namenode、datanode是否启动成功。