本文共 982 字,大约阅读时间需要 3 分钟。
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 ):进入CDH4/5--》hdfs1/hdfs--》配置tab--》搜索"堆栈"关键字,修改 namenode,datanode,journalnode,failover controller的java进程堆栈最大大小,保存,再重启集群生效.namenode:8Gdatanode:7Gjournalnode:512Mfailover controller:512M
转载地址:http://mfmpa.baihongyu.com/