美文网首页大数据运维程序员
大数据运维问题记录(四)

大数据运维问题记录(四)

作者: 火车飞侠 | 来源:发表于2016-07-19 21:33 被阅读164次

    问题描述:有个hadoop集群,跑hive任务的时候慢,而且经常跑的跑的就挂了,报内存不够等等的相关异常,需要我们给解决,优化一下配置

    问题解决:跑hive慢,一方面是hive语句的问题,另一方面就是hadoop中mapreduce已经yarn的相关配置没有配置好,第一方面需要项目组开发人员自己解决了,学习如何根据业务优化一下sql

    参数配置优化就需要平衡集群中机器的内存,处理器和磁盘的使用

    Yarn和MapReduce的总的可用内存应考虑到保留的内存

    保留内存=保留系统内存+保留其它应用所用内存(比如hbase,spark等)

    建议保留的内存如下(以hbase为例):

    下面的计算是确定每个节点的Container允许的最大数量:

    #Container数量=min(2*CORES, 1.8*DISKS, (可用内存)/最低Container的大小)

    最低Container的大小这个值是依赖于可用的RAM数量——在较小的存储节点,最小的Container的大小也应较小。下面的表列出了推荐值:

    最后计算的每个Container的内存大小是:

    每个Container的内存大小 = max(最小Container内存大小, (总可用内存) /Container数))

    其中mapred-site.xml中的与性能有关的主要参数如下:

    yarn-site.xml中与性能有关的参数如下:

    参数的计算方式如下:

    例如:集群节点拥有12个CPU核,48GB内存和12块磁盘

    保留内存(Reserved Memory)=6GB系统预留内存+(如果有Hbase)8GB的Hbase内存

    最小的容器大小(Min container size)=2GB

    容器数目(containers)=min(2*12,1.8*12,(48-6-8)/2)=min(24,21.6,17)=17

    每个容器的RAM(RAM-per-container)=max(2,(48-6-8)/17)=max(2,2)=2

    以下配置具体参数还是要根据给其它系统预留的内存数而定

    相关文章

      网友评论

        本文标题:大数据运维问题记录(四)

        本文链接:https://www.haomeiwen.com/subject/eytvjttx.html