我在伪分布式模式下使用Hadoop,一切正常。但是由于某些原因我不得不重新启动计算机。现在,当我尝试启动Namenode和Datanode时,我发现只有Datanode正在运行。谁能告诉我这个问题的可能原因?或者我做错了什么?
我尝试了bin/start-all.sh
和bin/start-dfs.sh
。
答案 0 :(得分:97)
我遇到了namenode无法启动的问题。我找到了一个使用以下的解决方案:
rm -Rf <tmp dir>
(我的是/ usr / local / hadoop / tmp)bin/hadoop namenode -format
bin/start-all.sh
您可以考虑使用检查点回滚(如果已启用它)。
答案 1 :(得分:36)
hadoop.tmp.dir
为defaulted到/tmp/hadoop-${user.name}
,每次重启后都会清除它。将其更改为其他目录,该目录在重新启动时无法清除。
答案 2 :(得分:25)
以下 STEPS 使用hadoop 2.2.0为我工作,
第1步停止hadoop
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh
第2步删除tmp文件夹
hduser@prayagupd$ sudo rm -rf /app/hadoop/tmp/
第3步创建/ app / hadoop / tmp /
hduser@prayagupd$ sudo mkdir -p /app/hadoop/tmp
hduser@prayagupd$ sudo chown hduser:hadoop /app/hadoop/tmp
hduser@prayagupd$ sudo chmod 750 /app/hadoop/tmp
第4步格式namenode
hduser@prayagupd$ hdfs namenode -format
第5步启动dfs
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh
第6步检查jps
hduser@prayagupd$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
答案 3 :(得分:4)
在conf / hdfs-site.xml中,您应该拥有类似
的属性<property>
<name>dfs.name.dir</name>
<value>/home/user/hadoop/name/data</value>
</property>
属性“dfs.name.dir”允许您控制Hadoop写入NameNode元数据的位置。 给它另一个目录而不是/ tmp可以确保在重新启动时不会删除NameNode数据。
答案 4 :(得分:3)
打开一个新终端并使用 path-to-your-hadoop-install / bin / hadoop namenode
启动namenode使用 jps 和namenode的检查应该正在运行
答案 5 :(得分:2)
为什么这里的大多数答案都假设需要删除所有数据,重新格式化,然后重新启动Hadoop? 我们怎么知道namenode没有进展,但是花了很多时间。 当HDFS中存在大量数据时,它将执行此操作。 在假设任何东西挂起或卡住之前检查日志中的进度。
$ [kadmin@hadoop-node-0 logs]$ tail hadoop-kadmin-namenode-hadoop-node-0.log
...
016-05-13 18:16:44,405 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 117/141 transactions completed. (83%)
2016-05-13 18:16:56,968 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 121/141 transactions completed. (86%)
2016-05-13 18:17:06,122 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 122/141 transactions completed. (87%)
2016-05-13 18:17:38,321 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 123/141 transactions completed. (87%)
2016-05-13 18:17:56,562 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 124/141 transactions completed. (88%)
2016-05-13 18:17:57,690 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 127/141 transactions completed. (90%)
这是在等待特定系统近一个小时之后。 每次我看它都在进步。 在启动系统并检查日志之前,请先耐心等待Hadoop,然后再假设某些内容挂起或没有进展。
答案 6 :(得分:1)
如果有人使用hadoop1.2.1版本但无法运行namenode,请转到core-site.xml
,然后将dfs.default.name
更改为fs.default.name
。
然后使用$hadoop namenode -format
格式化namenode。
最后使用start-dfs.sh
运行hdfs,并使用jps ..
答案 7 :(得分:1)
在core-site.xml中:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourusername/hadoop/tmp/hadoop-${user.name}
</value>
</property>
</configuration>
和namenode格式:
hdfs namenode -format
为hadoop 2.8.1工作
答案 8 :(得分:0)
我遇到了同样的问题,名称节点不是从 Hadoop-3.2.1**** 版本开始的。我执行了解决问题的步骤:
从名称节点目录中删除临时文件夹中的内容。在我的情况下,root 用户创建的“当前”目录:rm -rf(目录名称)
格式化namenode:hdfs namenode -format
再次启动进程:start-dfs.sh
第 1 点在 hdfs-site.xml 文件中发生了变化。
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop/node-data/hdfs/namenode</value>
</property>
答案 9 :(得分:0)
您可以使用以下命令重新启动namenode,而不是格式化namenode。它对我有用:
sudo service hadoop-master restart
答案 10 :(得分:0)
删除资源管理器的数据文件夹后,问题就消失了 即使你有格式也无法解决这个问题。
答案 11 :(得分:0)
I got the solution just share with you that will work who got the errors:
1. First check the /home/hadoop/etc/hadoop path, hdfs-site.xml and
check the path of namenode and datanode
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
2.Check the permission,group and user of namenode and datanode of the particular path(/home/hadoop/hadoopdata/hdfs/datanode), and check if there are any problems in all of them and if there are any mismatch then correct it. ex .chown -R hadoop:hadoop in_use.lock, change user and group
chmod -R 755 <file_name> for change the permission
答案 12 :(得分:0)
重启后我碰到了同样的事情。
对于hadoop-2.7.3,我所要做的就是格式化namenode:
<HadoopRootDir>/bin/hdfs namenode -format
然后jps命令显示
6097 DataNode
755 RemoteMavenServer
5925 NameNode
6293 SecondaryNameNode
6361 Jps
答案 13 :(得分:0)
我运行$hadoop namenode
在前台手动启动namenode。
从日志中我发现50070是ocuupied,默认情况下由dfs.namenode.http-address使用。在hdfs-site.xml中配置dfs.namenode.http-address后,一切进展顺利。
答案 14 :(得分:0)
如果您的namenode卡在安全模式中,您可以ssh到namenode,su hdfs
用户并运行以下命令来关闭安全模式:
hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave
答案 15 :(得分:0)
在core-site.xml中添加 hadoop.tmp.dir 属性
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourname/hadoop/tmp/hadoop-${user.name}</value>
</property>
</configuration>
并格式化hdfs(hadoop 2.7.1):
$ hdfs namenode -format
core-default.xml中的默认值为/tmp/hadoop-${user.name},重启后将删除。
答案 16 :(得分:0)
对我来说,在更改namenode的目录后,以下工作正常
和hdfs-site.xml
- 在执行以下步骤之前,使用stop-all.sh
停止所有服务,或者在我的情况下,我使用stop-dfs.sh
来停止dfs
$rm -rf /tmp/haddop-$USER
hadoop/bin/hdfs namenode -format
start-dfs.sh
在我按照这些步骤操作后,我的namenode和datanode仍在使用新配置的目录。
答案 17 :(得分:0)
面临同样的问题。
(1)在配置.xml
文件时,请务必检查输入错误,尤其是xml标签。
(2)转到 bin 目录。并输入./start-all.sh
(3)然后键入jps
,以检查进程是否正常工作
答案 18 :(得分:0)
试试这个,
1)停止所有hadoop进程:stop-all.sh
2)手动删除tmp文件夹
3)格式名称节点:hadoop namenode -format
4)开始所有流程:start-all.sh
答案 19 :(得分:0)
如果您在重新启动系统后遇到此问题,则以下步骤将正常运行
解决方法。
1)格式化namenode:bin/hadoop namenode -format
2)再次启动所有流程:bin/start-all.sh
对于Perm修复: -
1)转到/conf/core-site.xml将fs.default.name更改为自定义的。
2)格式化namenode:bin/hadoop namenode -format
3)再次启动所有流程:bin/start-all.sh
答案 20 :(得分:0)
如果在运行hadoop时保留默认配置,则namenode的端口将为50070.您需要找到在此端口上运行的任何进程并首先终止它们。
停止所有正在运行的hadoop:bin/stop-all.sh
检查在端口50070中运行的所有进程
sudo netstat -tulpn | grep :50070
#check运行中的所有进程
端口50070,如果有任何/将
出现在输出的RHS上。
sudo kill -9 <process_id> #kill_the_process
。
sudo rm -r /app/hadoop/tmp
#delete temp文件夹
sudo mkdir /app/hadoop/tmp
#recreate it
sudo chmod 777 –R /app/hadoop/tmp
(777仅用于此示例目的)
bin/hadoop namenode –format
#format hadoop namenode
bin/start-all.sh
#start-all hadoop services
答案 21 :(得分:0)
您是否更改了conf/hdfs-site.xml
dfs.name.dir
?
更改后格式化namenode。
$ bin/hadoop namenode -format
$ bin/hadoop start-all.sh