一、Service RPC port
NameNode默認使用8020端口偵聽所有的RPC請求(HDP版本),包括客戶端數據請求,DataNode心跳和block上報,ZKFC模塊監控檢查和切換控制。當集群規模越和RPC請求來越大時,RPC請求響應時間也變得越來越長。
NameNode也給DataNode提供了專用的Service RPC port用於上報數據塊和心跳狀態,這樣可以減少和客戶端應用程序RPC隊列請求的競爭。這個端口默認沒有開啟,需要手動配置參數。
Service RPC port另外也用於NameNode HA模塊的ZKFC健康檢查和auto failover 控制。
二、參數配置和HA集群操作步驟
1、對於無NameNode HA的集群,參數配置如下,
<property>
<name>dfs.namenode.servicerpc-address</name>
<value>namenode-host:8040</value>
</property>
2、對於NameNode開啟了HA的集群,配置如下,
<property>
<name>dfs.namenode.servicerpc-address.test.nn1</name>
<value>test1st.com:8040</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.test.nn2</name>
<value>test2st.com:8040</value>
</property>
3、 重啟節點使參數生效步驟
整個操作步驟如下, 1)重啟standby namenode 2)重啟active namenode 3)rolling restart datanode, 4)stop ZKFC 5)重新格式化ZKFC並啟動zkfc hdfs zkfc -formatZK
注意:更改服務RPC端口設置需要重新啟動NameNodes,DataNodes和ZooKeeper故障轉移控制器才能完全生效。如果您具有NameNode HA設置,則可以一次重新啟動一個NameNode,然后重新啟動其余組件以避免群集停機。
如果是生成環境更要注意了,我在生成環境中把上述的配置加到hdfs-site.xml文件以后,還沒有重啟集群,就發現配置文件已經生效了,導致兩台namenode都掛掉了,,,最好是先修改完一台namenode,成功重啟以后再修改另外一台,否則可能導致公司的業務發生不可描述的問題。0.0
原文鏈接:Hortonworks社區
