【发布时间】:2017-07-05 22:56:21
【问题描述】:
我正在运行 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 /
这需要几分钟,然后其中一个数据节点会死掉。 查看日志我可以看到这是一个已知错误(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. 启动所有守护进程
不确定我还能尝试什么。
【问题讨论】:
-
/srv/shared是网络共享挂载文件夹吗?是否被多个数据节点共享? -
嗨 Remus,是的,这是一个共享的挂载文件夹。
-
不确定我为什么要使用共享文件夹进行 HDFS 存储,但无论如何,请确保 每个数据节点使用共享存储上的不同文件夹
-
嗨 Remus,我不会 ;-) 它是一个旧版应用程序。好的,谢谢,是的,这是有道理的。
-
即。 node1 一个有
dfs.datanode.data.dir值/srv/shared/node1/hadoop/dfs/data,node2 使用/srv/shared/node2/hadoop/dfs/data等等。
标签: hadoop microsoft-distributed-file-system