Hadoop2.7實戰v1.0之JVM引數調優

hackeruncle發表於2016-05-17

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記憶體容量嚴重製約了叢集的擴充套件。

Apache Hadoop JVM配置($HADOOP_HOME/etc/hadoop/hadoop-env.sh):

export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS -Xmx2048M
export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS -Xmx2048M"

-Xmx標識程式使用最大的記憶體大小


CDH4/5 JVM配置(透過web http://172.168.1.136:7180/):
進入CDH4/5--》hdfs1/hdfs--》配置tab--》搜尋"堆疊"關鍵字,
修改 namenode,datanode,journalnode,failover controller的java程式堆疊最大大小,儲存,再重啟叢集生效.
namenode:8G
datanode:7G
journalnode:512M
failover controller:512M

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2101322/,如需轉載,請註明出處,否則將追究法律責任。

相關文章