Ich habe unten eine Schleife, die verwendet wird, um den aktiven Namenknoten im Hadoop-Cluster zu überprüfen, und wenn der erste Knoten inaktiv ist, nimmt sie den zweiten auf.
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
}
Das Problem hierbei besteht darin, dass immer, wenn der Namenknoten als inaktiv erkannt wird, die folgende Meldung in das Fenster ausgegeben wird und mit einem anderen Namenknoten fortgefahren wird.Ich habe meinen Fehler in das Nullverzeichnis umgeleitet, erhalte ihn aber immer noch. Wie kann ich es loswerden?
test: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error
Antwort1
Sie verwerfen die Fehlerausgabe von wc
, nicht von hdfs
.
Siehe meine Antwort auf ein ähnliches Zitatbei Serverfehler.