论文部分内容阅读
摘要:为了更好的验证通过参数的优化可以提高Hadoop性能,我们可以采用的测试方法有:基准测试、稳定性测试、高可用测试、扩展性测试、安全性测试等。本文以基准测试方法为主来验证参数优化后,实现对Hadoop性能的调优。本文主要针对hadoop内部的17个参数进行优化,通过基准测试中terasort和WordCount的复合算法的执行时间来校验参数的优化情况,实验过程中搜集系统的cpu和内存使用率,磁盘io和网络io的吞吐量等指标。图1-3充分说明了参数默认值与参数调整后的对比情况。实验结果表明,hadoop参数调整优化后,在一定情况下实现了hadoop的性能调优。
关键字:Hadoop;参数优化;性能调优
引言
大数据软件平台主要由分布式文件系统、分布式计算系统、NoSQL 数据库、分布式数据仓库、分布式数据库等构成,能够提供大数据的存储、管理和计算能力。大数据软件平台主要包括开源的Hadoop、Spark等,一般部署在通用硬件平台上[1-2]。
由于Hadoop自身包含的参数比较多,参数之间的关系也比较复杂。经过简单的实验验证,本文主要对表1中的17个参数进行优化,并且参数优化是遵循顺序、叠加的方式,从而到达Hadoop的性能调优。
实验设计和算法研究
为了更好的验证通过参数的优化可以提高Hadoop性能,我们可以采用的测试方法有:基准测试、稳定性测试、高可用测试、扩展性测试、安全性测试等。本文以基准测试方法为主来验证参数优化后,实现对Hadoop性能的调优。
基准测试是一种测量和评估软件性能指标的活动。可以在某个时间通过基准测试建立一个已知的性能水平(称为基准线)[3],当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
基准测试的测试方法有很多种,根据Hadoop的Map Reduce过程,本文主要以TeraSort算法和WordCount算法来验证表1中的17个参数调整后,对Hadoop性能在特定条件下影响及优化。
本实验中hadoop测试环境是采用1个Name Node节点,4个Date Node节点的模式進行。
算法研究:
1)TeraSort 算法
Terasort算法的工作原理需要以下几个步骤:
首先,采样;
其次,map task对于数据记录做标记-
最后reduce局部排序,再顺序输出。
1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是Hadoop中的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。TeraSort巧妙的利用了Hadoop的MapReduce机制来实现了Sort的目的,与Hadoop机制的完美结合也许是它优异排序成绩的一个重要原因。而也正因为如此,我们可以在集群上利用TeraSort来测试Hadoop,它将具有很高的测试利用价值[4]。
Terasort的特点是混合型的,它的数据类型为文本,测试过程中所需的数据来源为Hadoop 自带TeraGen生成。
TeraSort只是一个小工具,比起生产应用作业,可能是微不足道了。但一个小工具,如果能够挖掘到底,背后也会有大价值;尤其对测试来讲,如果能够对背景知识有更多的了解,一个小工具可以转换成众多方便且有价值的测试用例;并且,如果能对一个小工具举一反三,也能够为其他地方的测试提供价值。
2)WordCount算法
(1) 将文件拆分为多个文件。 由于测试文件比较小,每个文件都是一个split,把文件分割成行,形成<key, value>对,再分割成<key, value>对。 移交用户定义的map方法,生成新的<key, value>对,如图1所示。
(2)Mapper得到map方法输出的<key, value>对后,会根据key的值对它们进行排序,并执行Combine过程,将key累加到相同的值,得到Mapper的最终输出 . 如图2所示。
(3) Reducer首先对从Mapper接收到的数据进行排序,然后通过用户自定义的reduce方法进行处理,得到一个新的<key, value>对,输出结果为WordCount,如图3所示。
本文首先根据terasort算法对17个参数进行调优,然后根据WordCount算法继续进行参数调整,以达到性能在一定情况下达到最佳状态。在实验过程中,主要根据算法的执行时间来验证了参数调整的正确性。同时采用PAT工具监控算法执行过程中系统的CPU、内存、磁盘IO和网络IO等参数。
实验数据中单个文件大小为1G,文件数量为512,总文件大小为512G。
实验结果
通过实验,我们可以了解到参数之间存在着互相影响的关系,测试后发现随着参数调整,算法的执行时间在减少,充分的说明了随着参数的优化,hadoop性能实现一定的优化。
我们可以了解到随着调整17个参数的默认值,算法的执行时间有明显的缩短,在17个参数都处于默认值的情况下,算法的执行时间为21776秒。图1展现了参数默认值与参数调整后算法的执行时间的对比情况,参数优化后,极大的提高了算法的执行时间。图2清晰的展现了参数默认值与参数调整后算法的执行过程中,hadoop对服务器的cpu/内存的使用率对比情况,cpu的占用率明显有所增大,内存的使用率也有所增大。图3清晰的展现了参数默认值与参数调整后算法的执行过程中,hadoop对服务器的磁盘IO,网络 IO吞吐量明显有所增大。
经过验证,说明参数调整后在一定程度上提高了性能。
总结
本文主要是通过基准测试中TeraSort算法和WordCount算法相结合复合算法的运行时间来验证对Hadoop的参数进行调优,进而优化hadoop的性能。Hadoop性能调优不仅涉及到Hadoop本身的性能调优,还涉及更底层的硬件、操作系统和Java虚拟机等系统的调优。为了更好的使用Hadoop,我们应根据实际应用场景及要求,对hadoop参数进行优化,使hadoop性能在特定情况下达到最优。
参考文献references
[1]Saravanan S, Karthick K E, Balaji A, et al. Performance Comparison of Apache Spark and Hadoop Based Large Scale Content Based Recommender System[M]// Intelligent Systems Technologies and Applications. 2018:66-73.
[2]Ashlesha S, R. M. A Review of Hadoop Ecosystem for BigData[J]. International Journal of Computer Applications, 2018, 180(14):35-40.
[3]Trivedi M, Nambiar R. Lessons Learned: Performance Tuning for Hadoop Systems[M]// Performance Evaluation and Benchmarking. Traditional - Big Data - Interest of Things. 2017.
[4]Pahl C. Performance and Energy Optimization on Terasort Algorithm by Task Self-Resizing[J]. Information Technology & Control, 2014, 44(1):30-40.
关键字:Hadoop;参数优化;性能调优
引言
大数据软件平台主要由分布式文件系统、分布式计算系统、NoSQL 数据库、分布式数据仓库、分布式数据库等构成,能够提供大数据的存储、管理和计算能力。大数据软件平台主要包括开源的Hadoop、Spark等,一般部署在通用硬件平台上[1-2]。
由于Hadoop自身包含的参数比较多,参数之间的关系也比较复杂。经过简单的实验验证,本文主要对表1中的17个参数进行优化,并且参数优化是遵循顺序、叠加的方式,从而到达Hadoop的性能调优。
实验设计和算法研究
为了更好的验证通过参数的优化可以提高Hadoop性能,我们可以采用的测试方法有:基准测试、稳定性测试、高可用测试、扩展性测试、安全性测试等。本文以基准测试方法为主来验证参数优化后,实现对Hadoop性能的调优。
基准测试是一种测量和评估软件性能指标的活动。可以在某个时间通过基准测试建立一个已知的性能水平(称为基准线)[3],当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
基准测试的测试方法有很多种,根据Hadoop的Map Reduce过程,本文主要以TeraSort算法和WordCount算法来验证表1中的17个参数调整后,对Hadoop性能在特定条件下影响及优化。
本实验中hadoop测试环境是采用1个Name Node节点,4个Date Node节点的模式進行。
算法研究:
1)TeraSort 算法
Terasort算法的工作原理需要以下几个步骤:
首先,采样;
其次,map task对于数据记录做标记-
最后reduce局部排序,再顺序输出。
1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是Hadoop中的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。TeraSort巧妙的利用了Hadoop的MapReduce机制来实现了Sort的目的,与Hadoop机制的完美结合也许是它优异排序成绩的一个重要原因。而也正因为如此,我们可以在集群上利用TeraSort来测试Hadoop,它将具有很高的测试利用价值[4]。
Terasort的特点是混合型的,它的数据类型为文本,测试过程中所需的数据来源为Hadoop 自带TeraGen生成。
TeraSort只是一个小工具,比起生产应用作业,可能是微不足道了。但一个小工具,如果能够挖掘到底,背后也会有大价值;尤其对测试来讲,如果能够对背景知识有更多的了解,一个小工具可以转换成众多方便且有价值的测试用例;并且,如果能对一个小工具举一反三,也能够为其他地方的测试提供价值。
2)WordCount算法
(1) 将文件拆分为多个文件。 由于测试文件比较小,每个文件都是一个split,把文件分割成行,形成<key, value>对,再分割成<key, value>对。 移交用户定义的map方法,生成新的<key, value>对,如图1所示。
(2)Mapper得到map方法输出的<key, value>对后,会根据key的值对它们进行排序,并执行Combine过程,将key累加到相同的值,得到Mapper的最终输出 . 如图2所示。
(3) Reducer首先对从Mapper接收到的数据进行排序,然后通过用户自定义的reduce方法进行处理,得到一个新的<key, value>对,输出结果为WordCount,如图3所示。
本文首先根据terasort算法对17个参数进行调优,然后根据WordCount算法继续进行参数调整,以达到性能在一定情况下达到最佳状态。在实验过程中,主要根据算法的执行时间来验证了参数调整的正确性。同时采用PAT工具监控算法执行过程中系统的CPU、内存、磁盘IO和网络IO等参数。
实验数据中单个文件大小为1G,文件数量为512,总文件大小为512G。
实验结果
通过实验,我们可以了解到参数之间存在着互相影响的关系,测试后发现随着参数调整,算法的执行时间在减少,充分的说明了随着参数的优化,hadoop性能实现一定的优化。
我们可以了解到随着调整17个参数的默认值,算法的执行时间有明显的缩短,在17个参数都处于默认值的情况下,算法的执行时间为21776秒。图1展现了参数默认值与参数调整后算法的执行时间的对比情况,参数优化后,极大的提高了算法的执行时间。图2清晰的展现了参数默认值与参数调整后算法的执行过程中,hadoop对服务器的cpu/内存的使用率对比情况,cpu的占用率明显有所增大,内存的使用率也有所增大。图3清晰的展现了参数默认值与参数调整后算法的执行过程中,hadoop对服务器的磁盘IO,网络 IO吞吐量明显有所增大。
经过验证,说明参数调整后在一定程度上提高了性能。
总结
本文主要是通过基准测试中TeraSort算法和WordCount算法相结合复合算法的运行时间来验证对Hadoop的参数进行调优,进而优化hadoop的性能。Hadoop性能调优不仅涉及到Hadoop本身的性能调优,还涉及更底层的硬件、操作系统和Java虚拟机等系统的调优。为了更好的使用Hadoop,我们应根据实际应用场景及要求,对hadoop参数进行优化,使hadoop性能在特定情况下达到最优。
参考文献references
[1]Saravanan S, Karthick K E, Balaji A, et al. Performance Comparison of Apache Spark and Hadoop Based Large Scale Content Based Recommender System[M]// Intelligent Systems Technologies and Applications. 2018:66-73.
[2]Ashlesha S, R. M. A Review of Hadoop Ecosystem for BigData[J]. International Journal of Computer Applications, 2018, 180(14):35-40.
[3]Trivedi M, Nambiar R. Lessons Learned: Performance Tuning for Hadoop Systems[M]// Performance Evaluation and Benchmarking. Traditional - Big Data - Interest of Things. 2017.
[4]Pahl C. Performance and Energy Optimization on Terasort Algorithm by Task Self-Resizing[J]. Information Technology & Control, 2014, 44(1):30-40.