zoukankan      html  css  js  c++  java
  • Hadoop参数调优

    最近看了很多如何让hadoop运行时间减少的文章,一点自己的理解,记录如下

    1)压缩map输出和reduce输出

        压缩输出结果,不仅可以减少写数据,还可以加快map到ruduce的传输速度,有利于加快运行时间。

    2)不要重复创建对象

        尽量在mapper或者reducer的类中去创建,不要重复的在map函数中创建对象。

    3)scan的参数设置

        在扫描数据库表时,scan的一些属性:hbase.scan.catching 和 hbase.scan.batch 都是可以一次性的返回

        多条记录,避免每次都要去访问数据库,同时要注意只设置自己需要的columnFamily就可以了,减少不必要的

        数据返回,同时设置scan.setCatchingBlocks(false),这样可以避免扫库的时候重写了缓存,因为扫库这种动作

        不代表真实的查询频率,不应该覆盖缓存。

    4)推测执行

        mapred.map.tasks.speculative.execution,此属性默认为true,即当程序感知到某个map的运行时间较慢,会

        在另外一个机器上运行同样的任务,成功后kill掉当前运行的任务。个人感觉这个参数在资源充足的时候,可以设置

        为false,避免浪费资源。在资源不足的时候,可以打开此参数,避免因为某些任务过慢,影响整体任务的执行时间。

    5)hbase的参数设置(客户端设置无效)

      hbase.regionserver.handler.count

        regionserver的工作线程数量,默认是10,没有疑问,官方默认值太小,通常都调到100~200之间,提高regionserver性能。

      hbase.regionserver.lease.period  

        regionserer租约时间,默认值是60s,也有点小,如果你的生产环境中,在执行一些任务时,如mapred时出现lease超时的报错,那这个时候就需要去调大这个值了。

      hfile.block.cache.size

        regionserver cache的大小,默认是0.2,是整个堆内存的多少比例作为regionserver的cache,调大该值会提升查询性能,当然也不能过大,如果你的hbase都大量的查询,

        写入不是很多的话,调到0.5也就够了。

  • 相关阅读:
    案例7-1.2 插入排序还是归并排序 (25分)
    自动化运维工具——puppet详解(一)
    centos6.8的安装和配置
    ZooKeeper内部原理
    ZooKeeper安装和配置
    zookeeper入门
    shell中uniq与sort -u 两种去重的对别
    tomcat日志文件 访问IP统计
    Mysql常用命令
    linux一键安装php脚本
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/3240063.html
Copyright © 2011-2022 走看看