Pour résoudre l'exception de limite du nombre de Xceivers sur un DataNode, augmentez la taille du pool de threads de transfert.
Message d'erreur
java.io.IOException: Xceiver count xxxx exceeds the limit of concurrent xceivers: xxxx
Cause
Le paramètre dfs.datanode.max.transfer.threads définit la taille du pool de threads qu'un DataNode utilise pour gérer les flux de données en lecture et en écriture. La valeur par défaut est 4096. Si cette valeur est trop faible, le DataNode génère une exception de limite du nombre de Xceivers.
Procédure
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez la région appropriée et le groupe de ressources.
-
Accédez à la page de configuration du service HDFS.
Sur la page Clusters, localisez votre cluster et cliquez sur Services dans la colonne Actions.
Sur la page Services, cliquez sur Configure dans la section HDFS.
-
Dans la zone de recherche de configuration, recherchez le paramètre dfs.datanode.max.transfer.threads et augmentez sa valeur, par exemple en la doublant pour atteindre 8192 ou 16384.
RemarqueLe paramètre dfs.datanode.max.transfer.threads définit la taille du pool de threads destiné à gérer les flux de données en lecture et en écriture sur un DataNode. La valeur par défaut est 4096.