2019年1月17日 星期四

2019/3/16 Cloudera 讀書會

日期:2019/3/16(六)
時間:9:30~12:30
地點:天瓏書局 台北市中正區重慶南路一段105號

2019/3/2 Cloudera 讀書會

日期:2019/3/2(六)
時間:9:30~12:30
地點:天瓏書局 台北市中正區重慶南路一段105號

2017年4月11日 星期二

2017 雲端超級航母甘迺迪號 (CVN79)

這一代航母使用 VMware 虛擬船身技術打造, 可輕易航向雲端 (Microsoft Azure, Google Cloud, AWS,...), 動力部分則採用 Hadoop 雙叢集引擎, 使之擁有巨大無限推動力, 至於武力部份使用 Spark 火控系統. 航母配備如下 :

1. Hadoop 2.8.0
2. apache-hive-2.1.1-bin
3. hbase-1.2.4
4. pig-0.16.0
5. spark-2.1.0-bin-without-hadoop
6. zookeeper-3.4.10

航母結構圖如下 :



下載網址 (2017/04/12)
https://docs.google.com/uc?id=0ByAESZ_C1fg-SDc4eXZhMWNKVTg&export=download

操作手冊


2016年5月5日 星期四

Hadoop 開發特戰包 (Windows 版) - 使用開發工具 Eclipse

本文將介紹如何使用特戰包中的開發工具 - Eclipse,從建立新專案開始,到撰寫一支 Java 程式,會一一逐步說明。使用開發工具 Eclipse 前,請先下載 eclipse.bat ,下載完成後直接放入特戰包即可。

1. 建立新專案

首先,點擊放在特戰包中的 eclipse.bat,點選後將會開啟 Eclipse (如果出現安全性警告視窗,請點選執行),如下圖所示。


進入 Eclipse 後,點選 File,選擇 New,再選擇 Other...,開始建立一個新的專案。


點選 Other...後會出現新視窗,請選擇 Java Project,我們要建立一個新的 Java 專案。


專案名稱取名為 MyHadoop ,在 JRE 的部分,選擇 Use a project specific JRE,再點選 Finish,完成建立一個新的 Java 專案。


如果出現以下詢問視窗,請點選 Yes。


2. 撰寫一支 Java 程式

新專案建立完成後,當然要開始撰寫 Java 了,首先,對專案點選右鍵,選擇 New,再選擇 Class,開始建立 Java 程式。


新的 Class 名稱取名為 MyHello,在 Modifiers 的部分選擇 public,然後在下方勾選 public static void main(String[] args),再點選 Finish 即可完成建立。


建立完成後,在左右大括號中間開始撰寫,請輸入 System.out.println("Hello"); ,撰寫完畢後,點選上方類似撥放鍵的圖案,點選 Run As ,再選擇 2 Java Application,開始執行這支 Java 程式。


執行後可以在下方看到輸出結果,如下圖,畫面中出現 Hello,代表這支程式執行成功。


3. 引入 Hadoop 函式庫

因應開發需求,我們需要導入 Hadoop 的函式庫,詳細步驟如下。首先,對專案點選右鍵,選擇 Build Path,再選擇 Add Libraries...,準備開始引入函式庫 。


點選 Add Libraries...後出現新視窗,請選擇 User Library,再點選 Next > 前往下一步。


出現選擇函式庫的畫面後,請點選右邊的 User Libraries...,出現新視窗後,再點選右邊的 New...,開始定義新的函式庫,名稱請輸入 HADOOP-COMMON,輸入完成後請按下 OK。


定義好新的函式庫名稱後,請點選右邊的 Add External JARs...,開始引入外部的 jar 檔,請至以下路徑 hadoop-2.7.1\share\hadoop\common,並將畫面中所有的 jar 檔圈選起來,再點擊開啟舊檔,即可完成。


請重複以上步驟新增其他的 Hadoop 函式庫,所有的函式庫名稱與對應 jar 檔之路徑如下(注意,該目錄下只要是 jar 檔都請圈選起來),都新增好後,請點選 OK。
  • HADOOP-COMMON-LIB       hadoop-2.7.1\share\hadoop\common\lib
  • HADOOP-COMMON               hadoop-2.7.1\share\hadoop\common
  • HADOOP-HDFS                       hadoop-2.7.1\share\hadoop\hdfs
  • HADOOP-MAPREDUCE         hadoop-2.7.1\share\hadoop\mapreduce
  • HADOOP-YARN                       hadoop-2.7.1\share\hadoop\yarn

外部函式庫新增好後,請勾選全部的函式庫,再點選 Finish,即可完成引入外部的 Hadoop 函式庫。


成功引入後,左邊畫面會顯示剛剛加入的函式庫,如下圖所示。


4.  撰寫使用 Hadoop Library 的 Java 程式

首先,建立新的 Class,名稱取名為URLdir,詳細建立步驟請參閱第二點。建立好後,請輸入以下程式碼:
  Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get(new URI("hdfs://nna:8020"),configuration);
FileStatus[] fileStatus = hdfs.listStatus(new Path("hdfs://nna/user/dsa00"));
Path[] paths = FileUtil.stat2Paths(fileStatus);
System.out.println("***** Contents of Directory *****");
for (Path path : paths)
{
System.out.println(path);
}

輸入完成後,如下圖所示,會有許多錯誤,請移至紅色叉號圖案,檢查這些錯誤的原因。


在沒打錯字的情況下,大部分的錯誤都是缺少必要的 import,點擊錯誤訊息後, Eclipse 會建議我們可用的 import,如下圖的錯誤,請點選來自 Hadoop Library 的 import 'Configuration' org.apache.hadoop.conf.Configuration,點選後 Eclipse 就會自動加入 import 的程式碼。


錯誤檢查並消除完畢後,會如下圖所示,注意,部分的 import 並非來自 Hadoop Library,例如 URI,請選擇 import java.net.URI


全部完成後,請執行此程式,該程式會顯示程式中輸入之路徑底下的所有東西,成功畫面如下,輸出即為 hdfs://nna/user/dsa00 底下的所有東西 (注意,如果特戰包未連接至虛擬機,或Hadoop 叢集未啟動,又或者虛擬機未開啟,程式將會輸出其他訊息,例如  Retrying connect to server 等等)。


2016年5月3日 星期二

Hadoop 開發特戰包 (Windows 版) - 連接 UberOS 資戰機 B 型

使用特戰包,可以讓 Windows 系統作為 Hadoop Client ,並連接到其他機器,這邊我們以連接 UberOS 資戰機 B 型為範例,並且使用 HDFS ,詳細操作如下。

1. 虛擬機確認

請輸入 ifconfig ,確認 IP 位址,如下圖所示,範例的 IP 位址為 192.168.111.134 。除了 IP 以外,還請確認所有 Container 和 Hadoop 叢集是否都已啟動。


2. 特戰包網路設定

右鍵點擊特戰包中的 setnet.bat 檔案,選擇編輯,進入記事本開始設定,如下圖所示。


修改最後一行的 route 設定,把尾端的 IP 位址修改為虛擬機的 IP 位址,修改完畢後,請儲存離開。


設定完成後,請右鍵點擊,並選擇以系統管理身分執行,網路設定即大功告成。


3. 特戰包網路測試

請執行 Hadoop-client.bat,並使用 ping 指令,確認 Hadoop Client 網路是否與虛擬機互通,請輸入 ping 虛擬機的 IP 位置,網路如果互通,會如下圖所示。



確認與虛擬機網路互通後,請再確認是否與 Hadoop 叢集網路有通,這邊以 Ping NameNode 為範例,UberOS 資戰機 B 型的 NameNode 的 HostName 為 nna,請輸入 ping nna,網路如果互通,如下圖所示。


4. 連接 HDFS

首先,請先確認 HDFS 帳號目錄有哪些,請在虛擬機輸入 hdfs dfs -ls /user ,如下圖所示。以 bigred 為範例,如果沒有 bigred 目錄 ,請輸入 hdfs dfs -mkdir /user/bigred,創建該目錄。


請在特戰包中找到 hadoop-env.cmd ,路徑為 hadoop-2.7.1\etc\hadoop,右鍵點選該檔案,並選擇編輯。

開啟記事本後,請找到 set HADOOP_USER_NAME ,後面接的是連接 HDFS 使用的帳號,範例帳號為 bigred ,請修改為 bigred 並儲存離開,如下圖所示。


修改完畢後,請重新開啟 Hadoop-client.bat,並輸入 hdfs dfs -ls,連接 HDFS 成功後,會看到該帳號目錄底下的檔案,如下圖所示 ( 注意,Hello 為此範例所建的檔案 )。


5. 使用其他帳號連接 HDFS

首先,確認 HDFS 帳號目錄有哪些,請在虛擬機輸入 hdfs dfs -ls /user ,如下圖所示。以 dsa00 為範例。


選定好帳號後,請修改 hadoop-env.cmd 檔案,找到 set HADOOP_USER_NAME ,將後面的帳號修改為範例帳號 dsa00 ,修改後儲存離開,如下圖所示。


修改完畢後,請重新開啟 Hadoop-client.bat,並輸入 hdfs dfs -ls,連接 HDFS 成功後,會看到該帳號目錄底下的檔案,如下圖所示 ( 注意,Hello_dsa00 為此範例所建的檔案 )。


Hadoop 開發特戰包 (Windows 版) - 工具安裝與設定

使用特戰包前,必須先加入兩項工具,JDK Eclipse本文將說明如何安裝工具至特戰包中。

安裝 JDK

請至 Oracle 下載頁面,點選 JDK 並下載最新版 Java,如下圖所示,點選同意後,再選擇 Windows 64 位元的版本下載即可。



下載完成後,請點選程式並開始安裝,安裝步驟如下所示。

1. 安裝開始,請點選下一步。


2. 我們只需要 Development Tools ,請把 Source Code 與 Public JRE 取消安裝,選擇好後請點選下一步開始安裝。



3. 安裝已完成,請點選 Close。


4. 安裝完成後,請找到剛剛安裝好的最新版 JDK (範例的路徑為 C:\Program Files\Java),並把它複製到特戰包中,複製完成後,即可把安裝在電腦的 JDK 移除。


安裝 Eclipse

請至 Eclipse 下載頁面,找到 Eclipse IDE for Java EE Developers,如下圖所示,選擇 64 位元的版本,點選後,網頁將移至下載頁面,再點選左邊 Download 即可。




下載完成後,請解壓縮剛才下載的壓縮檔,並把解壓縮出來的資料夾移至特戰包中。以上步驟完成後,特戰包中一定會有下圖所示的資料夾與檔案,其中,紅色方框中的資料夾是我們方才加入的工具。


JDK 設定與測試

加入時,可以在特戰包中發現,已經有 JDK 7 的版本了,如果我們要使用 JDK 8,必須對特戰包做些許設定,才能讓我們使用它,設定步驟如下。

1. 設定 jdkconfig.bat

首先,使用滑鼠右鍵點選 jdkconfig.bat,再選擇編輯,如下圖所示。


點選編輯後,如有出現視窗,請點選執行,如下圖所示。


出現記事本後,如下圖,看到紅色方框中的 JAVA_HOME 與 JRE_HOME,後面接的是特戰包中的 JDK 資料夾的路徑,請將 jdk1.7.0_65 修改成 jdk1.8.0_92,修改完畢後,請儲存離開。


2. JDK 測試

設定完後,請點選特戰包中的 Hadoop-client.bat,啟動 Hadoop Client 交談視窗,如下圖所示。


啟動後,請輸入 java -version 驗證 JDK 的版本,如果設定成功,會如圖所示,版本編號是1.8.0_92。

接下來,輸入 notepad MyHello.java ,我們撰寫一支小程式,測試 JDK。


輸入後,出現建立新檔案確認視窗,請按是。


撰寫下圖程式碼,撰寫完畢後,請儲存離開。


撰寫完成且儲存完畢後,請輸入 javac MyHello.java ,編譯這支程式。


編譯完成後,輸入 dir * .class ,查看編譯後附檔名為 class 的檔案,確認是否編譯成功。


輸入 java MyHello ,看到 Hello World 的字串,代表程式正確。