Hadoop操作拾遗

来源:互联网 发布:幕府将军2全面战争mac 编辑:程序博客网 时间:2024/06/06 01:05

Hadoop的JVM参数设置

作为一个Java框架,Hadoop也可以设置其JVM的参数,主要参数如堆内存设置,垃圾回收设置等。
常见的有:(只放我设过的,逐渐增加)

-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示EdenSurvivor=32,一个Survivor区占整个年轻代的1/5-XX:MaxPermSize=n:设置持久代大小

Hadoop的配置在hadoop-env.sh中,这个文件在$HADOOP_HOME/etc/hadoop/目录下,里面默认情况下有一些处于注释状态的export XXX_OPTS的条目,这就是设置相应进程的JVM参数的地方,例如:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -XX:MaxPermSize=256M -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=3 -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSCompactAtFullCollection"  # Command specific options appended to HADOOP_OPTS when specified  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"  export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS -Xmx2048M"  

JVM参数配置遵循的是后面覆盖前面的规则,因此不用担心设置重复,就把你需要的一股脑写在相应进程的配置项中即可。

Hadoop编译过程

从Github拿到的源代码,编译需要以下步骤:

1,在hadoop_maven_plugins目录下运行mvn install
2,切回主目录,一般执行mvn package -Pdist,native,docs -DskipTests -Dtar即可,有额外的需求参看BUILDING.txt文档