Hadoop实践(四)---性能调优
来源:互联网 发布:java七牛上传图片demo 编辑:程序博客网 时间:2024/05/22 10:27
Hadoop的主要吸引力之一就是它的线性可扩展性。许多作业都可以通过添加更多的机器来加速。
Hadoop在性能调优上有一些特定的手段和技巧,总体来说颇有成效。
1、通过Combiner来减少网络流量
Combiner可以减少在map和reduce之间的shuffle的数据量,较低的网络流量缩短了执行时间
2、减少输入数据量
在处理大型数据集时,有相当一部分时间花费在扫描磁盘中的数据。减少需要读取的字节数,可以提高总体的吞吐量。
- 减少处理的数据量:例如只处理数据采集后的子集,对于某些分析应用这是可行的,因为抽样只是降低了精度而不是准确度
- 重构输入数据为几个较小的数据集:每个数据集只包含数据处理所需的特定类型
3、使用压缩
mapreduce的中间结果必须存储在磁盘中,并在网络上重排,压缩这些数据会提高大多数MR作业的性能
Hadoop内置支持压缩和解压缩,启用对map输出的压缩设计2个属性的配置
- mapred.compress.map.output Boolean属性,表表示输出是否压缩
- mapred.map.output.compression.codec Class属性,表示采用哪种压缩方式
conf.setBoolean("mapred.compress.map.output","true")conf.setClass("mapred.map.output.compression.codec","Compressiocodec.class")
- DefaultCodec
- GzipCodec
- Bzip2Codec
conf.setOutputFormat(SequnceFileOutputFormat.class);SequenceFileOutputFormat.setOutputCompressionType(conf,CompressionType.Block);FileOutputFormat.setCompressOutput(conf,true);FileOutputFormat.setOutputCompressorClass(conf,GzipCodec.class);
输出压缩序列文件的配置属性
4、重用JVM
默认情况下,TaskTracker(AM)将每个Mapper和Reducer任务作为子进程分别运行在独立的JVM中。这必然给每个任务引入JVM的启动开销。
在相同作业的多个任务之间重用JVM,这样启动开销被平摊到多个任务中
运行JVM重用的配置属性
JobConf对象中有一个便捷的方法,setNumTask是ToExecutePer(int)来设置作业的属性
5、根据猜测执行来运行
启动和进制猜测执行的属性
阅读全文
0 0
- Hadoop实践(四)---性能调优
- Hadoop实践(四)---MR作业配置
- Android 性能测试实践(四) 流量
- Android 性能测试实践(四) 流量
- Android 性能测试实践(四) 流量
- Hadoop实践(四)---Hadoop集群测试(MR样例)
- hadoop实践(四) hadoop伪分布式发布
- hadoop性能调优
- Hadoop性能调优
- hadoop性能调优
- Hadoop性能调优
- hadoop性能调优
- Hadoop性能调优
- Hadoop性能调优
- Hadoop性能调优
- Hadoop性能调优
- Hadoop性能调优
- hadoop性能调优
- [区间DP] Codeforces 392E Round #230 (Div. 1) E. Deleting Substrings
- js短路运算&& 和 ||
- 1.1 解惑:运放的输入输出电压范围
- Vue实现表格的翻页显示功能
- SSM框架 用ajax实现模糊查询分页和列表
- Hadoop实践(四)---性能调优
- TensorFlow练习13: 制作一个简单的聊天机器人
- php 前一天或后一天的日期
- Hibernate Criteria的 Criterion,Projection,Restrictions等条件设置
- MySQL 实现Oracle序列
- WiFi-Pumpkin无线渗透测试框架实战教程
- ashmem 使用
- dyld: Symbol not found: _OBJC_CLASS_$_SFRequestLogin
- lightoj 1138