2012-05-09 4 views
3

Я пытаюсь остановить процесс демона в Hadoop по ./stop-all.sh сценарий, но он дает следующее сообщение:Hadoop Демоны не останавливая

нет JobTracker не остановить Localhost: нет TaskTracker остановить нет NameNode чтобы остановить Localhost: нет DataNode остановить Localhost: нет secondarynamenode, чтобы остановить

Я попытался увидеть, если Hadoop работает после этого с помощью JPS, и он показал:

27948 secondaryNameNode 2771 4 NameNode 28136 TaskTracker 27816 DataNode 28022 JobTracker 8174 Jps

То есть, он работает все демоны правильно. Я также проверил hasoop dfs -ls/просто посмотреть, могу ли я подключиться к hdfs. Работает.

Я запускаю сценарий stop-all.sh по значению пользователя супергруппы, нет проблем с разрешениями.

ответ

4

Это сообщение отображается, если скрипты start/stop не могут найти файл pid, который получил деамон в папке $ HADOOP_PID_DIR (по умолчанию это/tmp).

Если:

  • эти файлы были удалены (кто-то или что-то), или
  • переменная $ ENV HADOOP_PID_DIR изменилась с тех пор, как вы начали Deamons или
  • пользователь остановки deamons - не тот пользователь, который начал их

then 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 
    ;; 
+0

Как остановить мой кластер в этом случае? –

+0

Наконец, я могу остановить кластер. Я сделал: ps -ef | grep java Он отобразил идентификаторы процесса, и я их убил. Снова начал кластер, и все было нормально. –

+0

вы можете использовать «jps» вместо «ps -ef | grep java», чтобы найти pid из демонов – lizzie

Смежные вопросы