【问题标题】:Datanode keeps dyingDatanode不断死亡
【发布时间】: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


【解决方案1】:

正如 Remus Rusanu 正确指出的那样,HDFS 存储在一个共享的挂载文件夹中,这就是问题所在。指定单独的 data.dirs 可以解决问题。

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 2022-01-24
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多