Hadoop中的datanode起不起来

2019-03-28 13:04|来源: 网络

如果大家在安装的时候遇到问题,或者按步骤安装完后却不能运行Hadoop,那么建议仔细查看日志信息,Hadoop记录了详尽的日志信息,日志文件保存在logs文件夹内。

无论是启动,还是以后会经常用到的MapReduce中的每一个job,以及HDFS等相关信息,Hadoop均存有日志文件以供分析。

例如:

NameNode和DataNode的namespaceID不一致,这个错误是很多人在安装时会遇到的,日志信息为:

java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:

NameNode namespaceID = 1307672299; DataNode namespaceID = 389959598

若HDFS一直没有启动,读者可以查询日志,并通过日志进行分析,以上提示信息显示了NameNode和DataNode的namespaceID不一致。

这个问题一般是由于两次或两次以上的格式化NameNode造成的,有两种方法可以解决,第一种方法是删除DataNode的所有资料;第二种方法是修改每个DataNode的namespaceID(位于/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/dfs/name/current/VERSION文件中),使其一致。

下面这两种方法在实际应用中也可能会用到。

1) 重启坏掉的DataNode或JobTracker。当Hadoop集群的某单个节点出现问题时,一般不必重启整个系统,只须重启这个节点,它会自动连入整个集群。

在坏死的节点上输入如下命令即可:

bin/Hadoop-daemon.sh start DataNode

bin/Hadoop-daemon.sh start jobtracker

2) 动态加入DataNode或TaskTracker。这个命令允许用户动态将某个节点加入集群中。

bin/Hadoop-daemon.sh --config ./conf start DataNode

bin/Hadoop-daemon.sh --config ./conf start tasktracker

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多
  • 无论是启动,还是以后会经常用到的MapReduce中的每一个job,以及HDFS等相关信息,Hadoop均存有日志文件以供分析。   例如:   NameNode和DataNode的namespaceID不一致,这个错误是很多人在安装时会遇到的,日志信息为:   java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:   NameNode namespaceID = 1307672299; DataNode namespac ...
  • 您好,很高兴为您解答。 1) 重启坏掉的DataNode或JobTracker。当Hadoop集群的某单个节点出现问题时,一般不必重启整个系统,只须重启这个节点,它会自动连入整个集群。 在坏死的节点上输入如下命令即可: bin/Hadoop-daemon.sh start DataNode bin/Hadoop-daemon.sh start jobtracker 2) 动态加入DataNode或TaskTracker。这个命令允许用户动态将某个节点加入集群中。 bin/Hadoop-daemon.sh - ...
  • 首先,哪些服务器作为datanode,是根据你的"hadoop的安装目录/etc/conf/slaves"配置的主机的别名来决定的。 其次,在第一次启动Hadoop前,必须先将HDFS格式化。使用hadoop namenode -format命令来格式化。 然后执行下述命令来启动hadoop相关组件。 cd hadoop的安装目录/sbin ./start-all.sh 最后通过直接输入jps命令,来查看namenode、datanode是否启动成功。
  • 日志文件通常在$HADOOP_HOME/logs , $HADOOP_HOME是你的hadoop安装目录。 您可以查看这两个日志文件: 您的namenode运行的节点中的hadoop-USERNAME-namenode-HOSTNAME.log hadoop-USERNAME-datanode-HOSTNAME.log ,它位于您启动新添加的datanode的节点中。 USERNAME和HOSTNAME是用于运行hadoop的用户名,以及节点的主机名。 The log files are usually i ...
  • 上述错误表明权限问题。 您必须确保hadoop用户具有/ usr / local / hadoop的适当权限。 为此,您可以尝试: sudo chown -R hadoop /usr/local/hadoop/ 要么 sudo chmod 777 /usr/local/hadoop/ The errors above suggest a permissions problem. You have to make sure that the hadoop user has the proper ...
  • datanode1的namespaceID与当前的namenode不匹配。也许你从另一个集群中复制了/ usr / local / hadoop / tmp / dfs / data目录。如果datanode1的数据不相关,你可以删除/ usr / local / hadoop datanode1的/ tmp / dfs / * the namespaceID of datanode1 do not match the current namenode's.Maybe you copied the /usr ...
  • 虽然该节点已停用,但仍会继续向主节点发送检测信号, 在停用的节点中停止Datanode和NodeManager进程。 然后重新启动Namenode。 并且为了完全从未来的start和stop过程中移除节点, 也从slaves文件中删除节点条目。 Though the node is decommissioned, it continues to send heartbeats to the master, Stop the Datanode and NodeManager process in the de ...
  • 我刚刚将默认的超级组名称更改为新创建的组,其中包含所有hadoop用户的成员。 现在该组中的所有用户都充当超级用户,因此它工作正常。 dfs.permissions.superusergroup Hadoopgroup 推荐超级用户 I just changed the default supergroup name to newly created group which has mem ...
  • 在datanode级别不可能。 对于单个文件,您可以通过将块大小设置为大于文件大小和复制因子为1来确保将其推入一台计算机。请注意,它仅适用于一个文件。 您必须将块大小重置为默认值,否则您将最终使用新块大小推送hdfs中的所有文件。 这不适用于多个文件,即一个月内的所有文件都属于一个datanode。 因为如果您使用上述想法,您将在一台计算机中存储一个文件(一天),但是月份的第二天数据可能会放在不同的数据节点下。 即使我们找到一个工作来将同一个月的多天文件放在同一个数据节点下,它也会在hadoop负载分配后最 ...
  • 停止所有hadoop服务 删除dfs / namenode 从slave和master中删除dfs / datanode 检查Hadoop文件夹的保留: sudo chmod -R 755 / usr / local / hadoop 重启Hadoop 检查/验证文件夹权限。 sudo chmod -R 755 / home / hadoop / appdata 如果仍有问题,请检查日志文件 Stop all hadoop services Delete dfs/namenode Delete dfs/da ...