首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hadoop的pid配备

2012-11-10 
Hadoop的pid配置今天发现一个问题,当hadoop集群运行一段时间以后,无法停止服务。执行stop-all的时候提示no?

Hadoop的pid配置

今天发现一个问题,当hadoop集群运行一段时间以后,无法停止服务。执行stop-all的时候提示no?tasktracker?to?stop,no?datanode?to?stop。而当我把所有节点手动kill掉以后,执行start-all和stop-all均没有问题。在邮件群组里问了一下,最后结论如下:

stop-all.sh会调用stop-mapred.sh和 stop-dfs.sh去停止jobtracker, tasktrackers; namenode, datanodes。

Jobtracker和namenode的停止是在本地通过调用hadoop-daemon完成的,而tasktracker,和datanode的停止是通过调用hadoop-daemons来完成的。Hadoop-daemon实质上是ssh到每一个slave去执行一个当地的hadoop-daemon命令,比如:hadoop-daemon stop datanoade。

Hadoop-daemon? stop command会通过kill -0 `cat command.pid` 来测试进程是否存在,如果这个测试中有错误产生,就会报”no command to stop ”。

  • 可能原因:pid文件丢了,导致hadoop-daemon.sh stop XXX时找不到进程号。
  • 解决办法:默认pid文件放在/tmp目录下,不太安全。可以在conf/hadoop-env.sh里设置HADOOP_PID_DIR环 境变量改变 pid文件的存放目录。

    最后我增加上了pid的路径配置,这下应该没有问题了



    原文出处:http://wuma.koubei.com/blog/userdetail/8231a5007a4c4978a076918216dbbc2a

    ?

  • 热点排行