通过CombineTextInputFormat实现小文件优化(调优技能)

简介: 通过CombineTextInputFormat实现小文件优化(调优技能)

0x00 文章内容


  1. 未修改前情况
  2. CombineTextInputFormat实现小文件优化

说明:本文章在MapReduce编程例子之Combiner与Partitioner 的Combiner例子基础上执行。


0x01 未修改前情况


1. 当前文件情况

a. 目前/files文件夹有4个文件

[hadoop-sny@master jar]$ hadoop fs -ls /files/
Found 4 items
-rw-r--r--   1 hadoop-sny supergroup         39 2019-04-18 21:20 /files/put.txt
-rw-r--r--   1 hadoop-sny supergroup         50 2019-12-30 17:12 /files/small1.txt
-rw-r--r--   1 hadoop-sny supergroup         31 2019-12-30 17:10 /files/small2.txt
-rw-r--r--   1 hadoop-sny supergroup         49 2019-12-30 17:11 /files/small3.txt


2. 执行未修改前作业

a. 执行命令如下:

hadoop jar hadoop-learning-1.0.jar com.shaonaiyi.hadoop.CombinerWC /files/* /output/comwc/


3. 查看结果

a. 可在YARN的Web UI界面上看到有4个Map Task

image.png


0x02 CombineTextInputFormat实现小文件优化


1. 修改代码

a. 添加一行代码

   //合并小文件CombineTextInputFormat
        job.setInputFormatClass(CombineTextInputFormat.class);


image.png


2. 执行修改后作业

a. 执行命令如下(与前面一样):


hadoop jar hadoop-learning-1.0.jar com.shaonaiyi.hadoop.CombinerWC /files/* /output/comwc/


3. 查看结果

a. 可在YARN的Web UI界面上看到只有1个Map Task


image.png


0xFF 总结


  1. 一个Map Task就是一个JVM进程,将一个目录下的所有文件当成了一个split来执行,可以减少JVM的启动,从而提高性能。


相关文章
|
5月前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
195 3
|
5月前
|
算法 Java 测试技术
java性能调优涉及哪些方面
本文详细探讨了性能调优的各个方面,包括Java编程、多线程、JVM监控、设计模式和数据库调优。文章还介绍了性能调优的标准制定、介入时机、系统性能的影响因素,以及如何衡量和判断系统的性能与负载承受能力。最后,提出了性能调优的具体策略,包括代码、设计、算法优化及参数调整,并讨论了限流、智能化扩容等兜底策略。
java性能调优涉及哪些方面
|
4月前
|
缓存 前端开发 JavaScript
前端性能调优
前端性能调优
|
5月前
|
SQL 数据库 开发者
YashanDB产品调优实战:分享日常调优技巧及提升系统性能的实战经验
YashanDB产品调优实战:分享日常调优技巧及提升系统性能的实战经验
|
6月前
|
监控 IDE Java
【Java性能调优新工具】JDK 22性能分析器:深度剖析,优化无死角!
【9月更文挑战第9天】JDK 22中的性能分析器为Java应用的性能调优提供了强大的支持。通过深度集成、全面监控、精细化分析和灵活报告生成等核心优势,性能分析器帮助开发者实现了对应用性能的全面掌控和深度优化。在未来的Java开发过程中,我们期待性能分析器能够继续发挥重要作用,为Java应用的性能提升贡献更多力量。
|
8月前
|
Java 大数据 测试技术
开发与运维测试问题之UseCompactObjectHeaders在SPECjbb2015基准测试中的表现如何解决
开发与运维测试问题之UseCompactObjectHeaders在SPECjbb2015基准测试中的表现如何解决
232 1
|
8月前
|
监控 Java 调度
探索JVM性能调优,调优不仅是技术挑战,更是成长过程。
【7月更文挑战第1天】探索JVM性能调优:** 本文深入JVM内存模型,关注堆内存与方法区、栈的优化,通过调整-Xms, -Xmx及垃圾收集器参数减少GC频率。探讨了Serial到G1等垃圾收集器的选择策略,利用jstat、jmap等工具诊断性能瓶颈。实战案例中,通过问题定位、内存分析解决Full GC问题,强调开发者需理解JVM原理,运用工具在复杂场景下实现高效调优。调优不仅是技术挑战,更是成长过程。
57 0
|
10月前
|
运维 关系型数据库 MySQL
性能分析到底是不是性能测试工程师的能力?
【4月更文挑战第27天】性能分析到底是不是性能测试工程师的能力?
86 2
|
Java Linux
理论:第十四章:生产环境服务器变慢如何诊断,性能评估
理论:第十四章:生产环境服务器变慢如何诊断,性能评估
298 0
理论:第十四章:生产环境服务器变慢如何诊断,性能评估
|
测试技术 Python
【零基础】性能、自动化测试技能自学提升方案
成为性能和自动化行业领域专家,做有魅力,有影响力的人。
137 0
【零基础】性能、自动化测试技能自学提升方案