HDFS的重要參數配置 JVM的配置

Hadoop正式上線之前,首先要調整的是各個進程的JVM參數設置,特別是對於HDFS Namenode來說。

HDFS的JVM參數配置文件: hadoop-env.sh

Namenode進程的JVM配置: HADOOP_NAMENODE_OPTS
Datanode進程的JVM配置:HADOOP_DATANODE_OPTS
client命令行的JVM配置:HADOOP_CLIENT_OPTS

對於Namenode而言, 由於元數據存儲\操作都在內存中,所以Namenode JVM要根據集羣規模設置,通常情況下換算公式爲:

在HDFS中,任何block,文件或者目錄在內存中均以對象的形式存儲,每個對象約佔150byte,如果有1000
0000個小文件,每個文件佔用一個block,則namenode需要2G空間。如果存儲1億個文件,則namenode需要20G空間。這樣namenode內存容量嚴重製約了集羣的擴展。

參考:http://dongxicheng.org/mapreduce/hadoop-optimization-0/

JVM配置示例:

export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:ErrorFile=/var/log/hadoop/$USER/hs_err_pid%p.log -XX:NewSize=10000m -XX:MaxNewSize=10000m -Xloggc:/var/log/hadoop/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms20000m -Xmx20000m -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"

HADOOP_DATANODE_OPTS="-Xms1000m -Xmx1000m -Dhadoop.security.logger=ERROR,DRFAS ${HADOOP_DATANODE_OPTS}"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章