我正在运行hadoop0.20.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 /
几分钟后其中一个数据节点就死了。在日志中我可以看到这是一个已知的错误(目录已经被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/数据并格式化namenode。这样做之后,我可以成功地再次启动集群,一切正常,但只要我与hdfs交互或运行mr作业,datanode就会死掉。
根据其他帖子,我正在采取的具体步骤是:1。停止所有守护进程2。删除dfs/数据目录3。运行hadoop namenode-format 4。启动所有守护程序
不知道我还能尝试什么。
1条答案
按热度按时间9rnv2umw1#
正如remus rusanu正确指出的,hdfs存储在一个共享的挂载文件夹中,这就是问题所在。指定单独的data.dirs可以解决这个问题。