hdfs-site.xml調優:
1.dfs.namenode.handler.count=20 * log2(Cluster Size)
比如集群規模為 8 台時,此參數設置為 60
NameNode 有一個工作線程池,用來處理不同 DataNode 的並發心跳以及客戶端並發
的元數據操作。對於大集群或者有大量客戶端的集群來說,通常需要增大參數
dfs.namenode.handler.count 的默認值 10。設置該值的一般原則是將其設置為集群大小的自然對數乘以 20,即 20logN,N 為集群大小。
當集群很龐大卻沒有適當調大該值時,namenode和datanode的通信就會被阻塞,太大則會造成資源浪費
yarn-site.xml調優:
1.yarn.nodemanager.resource.memory-mb
表示該節點上 YARN 可使用的物理內存總量,默認是 8192(MB),注意,如果你的節點
內存資源不夠 8GB,則需要調減小這個值,而 YARN 不會智能的探測節點的物理內存總量。
2.yarn.scheduler.maximum-allocation-mb
單個任務可申請的最多物理內存量,默認是 8192(MB)
當數據源很大時卻沒有適當調大該值時,集群會跑得沒有預期快,甚至會宕機
Hadoop宕機
1.MR 造成系統宕機
控制 Yarn 同時運行的任務數,和每個任務申請的最大內存。
調整參數:yarn.scheduler.maximum-allocation-mb(單個任務可申請的最多物理內存量,默認是 8192MB)
2.寫入文件過量造成 NameNode 宕機
調高 Kafka 的存儲大小,控制從 Kafka到 HDFS 的寫入速度。高峰期的時候用 Kafka 進行緩存,高峰期過去數據同步會自動跟上。