[實驗目標&說明]
JAVA: Java jdk 1.7.0.5 64 bit
OS: CentOS 6.3 64bit #因為太多人用Ubuntu建Hadoop不悅故改用CentOS版本擔任OS
Hadoop 套件: 1.0.3 version stable
本Lab實作目標為:
雲端分散式雲端平台建置維運與程式運行正常為目標
PS:先一單一節點測試,日後擴展多個節點分散式,與多個子專案整合之心得再放上本部落格做分享
Hadoop 官網: http://hadoop.apache.org/
尚提到Hadoop平台可以整個一個專案tools,也是接下來Near延伸學習的目標
Avro™: A data serialization system.
Chukwa™: A data collection system for managing large distributed systems.
HBase™: A scalable, distributed database that supports structured data storage for large tables.
Hive™: A data warehouse infrastructure that provides data summarization and ad hoc querying.
Mahout™: A Scalable machine learning and data mining library.
Pig™: A high-level data-flow language and execution framework for parallel computation.
ZooKeeper™: A high-performance coordination service for distributed applications.
(1.) Hadoop 環境運行之配置
1-1: 官網下載java jdk 與hadoop 相關套件_再此不多言
本例: java jdk使用1.7.0.5 hadoop使用1.0.3
安裝Jdk: rpm -Uvh jdk-7u3-linux-x64.rpm #升級RPM方式安裝JDK
修改/etc/profile 檔案加入JAVA環境變數配置
vi /etc/profile #修改完成,生效設定: source /etc/profile
JAVA_HOME=/usr/java/jdk7.05
# java -version #可得到jave版本為1.7.0_05 為配置正確
1-2: 配置User/Group Hadoop 身分專門執行Hadoop平台
useradd hadoop
1-3: 配置/etc/hosts檔案,與check hostname 主機對應外部IP為正確(多台主機可互PING)
本例: 192.168.0.201 ma201 #NameNode & DataNode 本例為單一台主機測試
192.168.0.202 ma202 #PS:若要施作多台主機分散運算請加入該主機/IP紀錄
su hadoop
ssh ma201 #登入無訪問密碼即可(本圖中MA_201請替換為ma201實驗後面已修改過)
(2.) Hadoop 程式安裝與配置檔組態
2-1:解壓縮hadoop.103.tar.gz 檔並更名目錄hadoop103 #個人喜好變更hadoop名稱
su hadoop #切換hadoop身分與/home/hadoop目錄
tar zxvf hadoop.1.0.3.tar.gz
mv hadoop.1.0.3 hadoop103 #hadoop程式執行目錄位址:/home/hadoop/hadoop103
2-2 : 編輯hadoop主要設定檔:
hadoop-env.sh ,core-site.xml , hdfs-site.xml mapred-site.xml
cd ~/hadoop103/conf
vi hadoop-env.sh #hadoop運行環境變數配置,參考如下
export JAVA_HOME=/usr/java/jdk7.05 #指定java執行位址,本例:/usr/java/jdk7.05
vi core-site.xml #hadoop設定檔案,以網頁監控各節點NameNode主機設定檔
configuration>
vi hdfs-site.xml #HDFS 分散檔案資源配置:可指定 NameNode及DataNode位置
<property>
<configuration>
(3.) Hadoop NameNode 初始化與啟動
3-1
cd ~/hadoop103/bin #bin目錄底下為hadoop相關操作指令
./hadoop namenode -format #格式化NameNode,若遭遇錯誤建議修正錯誤後
將/home/hadoop/dfs 資料夾移除,重新格式化如下
3-2 格式化完成後我們要啟動Hadoop NameNode
./start-all.sh #start-all.sh將啟動所有服務,部分指令支援獨立啟動與停止
啟動完成我們可以開啟Broswer確定以下幾個Port號是否啟動運作正常,反之檢查設定
50030: #查看NameNode資訊
50070: #查看Job Tracker 資訊
3-1
WordCount: 測試每一種英文字出現在總次數統計
cd /home/hadoop/hadoop103 #切換在hadoop home目錄下
mkdir wordcount #目錄可自取名
echo "wrere rerere rererer rerere" > wordcount/file1 #新增隨意英文字到數個檔案做測試
echo "twrw uco smala ouem tpt p" > wordcount/file2
將wordcount 這目錄裡檔案預先指定為Map/Reduce 工作item
hadoop dfs -put ./wordcount input
hadoop jar hadoop-1.0.3.jar wordcount input ouput #執行Map/Reduce程式工作
3-2: Log 事件偵錯
hadoop 產生log 為於hadoop103/logs 資料夾底下,以利我司偵錯
3-3 : job checker 頁面可瀏覽map/reduce 工作情況
http://192.168.0.108:55030 #本例IP主機為192.168.0.108,Port號為: 55030
下圖中我們可以看到有一個task 名 wordcount 正在Runing , DataNode由於是單機測試
故只有一個Data Node運行(日後將分散主機測試成果附上),下一步我們點選
編號: job2012_07181010_0001 進一步查看工作內容3-2
3-2: 下圖中我們可以看到有兩個map 1個reduce 工作完成,
job setsup : success #job成功執行之字樣工作完成時間1min多(多數節點運算效率更佳)
3-3: 最後我們還可以使用Name Node 專屬監控界面監控一些資訊
http://192.168.0.108:55070 #本例IP主機為192.168.0.108,Port號為: 55070
Hadoop 很有彈性整個數個子專案為本人後續研究目標,當然有一些指令本篇未介紹日後將慢漫分享
留言列表