大資料之(2)修改Hadoop叢集日誌目錄,資料存放目錄
阿新 • • 發佈:2018-11-17
Hadoop有時會有unhealthy Node不健康的非Active節點存產生,具體錯誤內容如下。
一、錯誤內容
-== log-dirs usable space is below configured utilization percentage/no more usable space [ /hadoop/hadoop-2.9.0/logs/userlogs : used space above threshold of 90.0% ]==
如下圖所示。
二、錯誤解釋
日誌目錄可用空間已經低於可用空間閾值90%。因此此DataNode節點不可使用。
- 使用df -h 命令檢視磁碟空間使用情況由於使用了預設的日誌存放目錄即HADOOP_HOME/logs此處為/hadoop/hadoop-2.9.0/logs/,而此處/根目錄的使用已經到達92%,所以低於90%可用日誌空間閾值,所以產生了此不健康節點,原因一清二楚,解決方法也比較清楚。
/dev/sda4 50G 43G 3.9G 92% / devtmpfs 3.6G 0 3.6G 0% /dev tmpfs 3.6G 0 3.6G 0% /dev/shm tmpfs 3.6G 283M 3.3G 8% /run tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup /dev/sda2 3.8G 136M 3.4G 4% /boot /dev/sda1 200M 9.8M 191M 5% /boot/efi /dev/sda3 90G 7.6G 78G 9% /data tmpfs 728M 0 728M 0% /run/user/0
三、解決方法
方法一:清除無用的根目錄/下的其他資源,使磁碟可用空間保持在閾值90%之下即可。
方法二:修改所有資料檔案儲存目錄(此處為了都指向/data目錄下,因為有90G)。
- 修改tmp檔案目錄在core-site.xml檔案裡
修改為/data/hadoop/tmp
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
- 修改namenode.name.dir和datanode.data.dir在hdfs-site.xml檔案裡
此處修改為/data/hadoop/dfs/name和/data/hadoop/dfs/data
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/dfs/data</value>
</property>
- 修改log dir在hadoop-env.sh檔案裡
加入下面內容export HADOOP_LOG_DIR=/data/hadoop/logs
export HADOOP_LOG_DIR=/data/hadoop/logs
- 修改yarn log dir在yarn-env.sh檔案裡
加入export YARN_LOG_DIR=/data/hadoop/logs,注意此yarn目錄如果不修改還是會提示90%閾值問題,他預設也是在HADOOP_HOME/logs之下存放,因此必須明確顯式指定。
export YARN_LOG_DIR=/data/hadoop/logs
if [ "$YARN_LOG_DIR" = "" ]; then
YARN_LOG_DIR="$HADOOP_YARN_HOME/logs"
fi
if [ "$YARN_LOGFILE" = "" ]; then
YARN_LOGFILE='yarn.log'
fi
- 此時在sbin目錄下./start-all.sh啟動hadoop叢集,瀏覽http://172.16.16.15:8088/cluster/nodes 問題節點已經恢復正常。