You are on page 1of 8

CentOS-雲端運算實作-建置三朵雲 2009

CentOS-雲端運算實作-建置三朵雲

CentOS5.3:安裝 hadoop
1 安裝 jdk
1.1 安裝 sun 的 java
1.1.1 # wget http://xxx/jdk-6u17-linux-i586-rpm.bin
1.1.2 # sh jdk-6u17-linux-i586-rpm.bin (依序輸入 q,yes)
1.2 查查看裝了那些 java,發現有兩個版本
1.2.1 # rpm -qa | grep java
xmlrpc-javadoc-2.0.1-3jpp.1
sun-javadb-docs-10.4.2-1.1
sun-javadb-core-10.4.2-1.1
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115
sun-javadb-client-10.4.2-1.1
gcc-java-4.1.2-44.el5
java-1.4.2-gcj-compat-javadoc-1.4.2.0-40jpp.115
sun-javadb-demo-10.4.2-1.1
sun-javadb-common-10.4.2-1.1
bsh-javadoc-1.3.0-9jpp.1
sun-javadb-javadoc-10.4.2-1.1
1.3 查詢目前執行的 java
1.3.1 # alternatives --config java
有 1 程式提供 'java'。

選擇 指令
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
1.4 目前執行的 java 版本
1.4.1 # java –version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-44)

Edit by Vera 頁 1
CentOS-雲端運算實作-建置三朵雲 2009

Copyright (C) 2006 Free Software Foundation, Inc.


This is free software; see the source for copying conditions. There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
1.5 把新裝的 sun java 換成預設的執行 java
1.5.1 # alternatives --install /usr/bin/java java
/usr/java/jdk1.6.0_17/bin/java 2
1.5.2 # alternatives --config java
有 2 程式提供 'java'。

選擇 指令
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
2 /usr/java/jdk1.6.0_17/bin/java

請輸入以保留目前的選擇[+],或輸入選擇號碼:2
1.5.3 # java –version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
2 確認有安裝 rsync 套件
2.1 # rpm -qa | grep rsync
rsync-2.6.8-3.1
3 更改 hostname
#hostname h176
或#vi /etc/sysconfig/network 改 HOSTNAME=h176
要記得去/etc/hosts 內把相關的 master 和 slaves 都設定上去
4 安裝 hadoop (請先建立 hadooper.hadooper 的使用者及群組)
4.1 #wget http://xxx / hadoop-0.20.1.tar.gz
4.2 #tar xvfz hadoop-0.20.1.tar.gz
4.3 #mv hadoop-0.20.1 /opt/hadoop
4.4 #chown -R hadooper.hadooper /opt/hadoop
5 修改 hadoop 設定檔 (/opt/hadoop/conf)
5.1 $vi conf/hadoop-env.sh (修改環境設定檔)
最重要是以下第一行,一定要加.其他的隨意.
export JAVA_HOME=/usr/java/jdk1.6.0_17
export HADOOP_HOME=/opt/hadoop

Edit by Vera 頁 2
CentOS-雲端運算實作-建置三朵雲 2009

export HADOOP_CONF_DIR=/opt/hadoop/conf
export HADOOP_LOG_DIR=/tmp/hadoop/logs
export HADOOP_PID_DIR=/tmp/hadoop/pids
5.2 $vi conf/core-site.xml (加入<property>區間的內容)
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://h176:9000</value>
</property>
</configuration>
5.3 $vi conf/hdfs-site.xml (加入<property>區間的內容)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5.4 $vi conf/mapred-site.xml (加入<property>區間的內容)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>h176:9001</value>
</property>
</configuration>
5.5 $vi conf/salves (h176 自己也當 datanode,h226 為 slave)
h176
h226
5.6 $vi conf/masters (h176 當 master)
h176
6 以 hadooper 使用者建立 ssh,並讓兩台 pc 互相認證
$cd /home/hadooper
$ssh-keygen -t dsa
$cat id_dsa.pub >> authorized_keys
$ssh hadooper@h176 --->測試是否能無密碼登入本機
如果測試不成功,仍然要密碼,請設定 authorized_keys 檔案權限為 600(此檔除
了 owner 不可有寫入的權限)
$scp id_dsa.pub hadooper@h226:~/ --->將 key 送到 h226 的 hadooper 家目錄上

Edit by Vera 頁 3
CentOS-雲端運算實作-建置三朵雲 2009

面,請 h226 自行加入在 authorized_keys


7 複製 h176 的/opt/hadoop 全部資料到 h226
$scp -r /opt/hadoop hadooper@h226:/opt
8 建立 namenode (雲端的儲存空間)
8.1 $cd /opt/hadooper
8.2 $bin/hadoop namenode -format

9 啟動 master 上的服務
9.1 $bin/start-all.sh
可以看到相關服務起動以及其 log 檔
h176:namenode 起動
h176:secondarynamenode 起動 (namenode 無法運作時取代)
h176,h226:datanode 起動
h176,h226:tasktracker 起動

10 查看連線狀態
10.1 http://IP:50070 (NameNode:h176,有二個 datanodes )

Edit by Vera 頁 4
CentOS-雲端運算實作-建置三朵雲 2009

10.2 http://IP:50030 (job-tracker)

11 測試 1-上傳檔案
11.1 $bin/hadoop dfs -ls (查看雲上有什麼東西.$bin/hadoop dfs [Enter]可查
看 dfs 的相關指令)
11.2 $bin/hadoop dfs -put conf input (把 conf 目錄上傳到雲上,取名 input)
11.3 $bin/hadoop dfs -ls (再看一次,雲上有資料了)

Edit by Vera 頁 5
CentOS-雲端運算實作-建置三朵雲 2009

11.4 $bin/hadoop dfs –rmr input (可以刪除上傳的 input)

12 測試 2-運算 pie
12.1 $bin/hadoop jar hadoop-0.20.1-examples.jar pi 10 1000
執行 exampples 花了 33 秒多算出來了

13 在 master 運作中,再動態掛另一台 slave:h155 到 master


13.1 複製 master 的/opt/haddop 目錄以及.ssh/*到 slave,讓 h155 可以連線到
master,並與 master 有相同的設定
13.2 在 slave 端執行$bin/hadoop-daemon.sh --config ./conf start datanode
13.3 在 slave 端執行$bin/hadoop-daemon.sh --config ./conf start tasktracker
13.4 請注意:如果 master 日後重新啟動,要再把 h155 加入
/opt/hadoop/conf/slaves 檔案,h155 的 public key master 也要重新取得
14 再查看狀態
14.1 http://IP:50070 (NameNode:h176,有三個 datanodes )

Edit by Vera 頁 6
CentOS-雲端運算實作-建置三朵雲 2009

14.2 http://IP:50030 (job-tracker)

15 注意事項:
15.1 如果 slaves 無法加入,請檢查以下
15.1.1 etc/hosts 的設定要用實體 ip 對應 hostname (master 的 hosts 檔
要建所有 slaves 的資料)

Edit by Vera 頁 7
CentOS-雲端運算實作-建置三朵雲 2009

15.1.2 檢查 iptables 是否有限制


15.2 如果程式執行一半不正常中斷,最好把 master 和 slave 的 tmp 都清空,
再重測
15.2.1 rm -fr /tmp/hadoop*
15.2.2 rm -fr /tmp/hs*

參考資料
http://eblog.cisanet.org.tw/post/Cloud-Computing.aspx
http://www.hadoop.tw/

Edit by Vera 頁 8

You might also like