当数据节点作业被杀死时,为什么数据节点不会在 hadoop 网站中消失?
Why does a datanode doesn´t disappear in the hadoop web site when the datanode job is killed?
我在 CentOS 8 VM 中有一个 3 节点 HA 集群。我正在使用 ZK 3.7.0 和 Hadoop 3.3.1。
在我的集群中,我有 2 个名称节点,node1 是活动名称节点,node2 是备用名称节点,以防 node1 出现故障。另一个节点是datanode
我只是从命令开始
start-dfs.sh
在 node1 中,我有以下进程 运行:NameNode、Jps、QuorumPeerMain 和 JournalNode
在 node2 中,我有以下进程 运行:NameNode、Jps、QuorumPeerMain、JournalNode 和 DataNode。
我的hdfs-site.xml配置如下:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/datos/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/datos/datanode</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ha-cluster</value>
</property>
<property>
<name>dfs.ha.namenodes.ha-cluster</name>
<value>nodo1,nodo2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nodo1</name>
<value>nodo1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nodo2</name>
<value>nodo2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nodo1</name>
<value>nodo1:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nodo2</name>
<value>nodo2:9870</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nodo3:8485;nodo2:8485;nodo1:8485/ha-cluster</value>
</property>
问题是由于node2是standby namenode,我不希望它有DataNode进程运行,所以我杀了它。我使用了命令 kill -9(我知道这不是最好的方法,我应该使用 hdfs --daemon stop datanode)。
然后我进入hadoop网站查看我有多少个datanode。在 node1(活动名称节点)Hadoop 网站中,在数据节点部分我只有 1 个数据节点,node3。
问题是在node2(备用namenode)的Hadoop网站上是这样的:
如果你看不到图片:
default-rack/nodo2:9866 (192.168.0.102:9866) http://nodo2:9864 558s
/default-rack/nodo3:9866 (192.168.0.103:9866) http://nodo3:9864 1s
node2数据节点558s未存活,不认为该节点已死亡。
有人知道为什么会这样吗??
在你的 hdfs-site.xml
检查值:
dfs.heartbeat.interval(决定datanode心跳间隔在
秒。)
dfs.namenode.heartbeat.recheck-区间(这个时间决定
检查过期数据节点的时间间隔。有了这个价值和
dfs.heartbeat.interval,决定datanode的间隔为
陈旧与否也被计算在内。该配置的单位是
毫秒。)
在此处查看默认值和更多信息:
https://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
有一个判断节点何时死亡的公式:
2 * dfs.namenode.heartbeat.recheck-interval + 10 * (1000 * dfs.heartbeat.interval)
表示:
2 * 300000 + 10 * 3000 = 630000 milliseconds = 10 minutes 30 seconds or **630 seconds**.
来源:
Hadoop 2.x 管理手册 (Packt) - 配置 Datanode 心跳:
Datanode Removal time = (2 x dfs.namenode.heartbeat.recheck-interval ) + (10 X dfs.heartbeat.interval)
我在 CentOS 8 VM 中有一个 3 节点 HA 集群。我正在使用 ZK 3.7.0 和 Hadoop 3.3.1。 在我的集群中,我有 2 个名称节点,node1 是活动名称节点,node2 是备用名称节点,以防 node1 出现故障。另一个节点是datanode 我只是从命令开始
start-dfs.sh
在 node1 中,我有以下进程 运行:NameNode、Jps、QuorumPeerMain 和 JournalNode 在 node2 中,我有以下进程 运行:NameNode、Jps、QuorumPeerMain、JournalNode 和 DataNode。
我的hdfs-site.xml配置如下:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/datos/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/datos/datanode</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ha-cluster</value>
</property>
<property>
<name>dfs.ha.namenodes.ha-cluster</name>
<value>nodo1,nodo2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nodo1</name>
<value>nodo1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nodo2</name>
<value>nodo2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nodo1</name>
<value>nodo1:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nodo2</name>
<value>nodo2:9870</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nodo3:8485;nodo2:8485;nodo1:8485/ha-cluster</value>
</property>
问题是由于node2是standby namenode,我不希望它有DataNode进程运行,所以我杀了它。我使用了命令 kill -9(我知道这不是最好的方法,我应该使用 hdfs --daemon stop datanode)。
然后我进入hadoop网站查看我有多少个datanode。在 node1(活动名称节点)Hadoop 网站中,在数据节点部分我只有 1 个数据节点,node3。
问题是在node2(备用namenode)的Hadoop网站上是这样的:
如果你看不到图片:
default-rack/nodo2:9866 (192.168.0.102:9866) http://nodo2:9864 558s
/default-rack/nodo3:9866 (192.168.0.103:9866) http://nodo3:9864 1s
node2数据节点558s未存活,不认为该节点已死亡。 有人知道为什么会这样吗??
在你的 hdfs-site.xml 检查值:
dfs.heartbeat.interval(决定datanode心跳间隔在 秒。)
dfs.namenode.heartbeat.recheck-区间(这个时间决定 检查过期数据节点的时间间隔。有了这个价值和 dfs.heartbeat.interval,决定datanode的间隔为 陈旧与否也被计算在内。该配置的单位是 毫秒。)
在此处查看默认值和更多信息: https://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
有一个判断节点何时死亡的公式:
2 * dfs.namenode.heartbeat.recheck-interval + 10 * (1000 * dfs.heartbeat.interval)
表示:
2 * 300000 + 10 * 3000 = 630000 milliseconds = 10 minutes 30 seconds or **630 seconds**.
来源: Hadoop 2.x 管理手册 (Packt) - 配置 Datanode 心跳:
Datanode Removal time = (2 x dfs.namenode.heartbeat.recheck-interval ) + (10 X dfs.heartbeat.interval)