Datanode进程未在Hadoop中运行

Jaw*_*ria 36 configuration hadoop process

我使用本教程设置并配置了一个多节点Hadoop集群.

当我输入start-all.sh命令时,它会显示正确初始化的所有进程,如下所示:

starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-namenode-jawwadtest1.out
jawwadtest1: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest1.out
jawwadtest2: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-jawwadtest2.out
jawwadtest1: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-secondarynamenode-jawwadtest1.out
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-jobtracker-jawwadtest1.out
jawwadtest1: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest1.out
jawwadtest2: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-jawwadtest2.out
Run Code Online (Sandbox Code Playgroud)

但是,当我输入jps命令时,我得到以下输出:

31057 NameNode
4001 RunJar
6182 RunJar
31328 SecondaryNameNode
31411 JobTracker
32119 Jps
31560 TaskTracker
Run Code Online (Sandbox Code Playgroud)

如您所见,没有运行datanode进程.我尝试配置单节点群集但遇到了同样的问题.有人会知道这里可能出现什么问题吗?是否有任何配置文件未在教程中提及或我可能已查看过?我是Hadoop的新手,有点迷失,任何帮助都会非常感激.

编辑:hadoop-root-datanode-jawwadtest1.log:

STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.3
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/$
************************************************************/
2012-08-09 23:07:30,717 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loa$
2012-08-09 23:07:30,734 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:30,735 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:30,736 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:31,018 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapt$
2012-08-09 23:07:31,024 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl:$
2012-08-09 23:07:32,366 INFO org.apache.hadoop.ipc.Client: Retrying connect to $
2012-08-09 23:07:37,949 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: $
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(Data$
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransition$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNo$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNod$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode($
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataN$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.$
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1$

2012-08-09 23:07:37,951 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: S$
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at jawwadtest1/198.101.220.90
************************************************************/
Run Code Online (Sandbox Code Playgroud)

gil*_*tsl 66

你需要做这样的事情:

  • bin/stop-all.sh (或stop-dfs.shstop-yarn.sh在2.x的系列)
  • rm -Rf /app/tmp/hadoop-your-username/*
  • bin/hadoop namenode -format (或hdfs2.x系列)

解决方案取自:http: //pages.cs.brandeis.edu/~cs147a/lab/hadoop-troubleshooting/.基本上它包括从头开始重新启动,因此请确保您不会通过格式化hdfs来丢失数据.

  • 在 mac 中,如果您没有配置 `hadoop.tmp.dir`,默认临时目录将位于 `/tmp/hadoop-{username}`(第二步) (3认同)
  • 确实.那就是多节点!我在所有节点(主/从)中删除了我的tmp目录(在core-site.xml中设置),formmated所有节点,并像魅力一样工作! (2认同)

sun*_*kin 18

我遇到了同样的问题.我创建了一个hdfs文件夹'/ home/username/hdfs',其子目录名称,数据和tmp在hadoop/conf的config xml文件中引用.

当我启动hadoop并执行jps时,我找不到datanode,所以我尝试使用bin/hadoop datanode手动启动datanode.然后我从错误消息中意识到它有访问dfs.data.dir =/home/username/hdfs/data /的权限问题,这是在其中一个hadoop配置文件中引用的.我所要做的就是停止hadoop,删除/ home/username/hdfs/tmp/*目录中的内容,然后尝试这个命令 - chmod -R 755 /home/username/hdfs/然后启动hadoop.我能找到datanode!


Ani*_*ban 7

我在运行datanode时遇到了类似的问题.以下步骤很有用.

  1. 在[hadoop_directory] ​​/ sbin目录中使用./stop-all.sh来停止所有正在运行的服务.
  2. 使用rm -r [hadoop_directory] ​​/ tmp([hadoop_directory] ​​/etc/hadoop/core-site.xml中配置的路径)删除tmp目录
  3. sudo mkdir [hadoop_directory] ​​/ tmp(创建一个新的tmp目录)
  4. 转到*/hadoop_store/hdfs目录,其中已创建namenode和datanode作为子目录.(在[hadoop_directory] ​​/etc/hadoop/hdfs-site.xml中配置的路径).使用

    rm -r namenode
    
    rm -r datanode
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在*/hadoop_store/hdfs目录中使用

    sudo mkdir namenode
    
    sudo mkdir datanode
    
    Run Code Online (Sandbox Code Playgroud)

如果是权限问题,请使用

   chmod -R 755 namenode 

   chmod -R 755 datanode
Run Code Online (Sandbox Code Playgroud)
  1. 在[hadoop_directory] ​​/ bin中使用

     hadoop namenode -format (To format your namenode)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在[hadoop_directory] ​​/ sbin目录中,使用./start-all.sh或./start-dfs.sh来启动服务.
  3. 使用jps检查正在运行的服务.


小智 7

删除hadoop文件夹下的datanode,然后重新运行start-all.sh


Hyp*_*eep 6

我在运行单节点伪分布式实例时遇到了同样的问题.无法弄清楚如何解决它,但一个快速的解决方法是手动启动DataNode
hadoop-x.x.x/bin/hadoop datanode


小智 5

需要遵循3个步骤。

(1)需要去日志中查看最新的日志(在hadoop-2.6.0/logs/hadoop-user-datanode-ubuntu.log中)

如果错误如下

java.io.IOException: /home/kutty/work/hadoop2data/dfs/data 中的 clusterID 不兼容:namenode clusterID = CID-c41df580-e197-4db6-a02a-a62b71463089;数据节点 clusterID = CID-a5f4ba24-3a56-4125-9137-fa77c5bb07b1

即namenode cluster id 和datanode cluster id 不相同。

(2)现在复制上面错误中的namenode clusterID,即CID-c41df580-e197-4db6-a02a-a62b71463089

(3)将hadoopdata/dfs/data/current/version中的Datanode集群ID替换为Namenode集群ID

clusterID= CID-c41df580-e197-4db6-a02a-a62b71463089

重新启动 Hadoop。将运行DataNode