Hadoop Installation(補充資料)

Download Report

Transcript Hadoop Installation(補充資料)

雲端分散式計算平台
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
Hadoop安裝
• 下載 hadoop-1.2.1
– 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安裝(續)
• 改變檔案擁有者
– 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
– 編輯/etc/hosts 增加node 2 的IP與hostname
– 重新啟動網卡
– 編輯~/hadoop/conf/slaves 增加node 2的hostname
• 在第二個node
– 編輯/etc/hosts 增加node 2 的IP與hostname
– 修改網卡設定 指派node 2 的IP
– 重新啟動網卡
– 編輯~/hadoop/conf/slaves 增加node 2的hostname
重新格式化與執行Hadoop
• 因Node 1 為 master,故在Node 1操作
– 刪除 node 1 & 2 的Hadoop tmp資料夾
• rm –r ~/single/hadoop-hadoop
– 格式化namenode
– 啟動hadoop
編譯程式
• 下載
– 原始碼 WordCount.java
• 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=Vf1HD4Tj
MDM&list=UUblZ4zYwgBx2j_B4ciTJMfg&i
ndex=40&feature=plcp
• http://en.wikipedia.org/wiki/Apache_Hadoop
• http://hadoop.apache.org/
• http://www.slideshare.net/waue/hadoop-mapreduce-3019713