Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
當 R 遇上 Hadoop
By Jazz Wang
R Taiwan 2015
December 18, 2015
• 王耀聰 Jazz Yao-Tsung Wang
• jazzwang@etusolution.com
• Etu 產品協理
• Hadoop.TW 共同創辦人
• Hadoop The Definitive Guide 譯者
• Hadoo...
To be honest …. Why am I here ?
3
 我跟 R 真的很不熟
 勉強只有上過幾堂 Coursera 線上課程
 R 語言基本語法只要一陣子不用,就會忘光光 (羞)
 張三豐:忘掉一切招式,你就學會太極了
...
WHY
Agenda
4
 為何需要把 R 跑在多台電腦上?
 平行運算的起源、運算類型與限制
 Hadoop 與 RHadoop 簡介
 如何開始試用 RHadoop ?
WHEN
WHAT
HOW
已知 R 的一些限制
5
 Memory-bound :
必須將資料先載入到記憶體,才能做運算
 32-bits 作業系統,理論上限是 4GB,但實務上常只能用到 2G
 解法: CRAN - Package bigmemory
http...
2008 年 - 跟 R 的第一次交手:Rmpi 與 Biocondoctor
6
 每個細胞 300 萬個基因, 會有一些變化起伏,
用 Micro-array 來檢測
 國外有臨床資料庫,紀錄特定同一個癌症不同時期的基因變化
 需求:...
Error: cannot allocate vector of size
7
Credit: 郭文傑
我們用了合併
多台記憶體與
CPU 核心的
特殊技術
仍無法突破於
單機取得超過
2GB記憶體的
限制
8
Credit: 郭文傑
使用 Rmpi 平行化加快了運算速度
9
運算時間 (分鐘)
Permutation 次數
因符合可平行化特徵,
使用 6 台平行運算,
運算時間約為單機的
18%
Credit: 劉嘉言
WHY
Agenda
10
 為何需要把 R 跑在多台電腦上?
 平行運算的起源、運算類型與限制
 Hadoop 與 RHadoop 簡介
 如何開始試用 RHadoop ?
WHEN
WHAT
HOW
從 Moore's Law , Nielsen's Law , Kryder's Law 三大定律
看運算技術演進史
11
1960
1962
1964
1966
1968
1970
1972
1974
1976
1978
1980
1982
...
平行運算的四種一致性模型(consistency model)
費林分類法(Flynn's Taxonomy)
12
 1972 年 Michael J. Flynn
 資訊流(information stream)
可分成指令(Instr...
限制一:平行化能加速的比例有其極限
阿姆達爾定律(Amdahl‘s law)
13
固定負載(計算總量不變)時
平行運算的量化標準。
同樣的東西透過平行化處理
可以快多少??
A : 程式無法平行化的比例
B : 程式可以平行化的比例
N : ...
限制二:並非每一種演算法都合適平行化
14
 經驗談:可以平行化的基本判斷指標
 符合結合律 (Associative property)
 符合交換律 (Commutative property)
 不同的使用時機:
是否會用到公用變...
Share Nothing Model
15
 1986 年 Stonebraker 提出三種分散式架構
 shared-everything (SE)
 shared-disk (SD)
 shared-nothing (SN)
 ...
Paradigm Shift in Architecture
from Computing Center to Data Center
Infiniband Network
Cluster File System
High Density Se...
WHY
Agenda
17
 為何需要把 R 跑在多台電腦上?
 平行運算的起源、運算類型與限制
 Hadoop 與 RHadoop 簡介
 如何開始試用 RHadoop ?
WHEN
WHAT
HOW
高資料通量處理平台 Hadoop
Hadoop is a framework for developer
to wrote and execute massive data
processing applications easily.
Had...
使用 Hadoop 的優點
19
 In-place Computing 在地運算
 強調 Data Locality
 根據資料所在的位置,分派運算工作到擁有資料的節點上(減少資料搬運)
 平行讀取輸入,平行寫出結果
 Fault ...
20
使用 Hadoop 的缺點:批次作業的運算時間
切記!! 並非平行化就一定比較快~
單一資料運算時間 >> 資料搬運時間+準備時間
 資料切太細反而會變慢
 資料不夠大反而會變慢
關於 RHadoop
21
 https://github.com/RevolutionAnalytics/RHadoop/wiki
 由 Revolution Analytics 開發
 包含以下套件:
套件名稱 功能描述
RHDFS ...
WHY
Agenda
22
 為何需要把 R 跑在多台電腦上?
 平行運算的起源、運算類型與限制
 Hadoop 與 RHadoop 簡介
 如何開始試用 RHadoop ?
WHEN
WHAT
HOW
試用 Etu Manager 3.1 Sandbox with RHadoop
23
 如果您已經有 Amazon EC2 的帳號,可以使用以下網址快速開啟
Etu Manager 3.1 Sandbox with RHadoop 範本的虛擬...
點選上一頁的網址,首先您需要先登入 AWS 帳號
24
因為記憶體需求較高
建議選擇 r3.large 或 r3.xlarge 等級的虛擬機器
25
確認虛擬網路 VPC 的網段設定
(一般採用預設值即可)
26
設定虛擬機器的硬碟空間,建議不要低於 40GB
預設60GB,若有要分析的資料,可以自行提高
(調整後,需要額外執行 resizefs 指令才能使用超過 60GB)
27
Tag 只是方便識別虛擬機器的一些屬性資料,可忽略
28
由於預設只能開放 22 連線埠,請依需求開放其他連線
這裡因為是實驗性質,開放了所有外部連線
29
設定完成,這一歩是顯示前面做的設定資料
30
產生一個連線用的 root 帳號金鑰,或使用現存的金鑰
31
虛擬機器已開啟,可回到 EC2 的管理介面觀看狀態
32
等待虛擬機器的狀態變成 running 並查詢 Public IP
33
連線至 http://$(Public IP) 會看到
Etu Manager 的 Web UI
34
由於需要等待 Hadoop 完成部署,
還有產生一些範例資料庫,約莫需要等 20 分鐘
若遇到以下狀況,代表背景程式還沒執行完畢
35
可從 http://$(Public IP)/ganglia 查詢目前的 CPU 用量
是否為滿載,經驗值需要約 15~20 分鐘才能完成部署
36
為了確保 Hadoop 是否正常運作
請務必先連線至 http://$(Public IP)
並登入 Etu Manager 的管理介面
37
預設帳號:admin
預設密碼:etusolution
確認狀態為「綠燈」,若有其他狀態,
請使用後方的按鈕進行 Restart 的動作
38
其次,為確認 eva 帳號的 HDFS 家目錄存在
請登入 Hue 使用者介面 http://${Public_IP}:8888
39
預設帳號:eva
預設密碼:etusolution
選擇右上角 Edit Profile
然後勾選 “Create home directory”
40
Etu Manager 3.1 Sandbox 已安裝好
CDH 5.3.1、RHDFS/RMR2 套件及 RStudio Server
請連線至 http://$(Public IP):8787
41
預設帳號:eva
預設密碼:etusol...
登入 RStudio Server 後
可以先嘗試執行 Sqoop 匯入 MySQL 的範例
42
備註:若於部署完成前執行,
可能會出現錯誤訊息。
使用 validate-rhadoop.R
進行 RHDFS 與 RMR2 相依套件的功能測試
43
備註:若有使用上的問題,歡迎來信
support@etusolution.com 洽詢。
備註:Examples 目錄下有範例程式
若想要找過去舊版或未來新的版本,請至 AMI 分頁
搜尋關鍵字 “Etu Manager”
44
備註:目前 Etu Manager 相關的 AMI 多數
存 在 新 加 坡 Region , 只 有 一 個 在 日 本
Region。搜尋時,...
WHY
Agenda
45
 為何需要把 R 跑在多台電腦上?
 平行運算的起源、運算類型與限制
 Hadoop 與 RHadoop 簡介
 如何開始試用 RHadoop ?
 更多參考資料
WHEN
WHAT
HOW
REF
David Chiu 的 RHadoop 演講錄影
https://youtu.be/vmIHge8JSXg
46
看看 R 專家的細部解釋
47
 Taking R to the Limit (High Performance Computing in R)
 http://www.slideshare.net/bytemining/taking-r-...
CRAN Task View:
High-Performance and Parallel Computing with R
https://cran.r-project.org/web/views/HighPerformanceComputi...
值得觀察的 Distributed Data-structures (ddR)
http://www.r-bloggers.com/introducing-distributed-data-structures-in-r/
49
318, Rueiguang Rd., Taipei 114,
Taiwan
T: +886 2 7720 1888
F: +886 2 8798 6069
www.etusolution.com
Q & A
Nächste SlideShare
Wird geladen in …5
×

When R meet Hadoop

2015/12/18 R Taiwan 2015
當 R 遇上 Hadoop

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

When R meet Hadoop

  1. 1. 當 R 遇上 Hadoop By Jazz Wang R Taiwan 2015 December 18, 2015
  2. 2. • 王耀聰 Jazz Yao-Tsung Wang • jazzwang@etusolution.com • Etu 產品協理 • Hadoop.TW 共同創辦人 • Hadoop The Definitive Guide 譯者 • Hadoop Operations 譯者 • 自由軟體愛好者 / 推廣者 / 開發者 • 交大電機與控制工程所碩士 • http://about.me/jazzwang - slideshare, github, etc. Who AM I
  3. 3. To be honest …. Why am I here ? 3  我跟 R 真的很不熟  勉強只有上過幾堂 Coursera 線上課程  R 語言基本語法只要一陣子不用,就會忘光光 (羞)  張三豐:忘掉一切招式,你就學會太極了  最近最常用的可能是從 RStudio 裝 R 套件,測試連線 Impala  過去幾年跟 R 交手大概是為了  Rmpi、RODBC、RJDBC、RImpala、RHDFS、RMR2  我跟 Hadoop 分散式運算和 HPC 平行運算比較熟  常常很無奈又很難簡單解釋為什麼客戶的運算會很慢  今天我想分享的會比較偏平行運算的基本入門觀念  瞭解平行運算的種類與限制 ( Limitations )  企鵝雄兵 – 縮短運算時間 ( CPU-bound )  資料切割 – 降低硬體門檻 ( IO-bound , Memory-bound )
  4. 4. WHY Agenda 4  為何需要把 R 跑在多台電腦上?  平行運算的起源、運算類型與限制  Hadoop 與 RHadoop 簡介  如何開始試用 RHadoop ? WHEN WHAT HOW
  5. 5. 已知 R 的一些限制 5  Memory-bound : 必須將資料先載入到記憶體,才能做運算  32-bits 作業系統,理論上限是 4GB,但實務上常只能用到 2G  解法: CRAN - Package bigmemory https://cran.r-project.org/web/packages/bigmemory/index.html  解法: CRAN - Package biglm https://cran.r-project.org/web/packages/biglm/index.html  CPU-bound : 預設使用單一個 Thread,最多只用到一個 CPU 核心  解法:CRAN - Package multicore (已從 CRAN 移除) https://cran.r-project.org/src/contrib/Archive/multicore/  R Core 2.4.1 以後內建 ‘parallel` 套件  解法:CRAN - Package doParallel https://cran.r-project.org/web/packages/doParallel/index.html
  6. 6. 2008 年 - 跟 R 的第一次交手:Rmpi 與 Biocondoctor 6  每個細胞 300 萬個基因, 會有一些變化起伏, 用 Micro-array 來檢測  國外有臨床資料庫,紀錄特定同一個癌症不同時期的基因變化  需求:每一片 micro-array 大小是 15MB, 使用 R 來做分析. 200 片一次 Loading 會有記憶體的限制.  測試過一次最多讀 145 片 Cell 檔.  用讀 Class 的作法, 最多讀 15~20 片 Cell 檔.  單就兩種病人類別來看, 至少就 60 片, 多類別可能會高達 300 片以上.  由團隊成員使用 Rmpi 改寫陽明團隊提供的 R 程式  研究團隊  陽明大學生物醫學資訊研究所  陽明婦癌科 - 卵巢癌  陽明病理科 - 取得病理資料的來源  國網中心軟體技術組
  7. 7. Error: cannot allocate vector of size 7 Credit: 郭文傑
  8. 8. 我們用了合併 多台記憶體與 CPU 核心的 特殊技術 仍無法突破於 單機取得超過 2GB記憶體的 限制 8 Credit: 郭文傑
  9. 9. 使用 Rmpi 平行化加快了運算速度 9 運算時間 (分鐘) Permutation 次數 因符合可平行化特徵, 使用 6 台平行運算, 運算時間約為單機的 18% Credit: 劉嘉言
  10. 10. WHY Agenda 10  為何需要把 R 跑在多台電腦上?  平行運算的起源、運算類型與限制  Hadoop 與 RHadoop 簡介  如何開始試用 RHadoop ? WHEN WHAT HOW
  11. 11. 從 Moore's Law , Nielsen's Law , Kryder's Law 三大定律 看運算技術演進史 11 1960 1962 1964 1966 1968 1970 1972 1974 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 0 2 4 6 8 10 12 14 CPU Network Storage Log(*) 60% 50% ~100% 1960s Mainframe 1980s Cluster 1990s Distributed 2000s Grid 2010s Cloud 18個月 13個月 24個月 Log 巨量資料 面對的挑戰 西元
  12. 12. 平行運算的四種一致性模型(consistency model) 費林分類法(Flynn's Taxonomy) 12  1972 年 Michael J. Flynn  資訊流(information stream) 可分成指令(Instruction)和 資料(Data)兩種。  分成四種運算模型:  單一指令單一資料(SISD)  單一指令多重資料(SIMD)  多重指令單一資料(MISD)  多重指令多重資料(MIMD)  通常平行化前,我們習慣先問  程式是否可切割?  資料是否可切割? https://en.wikipedia.org/wiki/Flynn's_taxonomy
  13. 13. 限制一:平行化能加速的比例有其極限 阿姆達爾定律(Amdahl‘s law) 13 固定負載(計算總量不變)時 平行運算的量化標準。 同樣的東西透過平行化處理 可以快多少?? A : 程式無法平行化的比例 B : 程式可以平行化的比例 N : 處理器個數 極限值= A+B 𝐴+ 𝐵 𝑁 當 N → ∞, 加速比例趨近於 𝐴+𝐵 𝐴 https://en.wikipedia.org/wiki/Amdahl's_law https://oranqe.wordpress.com/2012/09/03/amdahl-vs-gustafson/
  14. 14. 限制二:並非每一種演算法都合適平行化 14  經驗談:可以平行化的基本判斷指標  符合結合律 (Associative property)  符合交換律 (Commutative property)  不同的使用時機: 是否會用到公用變數?是否有資料交換 (參數傳遞)?  若無公用變數,亦無資料交換,才能使用 MapReduce ( In-place Computing, Share Nothing Model )  若有公用變數,且有資料交換,建議使用 MPI ( Message Passing Interface )
  15. 15. Share Nothing Model 15  1986 年 Stonebraker 提出三種分散式架構  shared-everything (SE)  shared-disk (SD)  shared-nothing (SN)  SE 與 SD 的好處是資料無需切割,透過高速網路連結可以減低資料的傳輸時間  隨著資料量日益龐大,再高速的網路也無法負荷時, Shared-Nothing 分散式架構便又開始被採用(如 Hadoop)。 http://www.nchc.org.tw/tw/e_paper/e_paper_content.php?SN=142&SUB _SUBJECT_ID=490&cat=industry
  16. 16. Paradigm Shift in Architecture from Computing Center to Data Center Infiniband Network Cluster File System High Density Server Computing Center Move Data To Compute Message Passing 減少資料搬運 Reduce Data Transfer 強調能源效率 Energy- Efficiency 易於橫向擴充 High- Scalability Gigabit Ethernet Distributed File System Commodity Hardware Data Center Move Compute To Data Share Noting
  17. 17. WHY Agenda 17  為何需要把 R 跑在多台電腦上?  平行運算的起源、運算類型與限制  Hadoop 與 RHadoop 簡介  如何開始試用 RHadoop ? WHEN WHAT HOW
  18. 18. 高資料通量處理平台 Hadoop Hadoop is a framework for developer to wrote and execute massive data processing applications easily. Hadoop includes two parts: HDFS and MapReduce. Warehouse for data source and output results. HDFS stores unstructure data and structure data Processing Map One in One out Grouping Reduce Multiple in, One out 18
  19. 19. 使用 Hadoop 的優點 19  In-place Computing 在地運算  強調 Data Locality  根據資料所在的位置,分派運算工作到擁有資料的節點上(減少資料搬運)  平行讀取輸入,平行寫出結果  Fault Tolerance 高容錯性  避免單台機器錯誤 ( Single Point of Failure )而造成所有工作失敗  自動依資料量切割成數個子任務,並根據硬體資源量,依序執行  遇到機器故障時,會嘗試將工作分派給另一台執行
  20. 20. 20 使用 Hadoop 的缺點:批次作業的運算時間 切記!! 並非平行化就一定比較快~ 單一資料運算時間 >> 資料搬運時間+準備時間  資料切太細反而會變慢  資料不夠大反而會變慢
  21. 21. 關於 RHadoop 21  https://github.com/RevolutionAnalytics/RHadoop/wiki  由 Revolution Analytics 開發  包含以下套件: 套件名稱 功能描述 RHDFS 讓使用者可以透過 R 存取 HDFS RMR2 讓使用者開發並執行以 R 撰寫 MapReduce 函數 RHBASE 讓使用者可以透過 R 存取 HBase PLYRMR 類似 Hive 概念,讓使用者易於操縱資料集 RAVRO 讓使用者可以透過 R 操縱 AVRO 格式的資料
  22. 22. WHY Agenda 22  為何需要把 R 跑在多台電腦上?  平行運算的起源、運算類型與限制  Hadoop 與 RHadoop 簡介  如何開始試用 RHadoop ? WHEN WHAT HOW
  23. 23. 試用 Etu Manager 3.1 Sandbox with RHadoop 23  如果您已經有 Amazon EC2 的帳號,可以使用以下網址快速開啟 Etu Manager 3.1 Sandbox with RHadoop 範本的虛擬機器。 https://console.aws.amazon.com/ec2/v2/home?region=ap- southeast-1#LaunchInstanceWizard:ami=ami-a829eacb  以下用 EC2 作為範例,因為 Hadoop 生態系統整個運作起來需要 的記憶體較大。當然,使用 EC2 會有對應的費用產生。  若您沒有 Amazon EC2 的帳號,或者不想負擔租賃費用, 也可以至以下網址,申請下載 Etu Manager 3.1 Sandbox 的 VirtualBox 版本 http://www.etusolution.com/index.php/tw/download/2015-03-25- 11-36-52/ems-overview-tw
  24. 24. 點選上一頁的網址,首先您需要先登入 AWS 帳號 24
  25. 25. 因為記憶體需求較高 建議選擇 r3.large 或 r3.xlarge 等級的虛擬機器 25
  26. 26. 確認虛擬網路 VPC 的網段設定 (一般採用預設值即可) 26
  27. 27. 設定虛擬機器的硬碟空間,建議不要低於 40GB 預設60GB,若有要分析的資料,可以自行提高 (調整後,需要額外執行 resizefs 指令才能使用超過 60GB) 27
  28. 28. Tag 只是方便識別虛擬機器的一些屬性資料,可忽略 28
  29. 29. 由於預設只能開放 22 連線埠,請依需求開放其他連線 這裡因為是實驗性質,開放了所有外部連線 29
  30. 30. 設定完成,這一歩是顯示前面做的設定資料 30
  31. 31. 產生一個連線用的 root 帳號金鑰,或使用現存的金鑰 31
  32. 32. 虛擬機器已開啟,可回到 EC2 的管理介面觀看狀態 32
  33. 33. 等待虛擬機器的狀態變成 running 並查詢 Public IP 33
  34. 34. 連線至 http://$(Public IP) 會看到 Etu Manager 的 Web UI 34
  35. 35. 由於需要等待 Hadoop 完成部署, 還有產生一些範例資料庫,約莫需要等 20 分鐘 若遇到以下狀況,代表背景程式還沒執行完畢 35
  36. 36. 可從 http://$(Public IP)/ganglia 查詢目前的 CPU 用量 是否為滿載,經驗值需要約 15~20 分鐘才能完成部署 36
  37. 37. 為了確保 Hadoop 是否正常運作 請務必先連線至 http://$(Public IP) 並登入 Etu Manager 的管理介面 37 預設帳號:admin 預設密碼:etusolution
  38. 38. 確認狀態為「綠燈」,若有其他狀態, 請使用後方的按鈕進行 Restart 的動作 38
  39. 39. 其次,為確認 eva 帳號的 HDFS 家目錄存在 請登入 Hue 使用者介面 http://${Public_IP}:8888 39 預設帳號:eva 預設密碼:etusolution
  40. 40. 選擇右上角 Edit Profile 然後勾選 “Create home directory” 40
  41. 41. Etu Manager 3.1 Sandbox 已安裝好 CDH 5.3.1、RHDFS/RMR2 套件及 RStudio Server 請連線至 http://$(Public IP):8787 41 預設帳號:eva 預設密碼:etusolution
  42. 42. 登入 RStudio Server 後 可以先嘗試執行 Sqoop 匯入 MySQL 的範例 42 備註:若於部署完成前執行, 可能會出現錯誤訊息。
  43. 43. 使用 validate-rhadoop.R 進行 RHDFS 與 RMR2 相依套件的功能測試 43 備註:若有使用上的問題,歡迎來信 support@etusolution.com 洽詢。 備註:Examples 目錄下有範例程式
  44. 44. 若想要找過去舊版或未來新的版本,請至 AMI 分頁 搜尋關鍵字 “Etu Manager” 44 備註:目前 Etu Manager 相關的 AMI 多數 存 在 新 加 坡 Region , 只 有 一 個 在 日 本 Region。搜尋時,請先切換至新加坡。
  45. 45. WHY Agenda 45  為何需要把 R 跑在多台電腦上?  平行運算的起源、運算類型與限制  Hadoop 與 RHadoop 簡介  如何開始試用 RHadoop ?  更多參考資料 WHEN WHAT HOW REF
  46. 46. David Chiu 的 RHadoop 演講錄影 https://youtu.be/vmIHge8JSXg 46
  47. 47. 看看 R 專家的細部解釋 47  Taking R to the Limit (High Performance Computing in R)  http://www.slideshare.net/bytemining/taking-r-to-the-limit-high- performance-computing-in-r-part-1-parallelization-la-r-users-group-727  http://www.slideshare.net/bytemining/r-hpc
  48. 48. CRAN Task View: High-Performance and Parallel Computing with R https://cran.r-project.org/web/views/HighPerformanceComputing.html 48
  49. 49. 值得觀察的 Distributed Data-structures (ddR) http://www.r-bloggers.com/introducing-distributed-data-structures-in-r/ 49
  50. 50. 318, Rueiguang Rd., Taipei 114, Taiwan T: +886 2 7720 1888 F: +886 2 8798 6069 www.etusolution.com Q & A

×