雲端分散式計算平台 Hadoop安裝使用
Outline Hadoop簡介 Map-Reduce架構 VM安裝Ubuntu Hadoop安裝&設定 參考
Hadoop簡介 Hadoop是Apache底下的開放原始碼計劃 (Open source project)以,以java寫成,可以提供大量資料的分散式運算環境。 Hadoop中包括許多子計劃,其中Hadoop MapReduce如同Google MapReduce,提供分散式運算環境、Hadoop Distributed File System如同Google File System,提供大量儲存空間。Hadoop 的HBase是一個類似 BigTable 的分散式資料庫 ,還有其他部份可用來將這三個主要部份連結在一起,方便提供整合的雲端服務。
Map-Reduce架構 MapReduce是一個分散式程式框架,讓服務開發者可以很簡單的撰寫程式,利用大量的運算資源,加速處理龐大的資料量 一個MapReduce的運算工作可以分成兩個部份:Map和Reduce,大量的資料在運算開始的時候,會被系統轉換成一組組 (key, value) 的序對並自動切割成許多部份,分別傳給不同的Mapper來處理,Mapper處理完成後也要將運算結果整理成一組組 (key, value) 的序對,再傳給Reducer整合所有Mapper的結果,最後才能將整體的結果輸出
Example wordcount
Ubuntu安裝 VM安裝ubuntu-10.04.4-server-i386.iso
Ubuntu安裝(續) 設定hostname
Ubuntu安裝(續)
Ubuntu安裝(續) Choose Open SSH server to install
Ubuntu安裝(續)
Ubuntu安裝(續) 輸入帳號密碼驗證安裝結果
Ubuntu安裝(續) 安裝完成
安裝jdk 取得root權限 先取得軟體源,再安裝JDK sudo apt-get install python-software-properties sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-jdk
建立hadoop使用者 使用addgroup hadoop指令建立新的群組 使用adduser –ingroup hadoop hadoop指令新增使用者hadoop至hadoop群組中 使用vim /etc/passwd指令編輯passwd檔案
修改sudo權限 最後一行 “x”刪除掉 編輯sudoer 加入 存檔離開 visudo vim /etc/sudoer hadoop ALL=(ALL) ALL 使用者帳號 登入者的來源主機名稱=(可切換的身份) 可下達的指令 存檔離開 Ctrl+X :wq
ssh免密碼登入 使用 su – hadoop指令切換使用者為Hadoop 產生key ssh-keygen –t rsa –P “” 將 public key拷貝到遠端的電腦後, 加到該user的 .ssh/authorized_keys 中 cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys 離開切換回使用者root http://blog.longwin.com.tw/2005/12/ssh_keygen_no_passwd/
Hadoop安裝 下載 hadoop-1.2.1 移動至/usr/local 下解壓縮 wget http://140.116.82.153/~easer/hadoop-1.2.1.tar.gz 移動至/usr/local 下解壓縮 mv hadoop-1.2.1.tar.gz /usr/local cd /usr/local tar –xvf hadoop-1.2.1.tar.gz
Hadoop安裝(續) 改變檔案擁有者 製作捷徑到使用者hadoop的home下 刪除下載的檔案 chown –R hadoop:hadoop hadoop-1.2.1 製作捷徑到使用者hadoop的home下 ln –s hadoop-1.2.1/ /home/hadoop/hadoop 刪除下載的檔案 rm –rf hadoop-1.2.1.tar.gz
設定 /etc/hosts 使用 vi /etc/hosts指令修改etc資料夾下的hosts檔案 加入 192.168.56.101 u02 設定這個ip為自己
設定 interfaces 先查看網卡編號 ifconfig -a
使用 vim /etc/network/interfaces 指令修改interfaces檔案
Hadoop設定(續) 使用 /etc/init.d/networking restart 指令重開網路 使用ifconfig –a 查看目前網路設定是否改為設定的結果
Hadoop設定 使用 su – hadoop 指令改變使用者為Hadoop cd ~/hadoop or cd /usr/local/hadoop-1.2.1 使用vim conf/hadoop-env.sh指令修改檔案 加入 export JAVA_HOME=/usr/lib/jvm/java-6-sun 及 export HADOOP_OPTS=“-Djava.net.preferIPv4Stack=true”
Hadoop設定(續) 使用 mkdir ~/single 指令新增資料夾 使用 vim conf/core-site.xml 指令修改檔案 加入圖示中之兩個property
Hadoop設定(續) 使用 vim conf/mapred-site.xml 指令修改檔案 加入圖示中之property
Hadoop設定(續) 使用 vim conf/hdfs-site.xml 指令修改檔案 加入圖示中之property
Hadoop設定(續) 使用 vim conf/masters指令修改masters檔案 設定master僅有u02 使用 vim conf/slaves指令修改slaves檔案 設定slave僅有u02
Hadoop設定(續) 使用 bin/hadoop namenode –format 指令啟用namenode及查看設定 使用 bin/start-all.sh 開啟系統
Hadoop設定(續) 使用 jps 指令查看目前開啟之相關processes 使用 bin/hadoop dfsadmin –report 指令查看目前dfs之報告
Hadoop設定(續) 使用 bin/hadoop dfsadmin –safemode leave 指令離開安全模式 使用 bin/hadoop dfs –mkdir input 新增input資料夾 使用 bin/hadoop dfs –lsr指令 編輯single.txt
Hadoop設定(續) 編輯single.txt 輸入一段文字以利使用example範例之wordcount程式 bin/hadoop dfs –put single.txt input
Hadoop設定(續) 使用bin/hadoop jar hadoop-1.2.1.example.jar wordcount input output指令執行wordcount
Hadoop設定(續) 看結果 bin/hadoop dfs –cat output/part-r-00000
Web interface 修改windows中C:\Windows\System32\drivers\etc\hosts檔案 加入 192.168.56.101 u02 設定此IP為u02
Web interface (續) 打開瀏覽器網址輸入http://u02:50070/ 可察看目前之使用情形
Web interface(續) 打開瀏覽器網址輸入http://192.168.56.101:50030/ 可察看job使用情形
練習 架設兩台node 執行更大的檔案 編譯wordcount程式
新增node設定 在第一個node 在第二個node 編輯/etc/hosts 增加node 2 的IP與hostname 重新啟動網卡 編輯~/hadoop/conf/slaves 增加node 2的hostname 在第二個node 修改網卡設定 指派node 2 的IP
重新格式化與執行Hadoop 因Node 1 為 master,故在Node 1操作 刪除 node 1 & 2 的Hadoop tmp資料夾 rm –r ~/single/hadoop-hadoop 格式化namenode 啟動hadoop
編譯程式 下載 原始碼 WordCount.java 編譯檔Makefile Input 資料 wget http://140.116.82.153/~easer/WordCount.java 編譯檔Makefile wget http://140.116.82.153/~easer/makefile Input 資料 wget http://140.116.82.153/~easer/textfile ~/hadoop/bin/hadoop dfs –mkdir input2 ~/hadoop/bin/hadoop dfs –put textfile input2/ make clean make
參考 http://www.youtube.com/watch?v=Vf1HD4TjMDM&list=UUblZ4zYwgBx2j_B4ciTJMfg&index=40&feature=plcp http://en.wikipedia.org/wiki/Apache_Hadoop http://hadoop.apache.org/ http://www.slideshare.net/waue/hadoop-map-reduce-3019713