Pig脚本执行后2个map但是一直很慢
Pig脚本执行后2个map但是一直很慢,大神帮忙解答下。Hadoop job_201501050010_1228 on nn1User: root
Job Name: PigLatin:find_roleExp.pig
Job File: hdfs://mycluster/tmp/hadoop-mapred/mapred/staging/root/.staging/job_201501050010_1228/job.xml
Submit Host: dn7.9961.cn
Submit Host Address: 10.1.1.13
Job-ACLs: All users are allowed
Job Setup:Successful
Status: Running
Started at: Mon Jan 05 15:49:34 CST 2015
Running for: 10mins, 27sec
Job Cleanup: Pending
Kind% CompleteNum TasksPendingRunningComple
map50.00%
2011
reduce0.00%
0000
可以对pig优化一下。措施比较多,例如:
Pig对于数据倾斜Join的优化原理
1、对数据抽样
2、根据样本数据,估计出某个key的所有的记录数以及所占的总内存,pig.skewedjoin.reduce.memusage 控制reduce消耗内存比例,再计算出某个key所需要的reduce个数,以及reduce的总数。
3、将结果存一个文件中,相当于索引文件,格式为:(swpv,0,3), (swps,4,5)(说明:<join key>,<min index of reducer>, <max index ofreducer>)
4、自定义Patitioner,读取索引,并将key平均分配到reduce上。比如:(swpv,0,3)将swpv平均分配到 编号为0-3的reduce中。
资源pdf:
pig性能优化
例如还有小文件优化:
引用:
测试数据:20GB gz数据,文件数4.7万个,大小从上百MB到几MB
测试机器:Slave 2台。8core,32GB内存,5 map slot,3 reduce slot
Job逻辑:输出文件总行数
使用Pig耗时:12mins
java代码(FileInputFormat):>60 min (开启jvm重用,使用默认FileInputFormat)
java代码(CombineFileInputFormat):21 min
结论:Pig对于处理小文件做了优化,性能远远好于Java编写代码。
关于PigInputFormat
默认使用集群配置block size来合并小文件,并作为input split传给map方法
时间input split 167个,远远小于Java编写代码( FileInputFormat )的4.7个input splits
muyannian 发表于 2015-1-5 20:49
例如还有小文件优化:
引用:
从 HBase里面读取的数据,这个有什么优化的?
唐运 发表于 2015-1-6 14:28
从 HBase里面读取的数据,这个有什么优化的?
pig可以在语句上优化
nextuser 发表于 2015-1-6 15:25
pig可以在语句上优化
有示例参考吗?
唐运 发表于 2015-1-6 16:02
有示例参考吗?
参考这个试试
http://www.aboutyun.com/blog-1330-943.html
页:
[1]