我正在运行hadoop 0.20.2(是的,这是一个旧版应用程序)。
我有2个节点的简单主从设置。
我可以使用master上的jps命令启动集群:
4513 TaskTracker
4225 DataNode
4116 NameNode
4565 Jps
4329 SecondaryNameNode
4410 JobTracker
在从站上使用jps命令:
2409 Jps
2363 TaskTracker
2287 DataNode
但是,如果我运行与hdfs交互的命令,例如:
hadoop dfs -ls /
需要花费几分钟,然后其中一个数据节点死亡。
查看日志,我可以看到这是一个已知的bug(the directory is already locked hadoop):
2017-07-05 16:12:59.986 INFO main org.apache.hadoop.hdfs.server.common.Storage - Cannot lock storage /srv/shared/hadoop/dfs/data. The directory is already locked.
Cannot lock storage /srv/shared/hadoop/dfs/data. The directory is already locked.
我尝试停止所有守护程序并删除dfs / data并格式化namenode。完成此操作后,我可以重新启动群集,一切正常,但是一旦与hdfs交互或运行MR作业,datanode就会死亡。
根据其他帖子,我正在采取的确切步骤是:
1.停止所有守护程序
2.删除dfs / data目录
3.运行hadoop namenode -format
4.启动所有守护程序
不知道我还能尝试什么。
最佳答案
正如Remus Rusanu正确指出的那样,HDFS存储在共享的已安装文件夹中,这就是问题所在。指定单独的data.dirs可解决此问题。
关于hadoop - Datanode不断死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44929090/