摘要

由于软件需求和版本的升级,软件代码的重构与演化成为软件维护的主要手段和关键技术需求。Hadoop分布式软件随着分布式大数据处理技术的不断发展,版本不断地升级,随之而来的是基于Hadoop平台的应用软件也需要升级。这种升级过程为软件演化技术的提出了新的挑战。该文针对基于Hadoop平台应用软件的演化方法和技术进行讨论,结合具体实例探讨演化方法实现的技术过程,验证演化方法和技术的有效性。该文主要讨论Hadoop平台应用软件演化中的功能移植和计算速度提升问题。在功能移植方面,研究了Hadoop1.0到升级到版本2.0的基础类库的映射关系,包括MapReduce的演化过程,并分析了Hadoop版本演化代码复杂度;在速度提升方面,针对MapReduce任务进行演化,并给出了Mapreduce磁盘读写操作到内存操作改进算法,以及MapReduce作业如何转换成Spark作业的算法。最后,对企业ETL处理中InnerJoin应用进行案例研究,详细分析MapReduce和Spark编程模式下,InnerJoin的应用差异。