摘要:
Hadoop默认为每个task(map task 或者 reduce task) 启动一个jvm。鉴于目前小文件过多的问题,设置了jvm复用,即一个job内,多个task共享jvm,避免多次启动jvm,浪费资源和时间。测试Job信息:map:4715个reduce:20个input: 34Goutput: 25G优化前:1464 s优化后:1375 sJob运行时间减少 6%CPU使用率情况:*注意: mapred.job.reuse.jvm.num.tasks这个参数是客户端参数,修改不需要重启tasktracker,可以在提交job的shell或者代码中设置。 阅读全文
随笔档案-2013年4月27日
hive一些参数
2013-04-27 15:37 by java20130722, 240 阅读, 收藏,
摘要:
Group ByMap 端部分聚合:并不是所有的聚合操作都需要在 Reduce 端完成,很多聚合操作都可以先在 Map 端进行部分聚合,最后在 Reduce 端得出最终结果。基于 Hash参数包括:hive.map.aggr = true是否在 Map 端进行聚合,默认为 Truehive.groupby.mapaggr.checkinterval = 100000在 Map 端进行聚合操作的条目数目有数据倾斜的时候进行负载均衡hive.groupby.skewindata = false当选项设定为 true,生成的查询计划会有两个 MR Job。第一个 MR Job 中,Map 的输出结果 阅读全文
关于几种压缩算法以及hadoop和hbase中的压缩配置说明
2013-04-27 15:15 by java20130722, 439 阅读, 收藏,
摘要:
Hadoop中常用的压缩算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系统安装native库才可以支持下面这张表,是比较官方一点的统计,不同的场合用不同的压缩算法。bzip2和GZIP是比较消耗CPU的,压缩比最高,GZIP不能被分块并行的处理;Snappy和LZO差不多,稍微胜出一点,cpu消耗的比GZIP少。通常情况下,想在CPU和IO之间取得平衡的话,用Snappy和lzo比较常见一些。Comparison between compression algorithmsAlgorithm% remainingEncodingDecodingGZIP13. 阅读全文
从一个经典案例看优化mapred.map.tasks的重要性
2013-04-27 09:52 by java20130722, 547 阅读, 收藏,
摘要:
我所在公司所使用的生产Hive环境的几个参数配置如下:dfs.block.size=268435456hive.merge.mapredfiles=truehive.merge.mapfiles=truehive.merge.size.per.task=256000000mapred.map.tasks=2因为合并小文件默认为true,而dfs.block.size与hive.merge.size.per.task的搭配使得合并后的绝大部分文件都在300MB左右。CASE 1:现在我们假设有3个300MB大小的文件,那么goalsize = min(900MB/2,256MB) = 256MB 阅读全文