轻松学大数据挖掘:算法、场景与数据产品
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 数据挖掘中的MapReduce编程

3.2.1 学习MapReduce编程的目的

虽然很多实践案例都是基于Spark框架去重写的一些业务场景模型,但还是提倡大家先接触MapReduce编程。相比较而言,两者之间有一定的差异性。

· 高效性:主要体现在四个方面——Spark提供Cache机制减少数据读取的I/O消耗、DAG引擎减少中间结果到磁盘的开销、使用多线程池模型来减少Task启动开销、减少不必要的Sort排序和磁盘I/O操作。

· 代码简洁:解决同一个场景模型,用Spark代码,代码总量能够减少1/5~1/2。

Spark目前只支持四种语言,分别为Java、Python、R和Scala。既然Spark有很大的优势,而且还这么火,为什么不直接学习它,却要先接触MapReduce呢?理由有以下几点。

· 足够经典:MapReduce离线分布式计算可以说是大数据计算框架的起源,分而治之的思想的确经典,应该去了解。

· 大道归一:先足够了解MapReduce的写法,以及数据处理的思想,再接触Spark时,会更容易理解。毕竟目的都一样,只是实现形式存在差异。

· 锻炼编程能力:在向大家推荐编程语言的过程中,都是由Python到Java,最后才是Scala,逐步加深自己对于工程的理解能力,越到后面会越顺手。

而MapReduce底层就是用Java来实现的。

所以,这3个理由就已经足够让每一个初次接触大数据挖掘的朋友有一个明确的目标,知道如何提高自身的工程能力。