我在 CentOS 8 虛擬機中有一個 3 節點 HA 集群。我正在使用 ZK 3.7.0 和 Hadoop 3.3.1。在我的集群中,我有 2 個名稱節點,節點 1 是活動名稱節點,節點 2 是備用名稱節點,以防節點 1 發生故障。另一個節點是 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 是備用 namenode,我不希望它運行 DataNode 行程,所以我殺死了它。我使用了 kill -9 命令(我知道這不是最好的方法,我應該使用 hdfs --daemon stop datanode)。然后我進入hadoop網站查看我有多少個datanode。在node1(活動名稱節點)Hadoop 網站中,在datanode 部分我只有1 個datanode,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 datanode 沒有存活 558 秒,它不會將該節點視為死亡。有人知道為什么會這樣嗎??
uj5u.com熱心網友回復:
在您的hdfs-site.xml 檢查值:
dfs.heartbeat.interval(以秒為單位確定資料節點心跳間隔。)
dfs.namenode.heartbeat.recheck-interval(這個時間決定了檢查過期datanode的間隔。有了這個值和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 Administration Cookbook (Packt) - 配置 Datanode 心跳:
Datanode Removal time = (2 x dfs.namenode.heartbeat.recheck-interval ) (10 X dfs.heartbeat.interval)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387518.html
標籤:Hadoop apache-zookeeper 网页版
上一篇:如何使用Rust實時顯示影像?
