跳到主要內容

Hadoop with Netbeans 雲端開發環境

big-hadoop-logo

 

Hadoop 是現今當紅的雲端平台,

在國內目前雲端發展中,也常能見到Hadoop 的推廣應用。

相關Hadoop的介紹與設定,在國家高速網路與計算中心的網站上有非常大量的教學資源可以使用,當中包含了系統安裝設定的step by step,佛心來著吶!

 

然而在整合開發環境上,目前大多教學說明都使用Eclips做為開發工具,

因此這篇文章主要針對習慣使用Netbeans 進行環境開發的設計人員做介紹,

瞭解如何將Netbeans plug上Hadoop的開發套件。

 

第一件事,

由於Hadoop一般安裝於Linux平台,

為求單純,以下的內容皆是執行於Linux GUI中的 Netbeans 環境。

 

Hadoop 本身運作原理為透過Map-Reduce方式將工作丟到NameNode中執行,

並再匯集輸出,詳細介紹可以參考 國家高速網路與計算中心的『Map Reduce 介紹

 

因此netbeans必須要安裝連接Hadoop Server的中介程式,

因此,這裡我們採用 Karmasphere Studio  做為netbeans連接Hadoop的中介,

當中Community Edition為免費版本,與Professional 版的差異為安全連線與即時監控等等 (詳見)

Karmasphere Studio安裝方式可由Netbeans Plugins直接下載安裝!

 

 

以下為安裝介紹:

 

 

註冊Karmasphere Studio

 

由於Karmasphere Studio套件需要輸入一個啟動金鑰才能進行安裝,

因此必須先連結照Karmasphere Studio註冊網頁進行註冊 [Link]

註冊完成後Karmasphere會以E-Mail通知並提供一組 serial key ,

請保留此 Key到之後的步驟。

 

 

安裝Karmasphere Studio 

 

1. 執行Netbeans後,開啟 Tools/Pligins

 

image

 

2. 進入Plugins後請選擇右方setting分頁,並點選右下角 Add 按鈕

隨後於當中輸入更新路徑:

Name:  Karmasphere Studio for Hadoop
URL:  http://hadoopstudio.org/updates/updates.xml

 

image

 

3. 連結完成後請點選 Available Plugins 分頁,並依照Name排序後面可以看到Karmasphere Studio套件,請點選Karmasphere Studio for Hadoop 套件,並按Install 進行安裝。

 

image

 

4. 遵循安裝流程安裝後,會進入到 Register Activation Job 程序,輸入申請的E-Mail與Serial Key便完成安裝。

image

 

5. 安裝完以上套件後,Netbeans - Services 便會產生三個Hadoop 標籤

Hadoop Jobs, Hadoop Clusters, Hadoop Filesystems,如此便完成安裝了!

image

 

6. 使用 Hadoop 的方式與一般Java Application 無異,New 一個Project後設定class 即可。

要注意的地方式,在create project後,在其 Library 點選右鍵選 Add Library,並挑選你所安裝的版本即可,本例為 Hadoop MapReduce 0.20。隨後所有的Hadoop Library便會新增到專案中。

image   image

 

 

執行 Hadoop Mapreduce 程式

 

當完成設定並撰寫完專案檔後,可透過NetBeans執行專案,執行方式如下:

 

1. 建立JAR檔,Build Project

開發完成後請執行  Run / Build Main Project  ,隨後在專案目錄下的Dist目錄內便會產生一個JAR檔,例:

專案名稱:test

路徑:/home/hadooper/ex/test/

JAR檔:/home/hadooper/ex/test/dist/test.jar

 

2. 於 Services 中的 Hadoop Job點選右鍵執行 New Job

image

 

3. 進行 Job設定

Step 1 : 給予這個Job 名稱,並選擇 Hadoop Job from pre-existing JAR file

Step 2 : 使用Browse 找到專案的JAR檔,會自動填入Main Class名稱

Step 3 : 選擇Cluster ,並輸入參數,如要輸入的目錄路徑, 輸出的路徑

其餘可使用預設,點選Finish後便會產生一個New Job

image

 

 

4. 執行 Job

在新增的Job中點選右鍵執行 Run Job,

當中便會有預設的Cluster與Filesystem,只要針對參數進行設定後即可執行。

如設定;  input_file output_file

 

輸出視窗若顯示以下訊息即表示完成:

run:

BUILD SUCCESSFUL (total time: 0 seconds)

 

image

 

 

 

 

範例參考

 

以下提供一個WordCount範例做為參考 ( 範例出處 )

當中請先下載執行檔,與輸入文件檔

WordCount.java

Text File – 01

Text File - 02

 

建立步驟:

  1. 請依上述步驟建立Project (名稱 WordCount) ,隨後將WordCount.java匯入到該專案的src目錄中。
  2. 建立一個input 目錄如 : /home/hadooper/inputfile   (output目錄會自動產生)
  3. 並將兩個txt檔案置入。
  4. 隨後Build專案使其產生JAR檔
  5. 新增Job並設定參數為/home/hadooper/inputfile   /home/hadooper/outputfile
  6. Run Job

 

範例執行結果:

在設定的輸出目錄/home/hadooper/outputfile  中可看到一文字檔,內容為輸入目錄中所有檔案的Word Count

 

BP 201103.14

 

 

參考資料:

留言

  1. 很有幫助, 謝謝您

    回覆刪除
  2. 請問一下~
    我們這邊hadoop filesystems可以連的hdfs,可是run jab的時候他沒反應也沒output

    回覆刪除
  3. 你的job是run完後沒結果嗎?
    還是結果只有跑在一個node?

    若是只有跑在一個node,
    有可能是你程式在做map/reduce時沒有把它指派切出去

    回覆刪除
  4. 不知道Karmasphere Studio有沒有套件可以直接上傳檔案到hdfs,不用用終端機打指令

    回覆刪除

張貼留言

這個網誌中的熱門文章

醫學健康跨領域合作的開始:資料工程

一直都很喜歡在會議上與跨領域的專家、醫師、學者分享我們在數據工程與分析應用上的發展經驗。 許多的專家學者,對於大數據應用的認知都仍侷限在一個超大型結構化資料集的子集合應用,在規劃好的條件設定下,針對特定的目標(疾病、行為)進行篩選,將數據narrow down到可以被個人電腦或是單一伺服器架構處理的小型資料集。 這樣的半手工處理方式,對於專一(Specific)領域主題的資料追蹤計算或許已經十分足夠,但當中倘若資料清理方式有改變、篩選條件增減,所有的數據都要從raw重新處理,不僅造成大量的時間與人力浪費,對於專案計畫進度的延宕更是麻煩。這些還不包含

別再期末談臨終

『在那六年多的時間,我常常反省、後悔、卻也培養勇氣,問自己再遇到時要做什麼決定?.......回想我要簽同意書的時候,真的會抖-我有資格決定人家生死嗎?』 面對死亡,我們都很害怕,更何況是家人的臨終。 但究竟我們的選擇,是為了給家人最後的尊嚴? 還是填補自己的罪惡感? 學習勇敢面對、學習放下, 更要學著為自己的未來做好規劃,不成為子女的負擔。 希望大家一起鼓勵這個勇敢的朋友, 因為她的經驗分享,讓我們更加了解, 面對家人臨終,我們該如何做好準備。 『末期才談臨終太遲』 https://www.wacare.live/health-forum/q/1984983840830?topicId=25049764537230&fbclid=IwAR1ei-zrfSj9w5kbvBW5ecSbqWrI408fJ1qjXhisZwLxYdbON_jJbNKMAyY 更多的失智照護課程 https://www.wahere.wapro.live/udnxwacare Pan 2020.12.22 #臨終 #失智 #善終 #放棄急救 #預立醫療 #病人自主

Google 資料庫方案–Spreadsheet–(1)資料呈現

HEMiDEMi 的標籤: Google , Google SpreadSheet , 雲端 早在規劃『 教育,意義! 』project時, 便有打算將整個網站建立過程撰寫一篇教學,讓有興趣以google 服務為基礎進行開發的朋友參考。 沒想到這個想法擺著就拖了好幾個月, 好在學生提出了問題,就趁這機會寫一寫吧。 基本上『 教育,意義! 』網站的架構完全建立在Google提供的服務, 廣義來說也是個雲端的系統, 所有的資料是分散在不同的服務架構下,再用GAE, Javascrript將服務資訊串接起來, 由Blogspot 統一呈現。 省了租主機的費用,或架站的硬體、電費, 最好的地方在於不用管理主機維運的問題, 只要專心做我的創意、嘗鮮就好了!!   多棒! 若將『 教育,意義! 』網站依功能層次來分類,可以分為三層結構, 當中的層次與使用技術大致如下: UI 介面層 服務 : Blogspot (網站介面) , Picasa (相簿空間), Google Apps 技術 : Javascript , AJAX ( JQuery ) App應用層  服務 : Google App Engine (GAE) 技術 : Java, Java Server Page (JSP) 資料層 服務 : Google Docs (文件), Google Spreadsheet (試算表) 技術/函式庫 : Java, Google Data APIs 本篇文章將著重在介紹以Google Spreadsheet 做為雲端資料庫, 其他主題將會陸續推出。 若對Google API 與 Google App Engine 初步建置有興趣, 可以參考之前文章: 佛心來著的 Google Data API – for JAVA 雲端的開始:Netbeans 無痛 Google App Engine Java 服務開發 Google Spreadsheet 做為資料庫系統 對於小型的資料系統來說, 採用Google Spreadsheet做為應用程式資料庫(如問卷調查或線上系統) 也算堪用, 目前的儲存限制為 : 40 萬個儲存格 每張工作表最多 256 欄 而Goog