确定hive的map和reduce的task的数量

        Hive的底层查询原理,也是讲sql语句转化为map-reduce进行查询和计算的,所以设置正确的map和reduce的task的数量对查询效率有很重要的影响。

1. 设置mapper的task数量

        在分布式计算系统中,决定map数量的一个因素就是原始数据,在不加干预的情况下,原始数据有多少个块,就可能有多少个起始的task,因为每个task对应要去读取一个块的数据;当然这个也不是绝对的,当文件数量特别多,并且每个文件的大小特别小,那么我们就可以限制减少初始map对相应的task的数量,以减少计算资源的浪费,如果文件数量较少,但是单个文件较大,我们就可以增加map的task的数量,以减小单个task的压力。

        在hive里面有个决定mapper的task数量的参数:mapred.map.tasks,因为决定mapper的task的数量因素相对比较复杂,所以这个参数不一定起作用,具体决定mapper的task数量的过程如下:

        (1)hive的文件基本上都是存储在HDFS上,而HDFS上的文件,都是分块儿的,所以具体的hive数据文件在HDFS上分多少块,就可能是默认的hive起始task的数量,我们记做:default_mapper_num。在网上还有人这么解释,就是用数据总大小除以dfs的默认最大块大小(total_size/dfs.block.size)来决定初始默认数据分区数,感

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值