我正在运行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 /
它需要几分钟,然后其中一个datanode死掉。 查看日志,我可以看到这是一个已知错误(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.启动所有守护进程
不确定我还能尝试什么。
答案 0 :(得分:0)
正如Remus Rusanu正确指出HDFS存储在共享的已安装文件夹中,这就是问题所在。指定单独的data.dirs可以解决问题。