hadoop - Namenode 不检测数据节点故障

标签 hadoop hdfs

我已经设置了一个 Hadoop 高可用性集群,包括 3 个节点作为主节点(3 个日志节点、事件名称节点和备用名称节点,没有辅助名称节点)和 3 个数据节点。 使用命令

hadoop-daemon.sh 启动 journalnode hadoop-daemon.sh 启动namenode hadoop-daemon.sh 启动zkfc

我启动 namenode 服务并使用命令 hadoop-daemon.sh start datanode 我启动 datanode 服务。

问题是当我故意使用命令停止数据节点时一个事件的节点,我认为名称节点不会检测到数据节点的故障!

最佳答案

对于 future 的读者,来自 here :

在以下情况下,数据节点被认为是陈旧的:

dfs.namenode.stale.datanode.interval < last contact < (2 * dfs.namenode.heartbeat.recheck-interval)

在 NameNode UI Datanodes 选项卡中,一个陈旧的 datanode 将脱颖而出,因为在事件的 datanodes 中具有更大的 Last contact 值(也可在 JMX 输出中获得)。当数据节点陈旧时,它将被赋予最低的读写优先级。

使用默认值,名称节点将在其心跳不存在 30 秒时认为数据节点已失效。再过 10 分钟没有心跳(总共 10.5 分钟),一个数据节点被认为是死的。

相关属性包括:

dfs.heartbeat.interval - default: 3 seconds
dfs.namenode.stale.datanode.interval - default: 30 seconds
dfs.namenode.heartbeat.recheck-interval - default: 5 minutes
dfs.namenode.avoid.read.stale.datanode - default: true
dfs.namenode.avoid.write.stale.datanode - default: true

关于hadoop - Namenode 不检测数据节点故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354481/

相关文章:

java - Hadoop 为每个映射器使用一个实例

hadoop - curl 下载到 HDFS

hadoop - 从 Spark 作业创建 FS 的快照

java - Hadoop命令错误中FSIMAGE和EDIT文件的内容

hadoop - 无法使用Hadoop Web UI在HDFS中打开/​​下载文件

hadoop - 为什么 spark 抛出带有序列文件的 NotSerializableException org.apache.hadoop.io.NullWritable

hadoop - Hadoop问题,尝试在hadoop上运行基本WordCount MapReduce

sql - SQL/HQL总数未在联接上工作

hadoop - 自定义映射器作为jar文件

hadoop - 使用 Hive JDBC 驱动程序通过 Squirrel 连接到 Knox