Hadoop安裝手冊新手必備
本節和大家學習一下Hadoop安裝與使用方法,內容主要包括系統配置,設置ssh無密碼登錄和配置Hadoop等,希望通過本節的學習你一定會對Hadoop有更加深刻的認識。
Hadoop安裝與使用
主要參考:http://blog.chinaunix.net/u/4764/index.html
0. 介紹
對于Hadoop來說,在HDFS看來,節點分為Namenode和Datanode,其中Namenode只有一個,Datanode可以是很多;在 MapReduce看來,節點又分為Jobtracker和Tasktracker,其中Jobtracker只有一個,Tasktracker可以是很 多。當前將namenode和jobtracker部署在wukong1上,wukong2,wukong3作為datanode和 tasktracker。當然也可以將namenode,datanode,jobtracker,tasktracker全部部署在一臺機器上。
1. 系統配置
操作系統:unbuntu-7.04
jdk: sun-java6-jdk
hadoop:hadoop-0.13.0 http://www.apache.org/dyn/closer.cgi/lucene/hadoop/
硬件:三臺機器,IP配置如下:
wukong1:192.168.100.1,210.45.114.2
wukong2:192.168.100.2
wukong3:192.168.100.3
系統使用:ssh 210.45.114.2 wukong:wukong123
2. 修改每臺機器的/etc/hosts,保證每臺機器間都可以通過機器名解析
加入下面幾行:
192.168.100.1 wukong1 wukong1
192.168.100.2 wukong2 wukong2
192.168.100.3 wukong3 wukong3
3. 設置ssh無密碼登錄
Hadoop安裝在安裝時需要設置ssh無密碼登錄,因為在Hadoop啟動以后,Namenode是通過SSH(Secure Shell)來啟動和停止各個節點上的各種守護進程的,這就需要在節點之間執行指令的時候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認證的方式。在沒進行下面的配置前,在wukong1上執行ssh wukong2的操作時,需要輸入wukong@wukong2的密碼。
配置wukong1上ssh的過程如下。生成密鑰對:ssh-keygen -t rsa, 會在~/.ssh/目錄下生成id_rsa和id_rsa.pub, 其中id_rsa是私鑰,id_rsa.pub是公鑰,需要把公鑰拷到所有節點的~/.ssh/authorized_keys這個文件中(包括自己本 身,保證ssh登錄自己時也不需要密碼),如果該文件已經存在則追加到這個文件中。要正確設置authorized_key的權限為644,不然還是不 行,chmod 644 authorized_key。當wukong1向wukong2發起ssh連接的時候,wukong2上就會生成隨機數并用wukong1的公鑰對這個 隨機數進行加密,并發送給wukong1;wukong1收到這個加密的數以后用私鑰進行解密,并將解密后的數發送回wukong2,wukong2確認 解密的數無誤后就允許wukong1進行連接了。這就完成了一次公鑰認證過程。這時,可以測試一下,ssh wukong2是不是已經不再需要輸入密碼了。
對于每個節點都要進行上面類似的操作,保證該節點到其它節點的ssh連接不需要輸入密碼。
4. 配置hadoop
由于Hadoop要求所有機器上hadoop的部署目錄結構要相同,并且都有一個相同的用戶名的帳戶。
三臺機器上是這樣的:都有一個wukong的帳戶,主目錄是/home/wukong。
把hadoop-0.13.0.tar.gz放到所有節點的~/目錄下,wukong@wukong1:~$tar zxvf hadoop-0.13.0.tar.gz
會在~/目錄下生成一個hadoop-0.13.0目錄,為了方便以后版本升級,建立一個鏈接指向要使用的hadoop版本,不妨設為hadoopwukong@wukong1:~$ln -s hadoop0.12.0 hadoop
這樣一來,所有的配置文件都在/hadoop/conf/目錄中,所有執行程序都在/hadoop/bin目錄中。
但是由于上述目錄中hadoop的配置文件和hadoop安裝目錄是放在一起的,這樣一旦日后升級hadoop版本的時候所有的配置文件都會被覆蓋,因 此將配置文件與安裝目錄分離,一種比較好的方法就是建立一個存放配置文件的目錄,/home/wukong/hadoop-config/,然后將 /hadoop/conf/目錄中的hadoop_site.xml,slaves,hadoop_env.sh,masters,這4個文件拷貝到 hadoop-config/目錄中,并指定環境變量$HADOOP_CONF_DIR指向該目錄。環境變量在/home/wukong/.bashrc 中設定。
在hadoop-conf/目錄下,打開slaves文件,該文件用來指定所有的從節點,一行指定一個主機名,slaves內容如下:
wukong@wukong1:~/hadoop-config$ cat slaves
wukong2
wukong3
在hadoop-conf/目錄下,打開masters文件指定主節點,masters內容如下:
wukong@wukong1:~/hadoop-config$ cat masters
wukong1
在conf/目錄中的hadoop-default.xml中包含了Hadoop的所有配置項,但是不允許直接修改!可以在hadoop-conf/目錄 下的hadoop-site.xml里面定義我們需要的項,其值會覆蓋hadoop-default.xml中的默認值。可以根據自己的實際需要來進行定 制。
Hadoop環境變量
在/home/wukong/hadoop-conf目錄下的hadoop_env.sh中設置Hadoop需要的環境變量,其中JAVA_HOME是必 須設定的變量。HADOOP_HOME變量可以設定也可以不設定,如果不設定,HADOOP_HOME默認的是bin目錄的父目錄,即本文中的 /home/wukong/hadoop。當前設置:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export HADOOP_HOME=/home/$USER/hadoop
這樣以后升級的時候只要把hadoop的聯接指向新的版本就行了,不需要修改配置文件。請期待下節關于Hadoop安裝與使用介紹。
【編輯推薦】