[Hadoop] hadoop 内存优化_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3048 | 回复: 0   主题: [Hadoop] hadoop 内存优化        上一篇   下一篇 
bigbang
注册用户
等级:新兵
经验:72
发帖:1
精华:0
注册:2014-11-20
状态:离线
发送短消息息给bigbang 加好友    发送短消息息给bigbang 发消息
发表于: IP:您无权察看 2015-12-1 14:20:15 | [全部帖] [楼主帖] 楼主

1.hadoop-env.sh:该文件用来配置hadoop所需的特殊环境变量:


JAVA与HADOOP环境变量的设置(如果在~/.bash_profile中设置了环境变量,这里可以不进行配置)

export JAVA_HOME=/home/admin/deploy/java6
export HADOOP_HOME=/home/admin/deploy/hadoop-0.20.2
# The maximum amount of heap to use, in MB. Default is 1000.# export HADOOP_HEAPSIZE=2000

JAVA虚拟机性能调优(省略不用修改的内容)

HADOOP_NAMENODE_OPTS="-Xmx2048m–Xms1024m -Xmn1024m
HADOOP_DATANODE_OPTS="-Xmx2048m–Xms1024m -Xmn1024m
HADOOP_JOBTRACKER_OPTS="-Xmx2048m–Xms1024m -Xmn1024m

补充解释 


HADOOP_HEAPSIZE 这个参数是每一个守护线程分配多少内存,因为namenode 把数据放到内存,所以会造成较大的内存开销,所以一般要单独为namenode配

置内存使用 HADOOP_NAMENODE_OPTS 参数。


这里的XMS与XMX指的是JAVA虚拟机内存分配策略中的最大可用内存和最小内存设置。


不建议将XMS与XMX设置成一样。因为java的垃圾回收器在内存使用达到XMS值的时候才会开始回收,如果2个值一样,那么JAVA会在使用完所有内存时才会回收垃圾,导致内存LOAD一直很高。


关于XMN这个参数是JAVA内存机制中的年轻代。


整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小


持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。这里为了便于计算,

取整个堆的一半。


另外:如果JAVA内存设置过大,HADOOP启动会报错

Error occurred during initialization of VM,Could not reserve enough space for object heap

 


2.内存、任务数与cpu个数的关系。


在mapred-site.xml配置文件中设置

mapred.tasktracker.map.tasks.maximum   默认2  每个tasktracker 最多运行的tasks数目

mapred.tasktracker.reduce.tasks.maximum  默认2  每个tasktracker最多运行的reduce数目

mapred.child.java.opts 默认-Xmx200m   每个任务分配多少内存


那么如下表:



如果HADOOP_HEAPSIZE 取默认值,那么datanode tasktracker等守护线程均分别占1000m内存。默认每个tasktracker运行2个map和2个reduce任务。那么总共的

内存开销是2800m


那么对于多处理器而言,任务数和cpu数之间的关系,在hadoop权威指南上指出 。经验值是 :任务数/cpu数目 在1~2之间。


比如具有8个cpu的机器,那么总任务数,就不能超过16,因为slave节点上的datanode 和tasktracker 也有进程开销。


原则就是,在考虑分配多少任务数时,要考虑同时运行在这台节点上的其他进程。


可以使用ganglia工具来监控集群的内存信息。



该贴被蜀山战纪编辑于2015-12-4 9:54:03



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论