2010年11月19日 星期五

架設雲端主機--hadoop(單機測試)


相關檔案:
jdk-6u22-linux-i586-rpm.bin    //hadoop需要昇陽版本的jdk
hadoop-0.21.0.tar.gz     

環境準備:
1.檢查java環境   //安裝時不要選取java...光碟中的是openjava
# java -version
or
# rpm -qa |grep java/jdk

//如果真的裝了兩三套以上的java..可用以下指令切換實際運作的是哪一套
# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_22/bin/java 1
//指令格式:   alternatives --install <連結> <名稱> <路徑> <優先順序>
# alternatives --config java     //這邊的java就是上面的名稱
有 2 程式提供 'java'。

  選擇        指令
-----------------------------------------------
   1           /usr/java/jdk1.6.0_22/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java

請輸入以保留目前的選擇[+],或輸入選擇號碼:1
//+表示目前設定的是哪一套java
//輸入數字選擇想要的版本

2.建立帳號hadoop並設定不須密碼登入
# useradd hadoop
# su - hadoop
$ ssh-keygen
$ cd .ssh
$ cat id_rsa.pub > authorized_keys    //將公鑰內容放到authorized_keys中
//這個範例因為是第一次做可用">",安全應為">>"
$ chmod 600 authorized_keys    //要修改權限才可以用

3.將hadoop下載到hadoop家目錄並解壓縮
# su - hadoop     //用user: hadoop來執行即可
$ wget wget‭ ‬http‭://‬ftp.tcc.edu.tw/pub/Apache‭//‬hadoop/core/hadoop-0.21.0‭/‬hadoop-0.21.0‭.‬tar.gz
$ tar zxvf hadoop-0.21.0‭.‬tar.gz

4.hadoop環境設定:
$ cd hadoop-0.21.0
$ vim conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_22/
//將這行的註解取消,並根據自己的java版本給予正確目錄

$ tree -L 1    //檢視hadoop-0.21.0目錄內容
.
|-- LICENSE.txt
|-- NOTICE.txt
|-- README.txt
|-- bin           //放置執行檔的目錄,會根據conf的設定
|-- c++
|-- common
|-- conf            //放置設定檔的目錄
|-- hadoop-common-0.21.0.jar
|-- hadoop-common-test-0.21.0.jar
|-- hadoop-hdfs-0.21.0-sources.jar
|-- hadoop-hdfs-0.21.0.jar
|-- hadoop-hdfs-ant-0.21.0.jar
|-- hadoop-hdfs-test-0.21.0-sources.jar
|-- hadoop-hdfs-test-0.21.0.jar
|-- hadoop-mapred-0.21.0-sources.jar
|-- hadoop-mapred-0.21.0.jar
|-- hadoop-mapred-examples-0.21.0.jar
|-- hadoop-mapred-test-0.21.0.jar
|-- hadoop-mapred-tools-0.21.0.jar         //以上為包裝好的java服務程式
|-- hdfs                //hadoop節點間共用的檔案系統目錄
|-- lib
|-- mapred
`-- webapps

$bin/hadoop     //如果可以看到下面訊息代表安裝正常
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar             run a jar file
  distcp copy file or directories recursively
  archive -archiveName NAME -p * create a hadoop archive
  classpath            prints the class path needed to get the
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
 or
  CLASSNAME            run the class named CLASSNAME

Most commands print help when invoked w/o parameters.

//實作計算pi值
$ bin/hadoop jar hadoop-mapred-examples-0.21.0.jar pi 100 100000     //計算pi的程式放在前面的.jar中
...............
Job Finished in 11.183 seconds
Estimated value of Pi is 3.14158440000000000000
//計算結果
5.格式化hdfs
$ export HADOOP_HOME=/home/hadoop/hadoop-0.21.0    //可寫入.bashrc讓登入時自動export
$ bin/hdfs namenode -format    
//在執行訊息中可以看到將檔案做在/tmp中
//10/11/19 15:05:54 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
$ ls /tmp/hadoop-hadoop      //有東西就好,請勿變動他

6.設定XML conf檔
$vim conf/core-site.xml

//由於部落格沒辦法使用<故改為圖片











$ vim conf/hdfs-site.xml












$ vim conf/mapred-site.xml











啟動hadoop:
$ bin/start-all.sh     //如果ssh金鑰登入有問題這邊會出現要打密碼

//可再拿pi那個範例來練習玩看看

檢視:
用browser:
1.http://lcaolhost:50070    //可看到namenode資訊
2.http://localhost:50030     //可看到job tracker資訊
3.http://localhost:50090     //可看到SecondNameNode資訊


可參考教學網站: 
1.http://www.inside.com.tw/11/04/cloud-diy1
2.建置到三朵雲

沒有留言:

張貼留言