欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大数据常用组件调优参数设置

程序员文章站 2022-06-01 12:14:47
...

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设置。

参考:(hadoop2.6)HDFS中的集中化缓存管理

②、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