Как перенаправить предупреждающее сообщение из командной строки в файл журнала?

Как перенаправить предупреждающее сообщение из командной строки в файл журнала?

У меня есть приведенный ниже цикл, который используется для проверки активного узла имен в кластере Hadoop, и если первый узел неактивен, он выбирает второй.

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
}

Проблема здесь в том, что всякий раз, когда узел имени оказывается неактивным, он выдает в окне следующее сообщение и продолжает работу с другим узлом имени.Я перенаправил свою ошибку в пустой каталог, но все равно получаю ее. Как мне от этого избавиться?

test: Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error

решение1

Вы отбрасываете вывод ошибок из wc, а не из hdfs.

См. мой ответ на что-то похожее по цитатена сервереfault.

Связанный контент