- 輕松學大數據挖掘:算法、場景與數據產品
- 汪榕
- 480字
- 2019-12-04 19:10:07
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個理由就已經足夠讓每一個初次接觸大數據挖掘的朋友有一個明確的目標,知道如何提高自身的工程能力。