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目录,不过这样一来所有文件就都没有了。要慎重。

hadoop中datanode怎么启动
首先,哪些服务器作为datanode,是根据你的"hadoop的安装目录/etc/conf/slaves"配置的主机的别名来决定的。
其次,在第一次启动Hadoop前,必须先将HDFS格式化。使用hadoop namenode -format命令来格式化。
然后执行下述命令来启动hadoop相关组件。
cd hadoop的安装目录/sbin
./start-all.sh
最后通过直接输入jps命令,来查看namenode、datanode是否启动成功。
Hadoop没有启动datanodes
采用Hadoop自带的基准测试工具写入文件时,出现问题:
采用 $jps 命令查看,datanodes节点中只启动了“nodemanager",并无“datanodes”进程。
搜索后大多博客说是“多次格式化namenode导致的namenode与datanode之间的不一致”。
于是删除之前的dfs.datanode.data.dir目录(我没有数据就哦),并重新修改了各节点 /hadoop-3.1.3/etc/hadoop/hdfs-site.xml 的相关数据路径:
重新格式化 hadoop namenode -format
然后再启动集群,还真解决了吖~
datanode不能启动为什么
这样的情况一般有2种可能:
1、datanode启动失败。可以像楼上说的倒datanode机器上执行jps命令查看datanode进程是否已经启动。如果jps不能正常显示,可以使用ps -ax | grep hadoop
2、datanode进程已经启动,仍在运行。出现这种情况是由于namenode和datanode中保存的namespaceID不同所引起的。知道的可能情况是启动过集群后,又重新执行了hadoop namenode -format导致的。解决方法是删掉datanode配置的dfs.data.dir目录,不过这样一来所有文件就都没有了。要慎重。
那具体报什么错误呢,查看下日志吧
怎么停止和重新启用hadoop的DataNode
首先建立一个excludes文件.它是一个文本, 里面每行就是想要停掉的主机名.这里excludes 放在 $HADOOP_HOME下
例如
CS02
CS03
CS04
CS05
CS06
CS07
CS08
CS09
CS10
这样就表明要把9台机器给停了.
然后在conf/hadoop-site.xml添加这样的属性:
property
namedfs.hosts.exclude/name
valueexcludes/ value
/property
做完这步, 用bin/hadoop dfsadmin -refreshNodes命令更新结点以及hadoop配置
然后你可以通过 bin/hadoop dfsadmin -report 就可以查看到类似这样的信息:
Name: 192.168.0.86:50010
State : Decommission in progress
Total raw bytes: 30452150272 (28.36 GB)
Remaining raw bytes: 17727606637(16.51 GB)
Used raw bytes: 6480990208 (6.04 GB)
% used: 21.28%
Last contact: Thu Nov 27 02:25:40 CST 2008
Name: 192.168.0.89:50010
State : Decommissioned
Total raw bytes: 0 (0 KB)
Remaining raw bytes: 0(0 KB)
Used raw bytes: 4703211520 (4.38 GB)
% used: ∞%
Last contact: Thu Jan 01 08:00:00 CST 1970
可以看到86在停止中, 89已经停止了.
在没停止之前, mapreduce会拒绝操作. 会出异常的
hdfs在写数据的过程中datanode死掉怎么办
在写入的时候不会重新重新分配datanode。 如果写入时,一个datanode挂掉,会将已经写入的数据放置到data queue的顶部,并将挂掉的datanode移出pipline,将数据写入到剩余的datanode.在写入结束后, namenode会收集datanode的信息,发现此文件的replication没有达到配置的要求(default=3),然后寻找一个datanode保存副本。