Hadoop クラスターでアクティブな名前ノードを確認し、最初のノードがアクティブでない場合は、2 番目のノードを選択する次のループがあります。
for (( i=0;i<$(($(wc -l < $LOCAL_DIR/'tempip.txt')/3));i++ )){
j=$(($i*3))
echo ${ipArray[j]} >> $LOCAL_DIR/tmpOp.txt 2> /dev/null
if hdfs dfs -test -e ${ipArray[$j+1]} ; then
hdfs dfs -cat ${ipArray[$j+1]}/* | wc -l>> $LOCAL_DIR/tmpOp.txt 2> /dev/null
elif hdfs dfs -test -e ${ipArray[$j+2]} ; then
hdfs dfs -cat ${ipArray[$j+2]}/* | wc -l>> $LOCAL_DIR/tmpOp.txt 2> /dev/null
else
echo "Invalid"
fi
}
ここでの問題は、ネームノードが非アクティブであることが検出されるたびに、ウィンドウに次のメッセージを表示し、他のネームノードを処理し続けることです。エラーをnullディレクトリにリダイレクトしましたが、それでもエラーが発生します。。どのように削除できますか?
test: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
答え1
wc
のエラー出力ではなく、エラー出力を削除しますhdfs
。
同様のコンテンツに対する私の答えを確認してください。サーバーに障害が発生した場合。