430 likes | 862 Views
雲端分散式計算平台 Hadoop 安裝使用. Outline. Hadoop 簡介 Map-Reduce 架構 VM 安裝 Ubuntu Hadoop 安裝 & 設定 參考. Hadoop 簡介. Hadoop 是 Apache 底下 的開放原始碼計劃 (Open source project ) 以,以 java 寫成,可以提供大量資料的分散式運算 環境。
E N D
Outline • Hadoop簡介 • Map-Reduce架構 • VM安裝Ubuntu • Hadoop安裝&設定 • 參考
Hadoop簡介 Hadoop是Apache底下的開放原始碼計劃 (Open source project)以,以java寫成,可以提供大量資料的分散式運算環境。 Hadoop中包括許多子計劃,其中HadoopMapReduce如同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的結果,最後才能將整體的結果輸出
Ubuntu安裝 VM安裝ubuntu-10.04.4-server-i386.iso
Ubuntu安裝(續) 設定hostname
Ubuntu安裝(續) Choose Open SSH server to install
Ubuntu安裝(續) 輸入帳號密碼驗證安裝結果
Ubuntu安裝(續) 安裝完成
安裝jdk • 取得root權限 • 先取得軟體源,再安裝JDK • sudoapt-get install python-software-propertiessudo add-apt-repository ppa:ferramroberto/javasudo apt-get updatesudo apt-get install sun-java6-jdk
建立hadoop使用者 使用addgrouphadoop指令建立新的群組 使用adduser –ingrouphadoophadoop指令新增使用者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 • wgethttp://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:hadoophadoop-1.2.1 • 製作捷徑到使用者hadoop的home下 • ln –s hadoop-1.2.1/ /home/hadoop/hadoop • 刪除下載的檔案 • rm –rfhadoop-1.2.1.tar.gz
設定 /etc/hosts 使用 vi /etc/hosts指令修改etc資料夾下的hosts檔案 加入 192.168.56.101u02 設定這個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/hadoopnamenode –format 指令啟用namenode及查看設定 使用 bin/start-all.sh 開啟系統
Hadoop設定(續) 使用 jps指令查看目前開啟之相關processes 使用 bin/hadoopdfsadmin –report 指令查看目前dfs之報告
Hadoop設定(續) 使用 bin/hadoopdfsadmin –safemode leave 指令離開安全模式 使用 bin/hadoopdfs –mkdir input 新增input資料夾 使用 bin/hadoopdfs –lsr指令 編輯single.txt
Hadoop設定(續) 編輯single.txt 輸入一段文字以利使用example範例之wordcount程式 bin/hadoopdfs –put single.txt input
Hadoop設定(續) 使用bin/hadoop jar hadoop-1.2.1.example.jar wordcount input output指令執行wordcount
Hadoop設定(續) • 看結果 • bin/hadoopdfs –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 • wgethttp://140.116.82.153/~easer/WordCount.java • 編譯檔Makefile • wgethttp://140.116.82.153/~easer/makefile • Input 資料 • wgethttp://140.116.82.153/~easer/textfile • ~/hadoop/bin/hadoopdfs–mkdir input2 • ~/hadoop/bin/hadoopdfs –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