我在运行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
如何解决?
10条答案
按热度按时间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个服务
1hdlvixo2#
在yarn-site.xml中添加以下属性
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将启动。ni65a41a4#
不是正确的方法。但肯定有用~
从datanode、namenode和tmp文件夹中删除文件。在这些文件/文件夹中创建的任何文件/文件夹都归hadoop所有,并且可能引用了上次运行的datanode详细信息,这些详细信息可能已失败或被锁定,因为datanode在下次尝试时不会启动
unhi4e5o5#
我面对过这个问题,很容易解决。datanode没有启动,因为在namenode和datanode开始运行之后,您再次格式化了namenode。这意味着您已经从namenode中清除了元数据。现在,为运行字数计数而存储的文件仍在datanode中,datanode不知道向何处发送块报告,因为您格式化了namenode,所以它不会启动。
以下是你需要做的事情来修复它。停止所有hadoop服务(stop all.sh)并关闭所有活动的ssh连接。
这一步很重要,请查看datanode的数据存储在何处。它是与datanode.data.dir关联的值。对我来说是/usr/local/hadoop/hadoop\u data/hdfs/datanode。打开您的终端,导航到上面的目录并删除名为current的目录,该目录将位于该目录下。确保只删除“当前”目录。
现在格式化namenode并检查是否一切正常。
如果它要求你什么,就说是。
希望我的回答能解决这个问题。如果不让我知道。
小建议:不要格式化namenode。没有namenode,就无法重建数据。如果你的wordcount没有运行,那是另一个问题。
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将正常启动!!
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
z31licg08#
您只需要删除datanode文件夹的所有内容,并使用以下命令格式化datanode
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:/$日元
现在将启动以下服务:
az31mfrm10#
在core-site.xml中,检查temp目录的绝对路径是否指向错误或未创建(mkdir)。无法启动数据节点。