5

hadoop datanodes是否通过调用namenode向namenode注册自己,或者namenode是否有一个datanodes列表并与它们联系。

我想了解如何更好地解决我提出的新名称节点的问题(在名称节点故障之后),它看不到任何数据节点(但 fsimage 正确)。

4

3 回答 3

7

数据节点心跳到名称节点。名称节点不会到达数据节点。

即使在检索数据时,名称节点也不会到达数据节点。名称节点将通知客户端数据在哪里,客户端将从数据节点中检索数据。(澄清一下,在 MR 工作流程中,Job Tracker 从数据所在的名称节点中找到并适当地分配任务跟踪器。)

于 2013-05-21T10:05:45.333 回答
3

每个数据节点都将名称节点的详细信息保存在 hdfs.conf 文件中。namenode 将所有数据节点的名称保存在 slaves 文件中。我认为您应该更新namenode中的从属文件和datanodes中的主文件。

于 2013-05-21T11:27:02.143 回答
3

我想在硬关闭namenode之前你有一个工作集群(在datanodesfs.default.name中正确配置)。core-site.xml

当我用 关闭我的名称节点时kill -9 pid,我的数据节点开始显示在日志中:

INFO org.apache.hadoop.ipc.Client:重试连接到服务器:namenodehost/192.168.0.35:8020。已尝试 0 次。

INFO org.apache.hadoop.ipc.Client:重试连接到服务器:namenodehost/192.168.0.35:8020。已尝试 1 次。

...

INFO org.apache.hadoop.ipc.Client:重试连接到服务器:namenodehost/192.168.0.35:8020。已经尝试了 9 次。

警告 org.apache.hadoop.hdfs.server.datanode.DataNode:java.net.ConnectException:调用 namenodehost/192.168.0.35:8020 连接异常失败:java.net.ConnectException:连接被拒绝...

INFO org.apache.hadoop.ipc.Client:重试连接到服务器:namenodehost/192.168.0.35:8020。已尝试 0 次。

INFO org.apache.hadoop.ipc.Client:重试连接到服务器:namenodehost/192.168.0.35:8020。已尝试 1 次。

...

重复直到我再次加载我的namenode。那时,datanodes 的日志显示:

信息 org.apache.hadoop.hdfs.server.datanode.DataNode:DatanodeCommand 操作:DNA_REGISTER

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:在 0 秒内完成生成 1 个卷的正在写入的块报告

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:启动异步块报告扫描

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:10ms 完成异步块报告扫描

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:协调异步块扫描与文件系统。扫描期间同时删除 0 个块,扫描期间同时添加 0 个块,忽略 4 个正在进行的创建

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:针对当前状态在 0 毫秒内协调异步块报告

INFO org.apache.hadoop.hdfs.server.datanode.DataNode:411 个块的 BlockReport 生成耗时 0 毫秒,RPC 和 NN 处理耗时 68 毫秒

每个数据节点都重新连接到名称节点,一切正常。

这有帮助吗?

于 2013-05-21T12:36:07.507 回答