zoukankan      html  css  js  c++  java
  • Hadoop优化

    HDFS小文件影响:

      - 文件元数据存储在Namenode内存中,大量的小文件就有大量的文件元数据

      - 影响计算引擎的任务数量,每个小文件生成一个Map任务

     

    1. 数据输入小文件处理:

      - 合并小文件,对小文件进行Har归档;自定义Inputformat将小文件存储成SequenceFile文件

      - 采用ConbinFileInputFormat来作为输入,解决输入端大量小文件场景

      -对于大量的小文件任务,开启JVM重用;将 mapred.job.reuse.jvm.num.tasks 设置成大于1的数,

        归属同一job的顺序执行的task可以共享一个JVM

    2. Map阶段:

      - 增大环形缓冲区大小,默认100M,根据实际情况扩大

      - 增大环形缓冲区溢写比例,默认为80%,根据实际情况扩大

      - 减少对溢写文件的合并(merge)次数

      - 不影响实际业务的前提下,采用 Combiner提前合并,减少IO,(求平均值这种情况不能用,即不影响业务)

      - MapTask 增大内存大小、CPU核数

    3. Reduce阶段:

      - 合理设置Map和Reduce个数

      - 设置Map、Reduce共存,调整 slowstart.completedmaps 参数,使Map运行后,Reduce开始运行,减少Reduce等待时间

      - 尽量少使用Reduce,因为Reduce连接数据集时回产生大量的网络消耗

      - 增加每个Reduce去Map中拿数据的并行数

      - 适当增大Reduce端的存储数据内存大小

      - 增加ReduceTask的内存大小、CPU核数

    4. IO :

      - 采用数据压缩的方式,减少网络IO的时间  (snappy & LZOP 安装)

      - 使用SequenceFile二进制文件

  • 相关阅读:
    day09总结
    day09作业
    删除循环中选中的id
    数组套数组 获取数据
    vue for each循环出来数组的某一项 再重新合并成一个新数组
    全是没见过的
    vue element 分页
    解决iphonex屏幕过长背景图片或者放在元素里面的图片不能铺满的问题
    实在自动现在APK,微信跳浏览器下载
    js判断是否在微信浏览器中打开
  • 原文地址:https://www.cnblogs.com/joey-413/p/14111416.html
Copyright © 2011-2022 走看看