用户角度:
hadoop参数调优:
core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,根据实际应用场景对参数进行配置,比如io.seqfile.compress.blocksize(块压缩时块的最小块大小),dfs.block.size(每个文件块的大小,默认是64M,对于大型文件可以设置为128M)。
常用参数设置:
(1).reduce个数设置:
A.如果reduce个数设置太小,单个reducetask执行速度很慢,出错重新调试的时间比较多
B.如果reduce个数设置太大,shuffle开销及调度开销很大,job输出大量文件,影响后续job的执行
C.推荐的reduce个数。单个reducetask处理数据量介于1G-10G之间,reduce的个数要少于map的个数
实验数据如下:
(2).压缩中间数据,用cpu换磁盘和网络,设置mapred.compress.map.output设为true
A.减少磁盘操作
B.减少网络传输数量\
Hadoop作业调度调优
hadoop参数的配置只是静态的对集群性能做优化,在job运行的时候无法动态的修改配置文件并使之生效。下面考虑动态性能调优。
作业调度:
调整作业调度算法:FIFO,公平调度算法,计算能力调度算法
Hadoop(MapReduce)程序编写调优
1.正确配置集群
如果是一大批mr程序,可以设置一个combiner,combiner可以减少maptask中间的输出结果,从而减少redece的远程拷