分享

hadoop有关内存控制的环境变量具体含义

Riordon 发表于 2015-11-16 18:11:20 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 20325
学习hadoop也有一段时间,对某些内存相关环境变量还是挺模糊,如下:
第一组:
HADOOP_OPTS
HADOOP_NAMENODE_OPTS
HADOOP_DATANODE_OPTS
HADOOP_CLIENT_OPTS
第二组:
export HADOOP_JOB_HISTORYSERVER_OPTS=
export YARN_RESOURCEMANAGER_OPTS=
export YARN_NODEMANAGER_OPTS=
第三组:
export HADOOP_HEAPSIZE=
export HADOOP_NAMENODE_INIT_HEAPSIZE=""
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

YARN_HEAPSIZE=1000
export YARN_RESOURCEMANAGER_HEAPSIZE=1000
export YARN_NODEMANAGER_HEAPSIZE=1000
-----------------------------------------------------------------------------------------------------------
(1) 它们都控制的是什么?分别控制的哪些进程内存使用量?
(2) 它们又有哪些类似覆盖的关系?哪个会覆盖哪个?
(3) 这个参数与.xml配置文件中的(如:yarn.nodemanager.resource.memory-mb等)又有什么关系?是对应关系吗?

已有(6)人评论

跳转到指定楼层
leo_1989 发表于 2015-11-16 19:32:09

回帖奖励 +5 云币



第一组:
HADOOP_OPTS:Hadoop启动时的JVM参数

HADOOP_NAMENODE_OPTS
该选项的值会附加到HADOOP_OPTS之后,在启动NameNode时设置的JVM参数。
如想手动设置NameNode的堆、垃圾回收等信息,可以在这里设置:
export HADOOP_NAMENODE_OPTS="-Xmx2g -XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}"
其它的节点类似设置。


HADOOP_DATANODE_OPTS
该选项的值会附加到HADOOP_OPTS之后,在启动DataNode时设置的JVM参


HADOOP_CLIENT_OPTS
该选项增加的参数,将会作用于多个命令,如fs, dfs, fsck, distcp等




第二组:
export HADOOP_JOB_HISTORYSERVER_OPTS=
export YARN_RESOURCEMANAGER_OPTS=
export YARN_NODEMANAGER_OPTS=
为yarn指定JVM OPTS其实跟第一组是差不多的,分别配置的JOB_HISTORYSERVER,RESOURCEMANAGER,NODEMANAGER,参数。上面都是配置守护进程jvm参数,要配置的DataNode使用parallelGC,下面的语句应该在的hadoop-env.sh加入:
  export HADOOP_DATANODE_OPTS="-XX:+UseParallelGC ${HADOOP_DATANODE_OPTS}"


第三组:
export HADOOP_HEAPSIZE=
export HADOOP_NAMENODE_INIT_HEAPSIZE=""
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

YARN_HEAPSIZE=1000
export YARN_RESOURCEMANAGER_HEAPSIZE=1000
export YARN_NODEMANAGER_HEAPSIZE=1000

HADOOP_HEAPSIZE/YARN_HEAPSIZE — 指定能够使用的最大的堆内存,单位为MB。


回复

使用道具 举报

leo_1989 发表于 2015-11-16 19:31:17
yarn.nodemanager.resource.memory-mb是配置的内存

带有opt的配JVM参数,比如日志、GC,memory配内存大小

mapred.map.child.java.opts和mapreduce.map.memory.mb有什么区别?
http://www.aboutyun.com/thread-9981-1-1.html



回复

使用道具 举报

leo_1989 发表于 2015-11-16 19:35:14
楼主说的覆盖是指??
回复

使用道具 举报

Riordon 发表于 2015-11-16 20:03:50
回复

使用道具 举报

leo_1989 发表于 2015-11-16 20:27:05
本帖最后由 leo_1989 于 2015-11-16 20:33 编辑
Riordon 发表于 2015-11-16 20:03
非常感谢~
(1) 该选项的值会附加到HADOOP_OPTS之后,是指:HADOOP_NAMENODE_OPTS、HADOOP_ ...

统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。
如果想单独设置namenode的内存,可以通过HADOOP_NAMENODE_OPTS来设置2000M,这时候就覆盖了默认1000M,改为了2000M


这个或许对你有帮助
hadoop内存设置
http://www.aboutyun.com/thread-16031-1-1.html



回复

使用道具 举报

Riordon 发表于 2015-11-17 09:11:40
leo_1989 发表于 2015-11-16 20:27
统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。
如果想单独设置namenode ...

受用,非常感谢...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条