• 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也就够了。

  • 相关阅读:
    新浪开放平台入门及基本步骤(java SDK)
    Android 解析JSON数据示例代码[CODE]
    Ubuntu10.04 搭建android平台
    程序员真的很懒
    android之ContentResolver与ContentProvider
    写代码如写散文
    通过OAuth认证和操作新浪微博
    喜报:凌阳教育深圳中心正式成立
    25个让Java程序员更高效的Eclipse插件
    Java Json开源解析包 googlegson download(下载)
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/3240063.html
Copyright © 2020-2023  润新知