DataNode の転送スレッドプールサイズを増やすことで、Xceiver 数制限例外を解消します。
エラーメッセージ
java.io.IOException: Xceiver count xxxx exceeds the limit of concurrent xceivers: xxxx
原因
dfs.datanode.max.transfer.threads パラメーターは、DataNode が読み取りおよび書き込みのデータストリームを処理するために使用するスレッドプールのサイズを制御します。デフォルト値は 4096 です。この値が低すぎると、DataNode は Xceiver 数制限例外をスローします。
操作手順
-
E-MapReduce コンソールにログインします。
-
上部ナビゲーションバーで、適切なリージョンおよびリソースグループを選択します。
-
HDFS サービスの構成ページに移動します。
-
Clustersページで、ご利用のクラスターを見つけ、Services をクリックします。
-
Services ページで、HDFS セクションの Configure をクリックします。
-
-
構成検索エリアで、パラメーター dfs.datanode.max.transfer.threads を検索し、その値を増やします(例:8192 または 16384 に倍増)。
説明dfs.datanode.max.transfer.threads パラメーターは、DataNode 上で読み取りおよび書き込みのデータストリームを処理するためのスレッドプールサイズを制御します。デフォルト値は 4096 です。