Wie leite ich die Warnmeldung von der Befehlszeile in eine Protokolldatei um?

Wie leite ich die Warnmeldung von der Befehlszeile in eine Protokolldatei um?

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.

verwandte Informationen