本文介紹DataNode出現Xceiver數量限制異常的解決方案。
具體報錯
java.io.IOException: Xceiver count xxxx exceeds the limit of concurrent xcievers: xxxx
問題原因
dfs.datanode.max.transfer.threads參數用來設定DataNode處理讀寫資料流的線程池大小,預設值為4096個。如果該參數設定太小,會導致DataNode出現Xceiver數量限制的異常。
解決方案
在頂部功能表列處,根據實際情況選擇地區和資源群組。
進入HDFS服務的配置頁面。
在叢集管理頁面,單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊HDFS服務地區的配置。
在配置搜尋地區,搜尋參數dfs.datanode.max.transfer.threads,並適當地調大該參數值,一般建議翻倍增加,例如8192、16384。
說明dfs.datanode.max.transfer.threads參數表示DataNode處理讀寫資料流的線程池大小,預設值為4096個。