hadoop pid 使用jps查看不存 hadoop stop腳本 停不了hadoop 解決方案
Posted on 2012-07-06 11:41 云云 閱讀(1794) 評論(0) 編輯 收藏在運行了一段時間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找不到這個文件也與這個目錄有關。
然后啟動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找不到這個文件也與這個目錄有關。