datanode未在单节点hadoop2.6.0中启动

nhaq1z21  于 2021-05-30  发布在  Hadoop
关注(0)|答案(10)|浏览(468)

我在运行ubuntu14.04lts的笔记本电脑上安装了hadoop2.6.0。我通过运行 start-all.sh 我办了一个 WourdCount 示例成功,然后我尝试运行一个jar示例,但它对我不起作用,所以我决定使用 hadoop namenode -format 重新开始,但是当我使用 start-dfs.sh && start-yarn.sh 然后运行jps所有守护进程,但不运行datanode,如下所示:

hdferas@feras-Latitude-E4310:/usr/local/hadoop$ jps
12628 NodeManager
12110 NameNode
12533 ResourceManager
13335 Jps
12376 SecondaryNameNode

如何解决?

zqdjd7g9

zqdjd7g91#

我也遇到了同样的问题(datanode和tasktracker不会出现)。
解决方案:删除“data,name,and namesecondary”下的每个“current”子目录,以解决datanode/tasktracker在启动时不显示的问题-all.sh,然后是jps
(我的dfs.name.dir位置是:/home/training/hadoop temp/dfs/data/current/home/training/hadoop temp/dfs/name/current/主页/培训/hadoop临时/dfs/名称辅助/当前
确保停止服务:stop-all.sh
1转到data、name、namesecondary下的每个“current”子目录并删除(例如:rm-r name/current)
2格式:hadoop namenode-format
三。mkdir current under/home/training/hadoop temp/dfs/data/current下的mkdir current
4从/home/training/hadoop temp/dfs/name/current获取目录和内容,并复制到/data/current目录中
示例:文件位于:
/家庭/培训/hadoop临时工/dfs/姓名/当前
[training@centos 当前]$ls-l
-rw-rw-r--。1培训9901 9月25日01:50编辑
-rw-rw-r--。1培训582 9月25日01:50 fsimage
-rw-rw-r--。培训时间:9月8日,25日,下午1:50
-rw-rw-r--。1培训101 9月25日01:50版本
5将version中的storagetype=name\u节点更改为刚才复制的data/current/version中的storagetype=data\u节点。
之前:
[training@centos dfs]$cat数据/当前/版本
名称空间ID=1018374124
时间=0
storagetype=name\u节点
布局版本=-32
之后:
[training@centos dfs]$cat数据/当前/版本
名称空间ID=1018374124
时间=0
storagetype=数据\节点
布局版本=-32
6确保下面的每个子目录都有name/current为data、name、namesecondary提供的相同文件
[training@centos dfs]$密码
/家庭/培训/hadoop临时/dfs/
[training@centos dfs]$ls-l
总计12
drwxr-xr-x。5培训4096 9月25日01:29数据
图纸XRWXR-x。5培训4096 9月25日01:19姓名
图纸XRWXR-x。5培训4096 9月25日01:29姓名副官
7现在启动services:start-all.sh当您键入:jps时,您应该会看到所有5个服务

1hdlvixo

1hdlvixo2#

在yarn-site.xml中添加以下属性

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
r6vfmomb

r6vfmomb3#

我在格式化namenode时也遇到了这个问题。我解决问题的方法是:
找到你的 dfs.name.dir 位置。例如,你的 dfs.name.dir/home/hadoop/hdfs .
(a) 现在去吧, /home/hadoop/hdfs/current .
(b) 搜索文件 VERSION . 使用文本编辑器打开它。
(c) 会有一条线 namespaceID=122684525 (122684525是我的身份证,你的会有所不同)。记下id。
现在找到你的 hadoop.tmp.dir 位置。我的是 /home/hadoop/temp .
(a) 转到 /home/hadoop/temp/dfs/data/current .
(b) 搜索文件 VERSION 然后用文本编辑器打开它。
(c) 会有一条线 namespaceID= . 此文件和上一个文件中的命名空间ID必须相同。
(d) 这是我的datanode没有启动的主要原因。我把它们都做了一样的,现在datanode开始正常了。
注意:从 /home/hadoop/hdfs/current/VERSION/home/hadoop/temp/dfs/data/current/VERSION . 不要倒着做。
现在做 start-dfs.sh && start-yarn.sh . datanode将启动。

ni65a41a

ni65a41a4#

不是正确的方法。但肯定有用~
从datanode、namenode和tmp文件夹中删除文件。在这些文件/文件夹中创建的任何文件/文件夹都归hadoop所有,并且可能引用了上次运行的datanode详细信息,这些详细信息可能已失败或被锁定,因为datanode在下次尝试时不会启动

unhi4e5o

unhi4e5o5#

我面对过这个问题,很容易解决。datanode没有启动,因为在namenode和datanode开始运行之后,您再次格式化了namenode。这意味着您已经从namenode中清除了元数据。现在,为运行字数计数而存储的文件仍在datanode中,datanode不知道向何处发送块报告,因为您格式化了namenode,所以它不会启动。
以下是你需要做的事情来修复它。停止所有hadoop服务(stop all.sh)并关闭所有活动的ssh连接。

cat /usr/local/hadoop/etc/hadoop/hdfs-site.xml

这一步很重要,请查看datanode的数据存储在何处。它是与datanode.data.dir关联的值。对我来说是/usr/local/hadoop/hadoop\u data/hdfs/datanode。打开您的终端,导航到上面的目录并删除名为current的目录,该目录将位于该目录下。确保只删除“当前”目录。

sudo rm -r /usr/local/hadoop/hadoop_data/hdfs/datanode/current

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

hadoop namenode -format

如果它要求你什么,就说是。

jps

希望我的回答能解决这个问题。如果不让我知道。
小建议:不要格式化namenode。没有namenode,就无法重建数据。如果你的wordcount没有运行,那是另一个问题。

iaqfqrcu

iaqfqrcu6#

出现上述问题的原因是格式化namenode(hadoop namenode-format)而不停止dfs和yarn守护进程。在格式化namenode时,将出现下面给出的问题,您可以按y键进行此操作。重新格式化存储目录/tmp/hadoop root/dfs/name中的文件系统(是或否)
解决方案是,您需要删除dfs.name.dir的当前(目录名)目录中的文件,您在hdfs.site.xml中提到了这一点。在我的系统中,dfs.name.dir在/tmp/hadoop root/dfs/name/current中提供。rm-r/tmp/hadoop root/dfs/name/current通过使用上面的注解,我删除了当前目录中的文件。确保只删除“current”目录。在停止dfs和yarn守护程序(stop-dfs.sh&stop-yarn.sh)后,再次格式化namenode。现在datanode将正常启动!!

fnx2tebb

fnx2tebb7#

即使我有同样的问题,并检查了日志,发现下面的错误
异常-datanode log fatal org.apache.hadoop.hdfs.server.datanode.datanode:securemain java.io.ioexception:dfs.datanode.data.dir中的所有目录都无效:“/usr/local/hadoop\ u store/hdfs/datanode”/
运行以下命令以解决问题
苏多周hduser:hadoop /usr/local/hadoop_store
注意-我已经在路径/usr/local/hadoop\u store下创建了namenode和datanode

z31licg0

z31licg08#

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

hadoop namenode -format
kse8i1jr

kse8i1jr9#

我使用的是hadoop-2.6.0。我的解决方法是:
1.删除/usr/local/hadoop\u store/hdfs中的所有文件
命令:sudorm-r/usr/local/hadoop\u store/hdfs/*
2.格式化hadoop namenode
命令:hadoop namenode-format
3.转到../sbin目录(cd/usr/local/hadoop/sbin)
全部启动.sh
使用命令==>hduser@-3551:/$日元
现在将启动以下服务:

19088 Jps
18707 ResourceManager
19043 NodeManager
18535 SecondaryNameNode
18329 DataNode
18159 NameNode
az31mfrm

az31mfrm10#

在core-site.xml中,检查temp目录的绝对路径是否指向错误或未创建(mkdir)。无法启动数据节点。

相关问题