正常來(lái)說(shuō) hadoop的pid 是默認(rèn)放在 linux 的 /tmp 目錄中,而tmp 目錄需要經(jīng)常清理,假如集群長(zhǎng)時(shí)間 運(yùn)行,一旦重啟就會(huì)發(fā)生 DataNode無(wú)法找到NameNode的詭異情況,這種主要是是hadoop 五個(gè)后臺(tái)進(jìn)程的pid 都在在 /tmp目錄,為了 防止出現(xiàn)這些,我們把pid 的默認(rèn)放置目錄改了就可以了,怎么修改呢,這個(gè) pid 聲明是放在了 hadoop 根目錄下的 etc/hadoop/目錄下的
hadoop-env.sh 中
export HADOOP_PID_DIR=/usr/local/hadoop-2.8.1/pidData
和 mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/usr/local/hadoop-2.8.1/pidData
yarn-env.sh
export YARN_PID_DIR=/usr/local/hadoop-2.8.1/pidData
修改這些就可以了,并scp 到所有的節(jié)點(diǎn)
然后在 hadoop的根目錄下 創(chuàng)建 pidData 目錄
,重新修改權(quán)限,重啟集群即可