Posted on 2012-07-06 11:41
云云 閱讀(1794)
評論(0) 編輯 收藏
在運(yùn)行了一段時間hadoop集群后,機(jī)器重啟了一次。
然后啟動hadoop,再jps沒有看到namenode 和datanode的pid
很不解,于是再重啟,卻又報4900端口存在 需要停止。
這下有意思了。無奈之下 使用netsat -nap | grep 4900來查看是否存在
果然存在,再用命令lsof -i:49000 找出4900端口號的進(jìn)程id。再用kill -9 來殺死。
問題是解決了,可不能每次這樣啊,后來發(fā)現(xiàn)hadoop默認(rèn)的pid是存在
linux下的/tmp目錄下的。每一個pid 使用文件像hadoop-hadoop-jobtracker.pid
這樣的文件名存放起來的。可以cat一下 看看內(nèi)容。
linux重啟的時候 會把tmp目錄中的內(nèi)容刪除,同時crontab 也會在一定時間后刪除
tmp目錄下的文件。索性,hadoop可以設(shè)置pid的存放位置。
在hadoop-env.sh中,默認(rèn)是關(guān)閉了的。刪除 # export HADOOP_PID_DIR=/var/hadoop/pids 前面的#
把路徑設(shè)置成你想要的路徑。
同樣的hbase也是一樣的,最好改一下。
到這里讓我想起了hbase曾經(jīng)報過一個錯誤 找不到hbase.version
在tmp目錄也有這個文件,我想重啟機(jī)器后 hbase找不到這個文件也與這個目錄有關(guān)。