Sunday, 27 September 2015

Hadoop MapReduce 開發環境快速建立(Cloudera CDH)

Preface

這篇文章適合開始學如何使用 Java 進行開發 Hadoop 的 MapReduce 程式的人。主要內容在於介紹如何建立Hadoop,以及開發環境IDE(Integrated Development Environment),如何建立第一個專案。

系統環境:Windows
軟體需求:虛擬軟體(Ex: VMware, Virtual Box) 、CDH QuickStart VM
硬體需求:建議雙核心以上的CPU、記憶體8G以上

Tutorial

下載對應虛擬軟體的 CDH QuickStart VM ,再用對應的虛擬軟體啟動虛擬機器即可。

啟動虛擬機器後,Hadoop 的相關服務都已經啟動了。接下來的操作可以參考這個Youtube影片或者是以下的圖文敘述。

啟動桌面大家都耳熟能詳的 eclipse。

會看到已經有一個名為"Trainer"的專案,點選右鍵複製、貼上。


 接著為這個新的專案命一個新的名字 。

接著在這個路徑"<project name>/src/(default package)"下可以看到四個檔案StubMapper, StubReducer, StubDriver, Stubtest,這四個檔案可以透過點擊右鍵來重新命名。

目前Hadoop新的MapReduce API運作架構如下圖所示:

Driver裡面必須包含java程式的進入點main,接著由main去控制要直行哪一個Mapper、Reducer。

接著幫專案加入hadoop的api套件,這樣Developer所開發的MR program才可以順利的在 Eclipse Console執行。

先刪除原先已經加入的套件
對著專案點右鍵 > 選擇Properties > Java Build Path,接著就可以看到目前已經加入的套件了,全選然後刪除。

加入Hadoop的套件
點選Add External JARs,接著把下列兩個路徑裡的Jar加進來
~/usr/lib/hadoop/client-0.20
加入全部的Jar

~/usr/lib/hadoop/

hadoop-annotations.jar
hadoop-auth.jar
hadoop-common.jar
完成之後就可以,回到專案的/src路徑底下進行撰寫Mapper、Reducer、Driver的程式了。接著將測試分析的資料放到專案路徑底下,加入執行的參數(Arguments),就可以執行專案了。

Related Posts:

  • Git 合併分支 Merge feature branch to develop branch or master branch Preface 根據 Git Flow 開發流程,這裡記錄的是最後一步,功能開發完成後要將 feature branch 合併回 develop branch 或 master branch。這裡將合併的指令操作流程記錄下來。 Tutorial 首先,確認要合併 feature branch… Read More
  • Git 移動目前修改的東西到另一個分支上 Preface 有時開發的時候,會發生在錯的分支上進行修改,這時可以利用 stash 來進行搬動剛剛所做的修改。下面就做一個假設我在 master branch 上進行了開發,想要把剛剛所做的改動移動到 develop branch 上。 Tutorial //先確認目前所做的改動 $ … Read More
  • SSH 設定 config 使用不同的 Key 對應不同的 Server Preface 在工作的時候常常會遇到公司的 codebase 要設定 SSH 之後才能把自己的程式碼 commit 上去,可是這時候又會遇到自己的常常在使用的 codebase 可能是 Github, Gitlab......等等其他的服務。如果需要常常將 SSH key 作切換的話蠻麻煩的。… Read More
  • Git 設定個人資訊 Preface 當使用 Git 進行版本控制時,完成 local commit 後,需要將 commit push 到 remote repository 的時候需要將個人的 profile 一同 push 到 remote repository 前,需要先設定個人的 profile。 Tut… Read More
  • Git 使用 stash 功能來暫存目前修改的狀態 Preface 目前個人使用 Git 遇到會需要使用 stash 功能情境為,目前的 feature branch 開發到一半,但是有一個臨時的 hotfix 需要先進行修改。手邊目前的 feature branch 功能也還沒有完成到適合 commit 的狀態。想要在不進行 commit 的狀… Read More

0 comments:

Post a Comment