posts - 110, comments - 101, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
在运行了一段时间hadoop集群后,机器重启了一次。
然后启动hadoop,再jps没有看到namenode 和datanode的pid
很不解,于是再重启,却又报4900端口存在 需要停止。
这下有意思了。无奈之下 使用netsat -nap | grep 4900来查看是否存在
果然存在,再用命令lsof -i:49000 找出4900端口号的进程id。再用kill -9 来杀死。

问题是解决了,可不能每次这样啊,后来发现hadoop默认的pid是存在
linux下的/tmp目录下的。每一个pid 使用文件像hadoop-hadoop-jobtracker.pid
这样的文件名存放起来的。可以cat一下 看看内容。

linux重启的时候 会把tmp目录中的内容删除,同时crontab 也会在一定时间后删除
tmp目录下的文件。索性,hadoop可以设置pid的存放位置。
在hadoop-env.sh中,默认是关闭了的。删除 # export HADOOP_PID_DIR=/var/hadoop/pids 前面的#
把路径设置成你想要的路径。
同样的hbase也是一样的,最好改一下。
到这里让我想起了hbase曾经报过一个错误 找不到hbase.version
在tmp目录也有这个文件,我想重启机器后 hbase找不到这个文件也与这个目录有关。





只有注册用户登录后才能发表评论。


网站导航: