Hadoop 数据节点一直在消亡
我正在运行hadoop 0.20.2(是的,这是一个遗留应用程序)。 我有一个简单的主从设置,有2个节点。 我可以在master上使用jps命令启动集群:Hadoop 数据节点一直在消亡,hadoop,microsoft-distributed-file-system,Hadoop,Microsoft Distributed File System,我正在运行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交互的命令,如: had
4513 TaskTracker
4225 DataNode
4116 NameNode
4565 Jps
4329 SecondaryNameNode
4410 JobTracker
和从机上的jps命令:
2409 Jps
2363 TaskTracker
2287 DataNode
但是,如果我运行与hdfs交互的命令,如:
hadoop dfs -ls /
这需要几分钟,然后其中一个数据节点就死了。
查看日志,我可以看到这是一个已知的bug():
我已尝试停止所有守护进程,删除dfs/数据并格式化namenode。这样做之后,我可以成功地再次启动集群,一切正常,但一旦我与hdfs交互或运行MR作业,数据节点就会死亡
根据其他帖子,我正在采取的具体步骤是:
1.停止所有守护进程
2.删除dfs/数据目录
3.运行hadoop namenode-format
4.启动所有守护进程
不确定我还能尝试什么。正如Remus Rusanu正确指出的那样,HDFS存储在一个共享的挂载文件夹中,这就是问题所在。指定单独的data.dirs解决了这个问题。是
/srv/shared
网络共享挂载文件夹吗?它是否由多个数据节点共享?嗨,Remus,是的,这是一个共享装载的文件夹。我不确定您为什么要将共享文件夹用于HDFS存储,但无论如何,请确保每个数据节点在共享存储Hi-Remus上使用不同的文件夹,我不会;-)这是一个遗留应用程序。好的,谢谢,是的,这很有道理。node1-one具有dfs.datanode.data.dir
值/srv/shared/node1/hadoop/dfs/data
,node2使用/srv/shared/node2/hadoop/dfs/data
等等。
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.