如何讓Hadoop結合R語言做大資料分析?

來源:互聯網
上載者:User
關鍵字 演算法 可以 同樣 資料採礦

為什麼要讓Hadoop結合R語言?

R語言和Hadoop讓我們體會到了,兩種技術在各自領域的強大。 很多HTTP://www.aliyun.com/zixun/aggregation/7155.html">開發人員在電腦的角度,都會提出下面2個問題。 問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?

問題2: Mahout同樣可以做資料採礦和機器學習,和R語言的區別是什麼? 下面我嘗試著做一個解答:問題1: Hadoop的家族如此之強大,為什麼還要結合R語言?

a. Hadoop家族的強大之處,在於對大資料的處理,讓原來的不可能(TB,PB資料量計算),成為了可能。

b. R語言的強大之處,在於統計分析,在沒有Hadoop之前,我們對於大資料的處理,要取樣本,假設檢驗,做回歸,長久以來R語言都是統計學家專屬的工具。

c. 從a和b兩點,我們可以看出,hadoop重點是全量資料分析,而R語言重點是樣本資料分析。 兩種技術放在一起,剛好是最長補短!

d. 類比場景:對1PB的新聞網站訪問日誌做分析,預測未來流量變化

d1:用R語言,通過分析少量資料,對業務目標建回歸建模,並定義指標d2:用Hadoop從海量日誌資料中,提取指標資料d3:用R語言模型,對指標資料進行測試和調優d4:用Hadoop分步式演算法,重寫R語言的模型, 部署上線這個場景中,R和Hadoop分別都起著非常重要的作用。 以電腦開發人員的思路,所有有事情都用Hadoop去做,沒有資料建模和證明,」預測的結果」一定是有問題的。 以統計人員的思路,所有的事情都用R去做,以抽樣方式,得到的「預測的結果」也一定是有問題的。 所以讓二者結合,是產界業的必然的導向,也是產界業和學術界的交集,同時也為交叉學科的人才提供了無限廣闊的想像空間。 問題2: Mahout同樣可以做資料採礦和機器學習,和R語言的區別是什麼?

a. Mahout是基於Hadoop的資料採礦和機器學習的演算法框架,Mahout的重點同樣是解決大資料的計算的問題。

b. Mahout目前已支援的演算法包括,協同過濾,推薦演算法,聚類演算法,分類演算法,LDA, 樸素bayes,隨機森林。 上面的演算法中,大部分都是距離的演算法,可以通過矩陣分解後,充分利用MapReduce的平行計算框架,高效地完成計算任務。

c. Mahout的空白點,還有很多的資料採礦演算法,很難實現MapReduce並行化。 Mahout的現有模型,都是通用模型,直接用到的專案中,計算結果只會比隨機結果好一點點。 Mahout二次開發,要求有深厚的JAVA和Hadoop的技術基礎,最好兼有 「線性代數」,「概率統計」,「演算法導論」 等的基礎知識。 所以想玩轉Mahout真的不是一件容易的事情。

d. R語言同樣提供了Mahout支援的約大多數演算法(除專有演算法),並且還支援大量的Mahout不支援的演算法,演算法的增長速度比mahout快N倍。 並且開發簡單,參數配置靈活,對小型資料集運算速度非常快。

雖然,Mahout同樣可以做資料採礦和機器學習,但是和R語言的擅長領域並不重合。 集百家之長,在適合的領域選擇合適的技術,才能真正地「保質保量」做軟體。

如何讓Hadoop結合R語言?

從上一節我們看到,Hadoop和R語言是可以互補的,但所介紹的場景都是Hadoop和R語言的分別處理各自的資料。 一旦市場有需求,自然會有商家填補這個空白。

1). RHadoop

RHadoop是一款Hadoop和R語言的結合的產品,由RevolutionAnalytics公司開發,並將代碼開源到github社區上面。 RHadoop包含三個R包 (rmr,rhdfs,rhbase),分別是對應Hadoop系統架構中的,MapReduce, HDFS, HBase 三個部分。

2). RHiveRHive是一款通過R語言直接存取Hive的工具組,是由NexR一個韓國公司研發的。

3). 重寫Mahout用R語言重寫Mahout的實現也是一種結合的思路,我也做過相關的嘗試。

4). Hadoop調用R

上面說的都是R如何調用Hadoop,當然我們也可以反相操作,打通JAVA和R的連接通道,讓Hadoop調用R的函數。 但是,這部分還沒有商家做出成形的產品。

5. R和Hadoop在實際中的案例

R和Hadoop的結合,技術門檻還是有點高的。 對於一個人來說,不僅要掌握Linux, JAVA, Hadoop, R的技術,還要具備 軟體發展,演算法,概率統計,線性代數,資料視覺化,行業背景 的一些基本素質。 在公司部署這套環境,同樣需要多個部門,多種人才的的配合。 Hadoop運維,Hadoop演算法研發,R語言建模,R語言MapReduce化,軟體發展,測試等等。 所以,這樣的案例並不太多。

原文連結:HTTP://www.36dsj.com/archives/6468

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.