DataNode不在单节点hadoop 2.6.0中启动

Fir*_*heh 19 hadoop hadoop-plugins hadoop2

我在运行Ubuntu 14.04LTS的笔记本电脑上安装了hadoop 2.6.0.我通过运行成功启动了hadoop守护进程start-all.shWourdCount成功运行了一个示例,然后我尝试运行一个不能与我一起使用的jar示例,所以我决定使用格式 hadoop namenode -format并重新开始,但是当我使用start-dfs.sh && start-yarn.shjps 启动所有守护进程时所有守护进程运行但不是如下所示的datanode:

hdferas@feras-Latitude-E4310:/usr/local/hadoop$ jps
12628 NodeManager
12110 NameNode
12533 ResourceManager
13335 Jps
12376 SecondaryNameNode
Run Code Online (Sandbox Code Playgroud)

怎么解决?

Sri*_*nth 52

我遇到过这个问题,很容易解决.您的datanode没有启动,因为在您的namenode和datanode开始运行后,您再次格式化了namenode.这意味着您已从namenode清除元数据.现在,为了运行字数而存储的文件仍然在datanode中,并且datanode不知道在哪里发送块报告,因为格式化了namenode所以它不会启动.

以下是修复它所需要做的事情.停止所有Hadoop服务(stop-all.sh)并关闭所有活动的ssh连接.

cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml
Run Code Online (Sandbox Code Playgroud)

此步骤很重要,请参阅datanode的数据存储位置.它是与datanode.data.dir关联的值.对我来说,它是/ usr/local/hadoop/hadoop_data/hdfs/datanode.打开终端并导航到上面的目录并删除该目录下名为current的目录.确保您只删除"当前"目录.

sudo rm -r /usr/local/hadoop/hadoop_data/hdfs/datanode/current
Run Code Online (Sandbox Code Playgroud)

现在格式化namenode并检查一切是否正常.

hadoop namenode -format
Run Code Online (Sandbox Code Playgroud)

如果它要求你做任何事情,请说是.

jps
Run Code Online (Sandbox Code Playgroud)

希望我的回答能解决这个问题.如果它不让我知道.

一点建议:不要格式化你的名字节点.没有namenode,就无法重建数据.如果你的wordcount没有运行那是另一个问题.


Piy*_*dav 5

您只需要删除DataNode文件夹的所有内容并使用以下命令格式化Datanode

hadoop namenode -format
Run Code Online (Sandbox Code Playgroud)