zoukankan      html  css  js  c++  java
  • CM记录-Hadoop参数调优

    1.HDFS调优

    a.设置合理的块大小(dfs.block.size)

    b.将中间结果目录设置为分布在多个磁盘以提升写入速度(mapred.local.dir)

    c.设置DataNode处理RPC的线程数(默认为3),大集群可适当加大点(dfs.datanode.handler.count)

    d.设置NameNode能同时处理请求数(dfs.namenode.handler.count)为集群规模的自然对数lnN的20倍

    2.YRAN调优

    Yarn的资源表示模型Container,Container将资源抽象为两个维度,内存和虚拟CPU核(vcore)

    map slot 与 reduce slot,任务槽不能混用,数量一定,不能动态分配资源

    Yarn-Container兼容各种计算框架,动态分配资源,减少资源浪费

    容器内存-yarn.nodemanager.resource.memory-mb  

    最小容器内存-yarn.scheduler.minimum-allocation-mb 

    容器内存增量-yarn.scheduler.increment-allocation-mb

    最大容器内存-yarn.scheduler.maximum-allocation-mb

    根据实际情况灵活调整,如物理机为128GB,那么容器内存要为100GB

    容器虚拟CPU内核yarn.nodemanager.resource.cpu-vcores  ---总量要考虑硬件,如双路四核,这里可以设置为10

    最小容器虚拟CPU内核数量yarn.scheduler.minimum-allocation-vcores

    容器虚拟CPU内核增量yarn.scheduler.increment-allocation-vcores

    最大容器虚拟CPU内核数量yarn.scheduler.maximum-allocation-vcores

    3.MapReduce调优

    调优三大原则

    a.增大作业并行程度---改变输入分片(input spilt)的大小,输入分片是个逻辑概念,是一个map Task的输入。在调优过程中,尽量让输入分片与块大小一样,这样就能实现计算本地化,减少不必要的网络传输。

    计算公式为max(mapred.min.spilt.size,min(mapred.max.spilt.size,dfs.block.size))

    mapred.min.spilt.size=1    ---最小分片大小 

    mapred.max.split.size=9223372036854775807   ---最大分片大小

    dfs.block.size为块大小

    b.给每个任务足够的资源

    Map任务内存:mapreduce.map.memory.mb

    Reduce任务内存:mapreduce.reduce.memory.mb

    Map任务最大堆栈:mapreduce.map.java.opts.max.heap

    Reduce任务最大堆栈:mapreduce.reduce.java.opts.max.heap

    ApplicationMaster内存:yarn.app.mapreduce.am.resource.mb

    c.在满足前两个条件下,尽可能地给shuffle(数据混洗-输入到输出整个过程)预留资源

    最大洗牌连接:mapreduce.shuffle.max.connections

    I/O排序内存缓存(MiB):mapreduce.task.io.sort.mb

    I/O排序因子:mapreduce.task.io.sort.factor

    洗牌期间并行传输的默认数量:mapreduce.reduce.shuffle.parallelcopies

    压缩Map输出:mapreduce.map.output.compress

    备注:其他调优参数参考官网hadoop默认配置,hadoop调优要深刻理解mapreduce

  • 相关阅读:
    FillForm网页表单填写插件(用于火狐浏览器,自动填表,自动表单,填写表单)
    Firefox下完整读写本地文件的方法
    failure notice
    百度奖品兑换监视程序
    javascript数组及其操作(zz)
    JMETER使用
    ubuntu安装mysql
    windows live writer写csdn博客,very good~
    用SSH在linux下安装JDK和Tomcat
    java模拟HTTP请求(集合了网上搜来的各种)
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7684594.html
Copyright © 2011-2022 走看看