Namenode没有开始
我在伪分布式模式下使用Hadoop,一切工作正常。 但之后我不得不重新启动我的电脑,因为某些原因。 而现在当我试图启动Namenode和Datanode时,我只能findDatanode正在运行。 谁能告诉我这个问题的可能原因? 还是我做错了什么?
我试了bin/start-all.sh
和bin/start-dfs.sh
。
我正面临着namenode的问题没有开始。 我发现一个解决scheme使用以下
- 首先删除临时文件夹中的所有内容:
rm -Rf <tmp dir>
(我是/ usr / local / hadoop / tmp) - 格式化namenode:
bin/hadoop namenode -format
- 再次启动所有进程:
bin/start-all.sh
您可以考虑使用检查点回滚(如果启用了)。
core-site.xml中的/tmp/hadoop-${user.name}
默认为/tmp/hadoop-${user.name}
,每次重新启动后都会清空。 将其更改为其他一些在重新启动时无法清理的目录。
之后STEPS为hadoop 2.2.0工作,
第一步停止Hadoop
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh
第2步删除tmp文件夹
hduser@prayagupd$ sudo rm -rf /app/hadoop/tmp/
第3步创build/ 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
STEP 4格式的名称节点
hduser@prayagupd$ hdfs namenode -format
STEP 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
在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数据不会被重新启动时被删除。
打开一个新的terminal并使用path-to-your-hadoop-install / bin / hadoop namenode来启动namenode
使用jps和namenode的检查应该正在运行
如果有人使用hadoop1.2.1版本并且无法运行namenode,请转至core-site.xml
,并将dfs.default.name
更改为fs.default.name
。
然后使用$hadoop namenode -format
格式化$hadoop namenode -format
。
最后使用start-dfs.sh
运行hdfs并使用jps检查服务。
为什么这里的大多数答案都假设所有数据都需要删除,重新格式化,然后重新启动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,并在假设某些内容被挂起或未执行之前检查日志。
在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工作
你改变了conf/hdfs-site.xml
dfs.name.dir
吗?
格式化namenode后,你改变它。
$ bin/hadoop namenode -format $ bin/hadoop start-all.sh
如果在重新启动系统后面临这个问题,那么下面的步骤将会正常工作
解决方法。
1)格式化namenode: bin/hadoop namenode -format
2)再次启动所有进程: bin/start-all.sh
对于烫发修复: –
1)转到/conf/core-site.xml将fs.default.name更改为您的自定义名称。
2)格式化namenode: bin/hadoop namenode -format
3)再次启动所有进程: bin/start-all.sh
面临同样的问题。
(1)总是检查configuration.xml
文件中的input错误,特别是xml标签。
(2)去斌目录。 并input./start-all.sh
(3)然后键入jps
,检查进程是否正在工作
在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},重启后会被删除。
尝试这个,
1)停止所有hadoop进程: stop-all.sh
2)手动删除tmp文件夹
3)格式化namenode: hadoop namenode -format
4)启动所有进程: start-all.sh
如果在运行hadoop时保持默认configuration,则namenode的端口将是50070.您将需要find在此端口上运行的任何进程,并先杀掉它们。
-
停止所有正在运行的hadoop:
bin/stop-all.sh
检查在端口50070中运行的所有进程
-
sudo netstat -tulpn | grep :50070
sudo netstat -tulpn | grep :50070
检查在端口50070中运行的任何进程,如果有任何/将出现在输出的RHS。 -
sudo kill -9 <process_id> #kill_the_process
。 -
sudo rm -r /app/hadoop/tmp
#删除临时文件夹 -
sudo mkdir /app/hadoop/tmp
#recreate它 -
sudo chmod 777 –R /app/hadoop/tmp
(仅供参考777) -
bin/hadoop namenode –format
#format hadoop namenode -
bin/start-all.sh
#启动所有hadoop服务
参考这个博客
对于我来说,我改变了hdfs-site.xml
中的namenode和datanode的目录后,下面的工作
– 在执行以下步骤之前,用stop-all.sh
停止所有服务,或者在我的情况下,我使用stop-dfs.sh
来停止dfs
- 在新configuration的目录中,对于每个节点(namenode和datanode),删除其中的每个文件夹/文件(在我的情况下是“当前”目录)。
- 删除Hadoop临时目录:
$rm -rf /tmp/haddop-$USER
- 格式化Namenode:
hadoop/bin/hdfs namenode -format
-
start-dfs.sh
在我遵循这些步骤之后,使用新configuration的目录,我的namenode和datanodes是活着的。
我运行$hadoop namenode
在前台手动启动namenode。
从日志中我发现,50070是由dfs.namenode.http-address默认使用的。 在hdfs-site.xml中configurationdfs.namenode.http-address后,一切进展顺利。
重启后我碰到了同样的事情。
对于hadoop-2.7.3我只需要格式化namenode:
<HadoopRootDir>/bin/hdfs namenode -format
然后一个jps命令显示
6097 DataNode 755 RemoteMavenServer 5925 NameNode 6293 SecondaryNameNode 6361 Jps
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
删除资源pipe理器的数据文件夹后,问题就消失了。
即使你有格式化也无法解决这个问题。
如果你的namenode卡在安全模式,你可以SSH名字节点, su hdfs
用户并运行以下命令closures安全模式:
hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave