このトピックでは、DataNode の Xceiver の数が制限されている問題のトラブルシューティング方法について説明します。
エラーメッセージ
java.io.IOException: Xceiver count xxxx exceeds the limit of concurrent xcievers: xxxx
原因
dfs.datanode.max.transfer.threads パラメーターは、DataNode が読み取りおよび書き込みデータストリームを処理するためのスレッドプールのサイズを指定するために使用されます。デフォルト値:4096。このパラメーターの値が小さい場合、DataNode の Xceiver の数が制限されます。
解決策
上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
Hadoop Distributed File System(HDFS)サービスの [構成] タブに移動します。
[ECS 上の EMR] ページで、管理するクラスターを見つけ、[アクション] 列の [サービス] をクリックします。
表示されるページで、HDFS セクションの [構成] をクリックします。
構成項目の検索セクションで、dfs.datanode.max.transfer.threads パラメーターを検索し、パラメーターの値を適切に増やします。ほとんどの場合、8192 または 16384 など、値を 2 倍にすることをお勧めします。
説明dfs.datanode.max.transfer.threads パラメーターは、DataNode が読み取りおよび書き込みデータストリームを処理するためのスレッドプールのサイズを指定します。デフォルト値:4096。