4

./stop-all.shスクリプトによってhadoopのデーモンプロセスを停止しようとしていますが、次のメッセージが表示されます。

localhostを停止するjobtrackerなし:停止するtasktrackerなしlocalhostを停止するnamenodeなし:localhostを停止するdatanodeなし:停止するsecondarynamenodeなし

この後、jpsを使用してHadoopが実行されているかどうかを確認しようとしましたが、次のように表示されました。

27948 SecondaryNameNode 27714 NameNode 28136 TaskTracker 27816 DataNode 28022 JobTracker 8174 Jps

つまり、すべてのデーモンが正しく実行されています。また、hadoop dfs -ls /をチェックして、hdfsに接続できるかどうかを確認しました。動作しています。

スーパーグループユーザーの意味でstop-all.shスクリプトを実行していますが、アクセス許可に問題はありません。

4

1 に答える 1

4

このメッセージは、開始/停止スクリプトが$ HADOOP_PID_DIRフォルダー(デフォルトは/ tmp)でデーモンを取得したpidファイルを見つけることができない場合に表示されます。

もしも:

  • これらのファイルは(誰かまたは何かによって)削除されているか、または
  • デーモンを開始してから環境変数$HADOOP_PID_DIRが変更されている、または
  • デーモンを停止するユーザーは、デーモンを開始したユーザーではありません

次に、hadoopは表示されているエラーメッセージを表示します。

hadoop-daemon.shファイル(1.0.0の場合)から選択された部分:

#   HADOOP_IDENT_STRING   A string representing this instance of hadoop. $USER by default

if [ "$HADOOP_IDENT_STRING" = "" ]; then
  export HADOOP_IDENT_STRING="$USER"
fi

# ....

if [ "$HADOOP_PID_DIR" = "" ]; then
  HADOOP_PID_DIR=/tmp
fi    

# ....

pid=$HADOOP_PID_DIR/hadoop-$HADOOP_IDENT_STRING-$command.pid

# ....

(stop)

  if [ -f $pid ]; then
    if kill -0 `cat $pid` > /dev/null 2>&1; then
      echo stopping $command
      kill `cat $pid`
    else
      echo no $command to stop
    fi
  else
    echo no $command to stop
  fi
  ;;
于 2012-05-09T10:36:25.027 に答える