HDFS
①、用于缓存的最大内存
dfs.datanode.max.locked.memory
解释:
这决定了一个DataNode将要用来被做HDFS缓存的内存的最大值。用ulimit –l可以用来查看DataNode节点的程序锁定内存的限制,用户需要增加这个值以适应这个配置的参数。当设置了这个值之后,请记住,你将需要内存中的空间做其他事,像DataNode和应用的JVM的堆栈和操作系统的页面缓存。
dfs.datanode.max.locked.memory中设置的值,或者是字符串“ulimited”,代表没有限制。注意,ulimit-l的输出通常是KB,但是dfs.datanode.max.locked.memory必须以byte设置。
②、Hadoop用户代理
hadoop.proxyuser.${USER_ROLE}.【hosts | groups | users】
hadoop用户代理功能的作用是让超级用户superuser模拟一个普通用户来执行任务。比如用户deploz_man通过oozie提交一个任务到集群上,如果不设置用户代理,那么就会以启动oozie(oozie)进程的用户来提交任务,这样任务就显示为oozie,无法判断是哪个用户提交了任务。当开始proxy功能后,会以superuser模拟deploz_man来提交任务,任务的提交者是supersuer,但显示为deploz_man.
superuser指启动各个守护进程的用户,如spark hue hive oozie等。
编辑core-site.xml,添加如下内容:
<property>
<name>hadoop.proxyuser.hdfs.hosts</name>
<value>cdh1,cdh2</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.groups</name>
<value>hadoop</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.users</name>
<value>*</value>
</property>
上述三个配置分别表示,cdh1 cdh2上的hive用户可以superuser的方式模拟hadoop组的任务用户,还可以模拟任意用户(如deploz_man,hdfs)。
注意:host实限定了superuser所在的主机,而不是clinet所在的主机。
③、namenode的java配置项
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled
二 YARN(MR2 Included)
①、hadoop.proxyuser.hdfs.groups
I/O 排序内存缓冲 (MiB),如 =1G
②、mapreduce.output.fileoutputformat.compress.codec
MapReduce 作业输出的压缩编码解码器,如org.apache.hadoop.io.compress.SnappyCodec
③、mapreduce.map.output.compress.codec
MapReduce Map 输出的压缩编码解码器,如org.apache.hadoop.io.compress.SnappyCodec