Hadoop0.21在CentOS4.X上集羣安裝配置

以三個系統作集羣爲例,準備三個Linux系統IP分別爲
192.168.0.100 master
192.168.0.101 hadoop1
192.168.0.102 hadoop1html

192.168.0.100作爲Name Node, 192.168.0.101和192.168.0.101作爲Data Nodejava

1.設置三個系統的hosts文件。
vi /ect/hots  #編輯三個系統的hosts文件,內容都同樣,以下
192.168.0.100 master
192.168.0.101 hadoop1
192.168.0.102 hadoop1node

2.建立hadoop用戶(三個系統都要建立,用戶名都是hadoop)
用root用戶登錄後
[root@mylinux ~]# useradd hadoop
[root@mylinux ~]# passwd hadoop
Changing password for user hadoop.
New UNIX password: #設置密碼
Retype new UNIX password: #重複剛設置的密碼
passwd: all authentication tokens updated successfully.linux

3.設置SSH
目的是設置主節點和從節點之間不用密碼就能夠直接ssh訪問
#首先確認防火牆關閉,設置防火牆開關在root用戶下用命令
setup
#用hadoop用戶進入分別進入三個系統(三個系統都要作)
[root@ ~]# su - hadoop #進入hadoop用戶目錄
[hadoop@ ~]$ ssh-keygen -t rsa #創建ssh目錄,一路敲回車到底 apache

#進入master系統
[hadoop@mylinux ~]$ cd .ssh
[hadoop@mylinux .ssh]$ cp  id_rsa.pub authorized_keys #複製公鑰id_rsa.pub另存爲authorized_keys
[hadoop@mylinux ~]$ scp  id_rsa.pub hadoop@hadoop1:/home/hadoop/.ssh/authorized_keys
#將從master系統複製的公鑰文件authorized_keys傳到hadoop1系統上去,第一次作會提示輸入密碼。
[hadoop@mylinux ~]$ scp -r id_rsa.pub hadoop@hadoop2:/home/hadoop/.ssh/authorized_keys
#將從master系統複製的公鑰文件authorized_keys傳到hadoop2系統上去。瀏覽器

#進入hadoop1系統
[root@hadoop1 ~]# su - hadoop
[hadoop@hadoop1 ~]$ cd .ssh
[hadoop@hadoop1 ~]$  scp  id_rsa.pub hadoop@master:/home/hadoop/.ssh/authorized_keys_1
#將hadoop1系統的公鑰id_rsa.pub傳到master系統上去,並更名爲authorized_keys_1。bash

#進入hadoop1系統
[root@hadoop2 ~]# su - hadoop
[hadoop@hadoop2 ~]$ cd .ssh
[hadoop@hadoop2 ~]$  scp  id_rsa.pub hadoop@master:/home/hadoop/.ssh/authorized_keys_2
#將hadoop1系統的公鑰id_rsa.pub傳到master系統上去,並更名爲authorized_keys_1。oracle

#再進入master系統
[root@mylinux ~]# su - hadoop
[hadoop@mylinux ~]$ cd .ssh
[hadoop@mylinux ~]$ cat authorized_keys_1 >> authorized_keys  #將authorized_keys_1公鑰內容追加到authorized_keys文件中
[hadoop@mylinux ~]$ cat authorized_keys_2 >> authorized_keys #將authorized_keys_2公鑰內容追加到authorized_keys文件中ssh

如今master用ssh鏈接hadoop1和hadoop2時不用輸入密碼了
能夠試一下
[hadoop@mylinux ~]$ ssh hadoop1
Last login: Sun Jun 19 08:15:09 2011 from master
[hadoop@hadoop1 ~]$ #成功ide

4.下載JDK
下載網址http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html
我用的是Linux x86。 能夠下載這種JDK來用:jdk-6u26-linux-i586.bin
下載完後將jdk-6u26-linux-i586.bin傳到三個系統/home/hadoop目錄下面,開始安裝JDK(三個系統都要裝)
su - hadoop
./jdk-6u26-linux-i586.bin
完成後搞定。

5.安裝hadoop0.21
軟件壓縮包下載地址:http://apache.etoak.com//hadoop/common/hadoop-0.21.0/hadoop-0.21.0.tar.gz
下載完成後,壓縮包hadoop-0.21.0.tar.gz傳到master系統的/home/hadoop目錄下
開始解壓:
[root@mylinux ~]# su - hadoop
[root@mylinux ~]# tar zxvf  hadoop-0.21.0.tar.gz #解壓後獲得一個hadoop-0.21.0目錄

安裝前要配置/home/hadoop/hadoop-0.21.0/conf目錄下的幾個文件:hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site,masters和slaves
#修改hadoop-env.sh
把#export JAVA_HOME=前面的#去掉,在=號後面加上java home目錄/home/hadoop/jdk1.6.0_26
以下
export JAVA_HOME=/home/hadoop/jdk1.6.0_26

#修改core-site.xml,修改後的內容以下
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
        </property>
</configuration>

#修改hdfs-site.xml,修改後的內容以下
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replicatioin</name>
                <value>1<value>
        </property>
</configuration>

#修改mapred-site.xml,修改後的內容以下
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>master:9001</value>
        </property>
</configuration>

#修改masters和slaves修改後的內容以下
[hadoop@hadoop1 conf]$ cat masters
master
[hadoop@hadoop1 conf]$ cat slaves
hadoop1
hadoop2

6.配置.bash_profile文件,修改後內容以下(三個系統都要配置)
[hadoop@hadoop1 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
export PATH
unset USERNAME

export JAVA_HOME=/home/hadoop/jdk1.6.0_26
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export HADOOP_HOME=/home/hadoop/hadoop-0.21.0
export PATH=$PATH:$HADOOP_HOME/bin


7.部署到hadoop1和hadoop2系統上
進入master系統,壓縮已經配置過的目錄hadoop-0.21.0
[hadoop@mylinux ~]$ su - hadoop
[hadoop@mylinux ~]$ tar -zcvf hadoop-0.21.0.tar.gz hadoop-0.21.0 #壓縮完成後會獲得一個hadoop-0.21.0.tar.gz壓縮包
如今要將這個壓縮包copy到hadoop1和hadoop2系統裏去
[hadoop@mylinux ~]$ scp hadoop-0.21.0.tar.gz hadoop1:/home/hadoop/    #將這個壓縮包copy到hadoop1
hadoop-0.21.0.tar.gz                             100%   71MB   1.5MB/s   00:47
[hadoop@mylinux ~]$ scp hadoop-0.21.0.tar.gz hadoop2:/home/hadoop/    #將這個壓縮包copy到hadoop2
hadoop-0.21.0.tar.gz                             100%   71MB   1.8MB/s   00:40

分別進入hadoop1和hadoop2解壓傳過來的壓縮包
#進入hadoop1
[hadoop@hadoop1 ~]$ su - hadoop
[hadoop@hadoop1 ~]$ tar zxvf hadoop-0.21.0.tar.gz

#進入hadoop2
[hadoop@hadoop1 ~]$ su - hadoop
[hadoop@hadoop1 ~]$ tar zxvf hadoop-0.21.0.tar.gz


8.啓動hadoop集羣
進入master系統
[hadoop@mylinux bin]$ hadoop namenode -format      #格式化namenode 必需的
#若是你先進行了hadoop單機配置,在配置集羣hadoop時,得將你原來機器上的數據刪掉。默認數據存儲在/usr/tmp/hadoop-{$user}下。不然啓動守護進程時沒法啓動datanode和tasktracker。
#若是提示沒有此命令,請檢查.bash_profile中的HADOOP_HOME和PATH設置是否正確,或進入/home/hadoop/hadoop-0.21.0/bin敲start-all.sh   
[hadoop@mylinux bin]$ start-all.sh   
#這樣就能夠啓動hadoop集羣了

9.驗證是否正常啓動
在瀏覽器輸入:
http://192.168.0.100:50070,頁面正常顯示,OK!

相關文章
相關標籤/搜索