掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本節(jié)和大家學(xué)習(xí)一下Hadoop安裝與使用方法,內(nèi)容主要包括系統(tǒng)配置,設(shè)置ssh無密碼登錄和配置Hadoop等,希望通過本節(jié)的學(xué)習(xí)你一定會對Hadoop有更加深刻的認(rèn)識。
Hadoop安裝與使用

創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括做網(wǎng)站、成都網(wǎng)站制作、電商網(wǎng)站制作開發(fā)、微信小程序定制開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
主要參考:http://blog.chinaunix.net/u/4764/index.html
0. 介紹
對于Hadoop來說,在HDFS看來,節(jié)點(diǎn)分為Namenode和Datanode,其中Namenode只有一個,Datanode可以是很多;在 MapReduce看來,節(jié)點(diǎn)又分為Jobtracker和Tasktracker,其中Jobtracker只有一個,Tasktracker可以是很 多。當(dāng)前將namenode和jobtracker部署在wukong1上,wukong2,wukong3作為datanode和 tasktracker。當(dāng)然也可以將namenode,datanode,jobtracker,tasktracker全部部署在一臺機(jī)器上。
1. 系統(tǒng)配置
操作系統(tǒng):unbuntu-7.04
jdk: sun-java6-jdk
hadoop:hadoop-0.13.0 http://www.apache.org/dyn/closer.cgi/lucene/hadoop/
硬件:三臺機(jī)器,IP配置如下:
wukong1:192.168.100.1,210.45.114.2
wukong2:192.168.100.2
wukong3:192.168.100.3
系統(tǒng)使用:ssh 210.45.114.2 wukong:wukong123
2. 修改每臺機(jī)器的/etc/hosts,保證每臺機(jī)器間都可以通過機(jī)器名解析
加入下面幾行:
192.168.100.1 wukong1 wukong1
192.168.100.2 wukong2 wukong2
192.168.100.3 wukong3 wukong3
3. 設(shè)置ssh無密碼登錄
Hadoop安裝在安裝時需要設(shè)置ssh無密碼登錄,因為在Hadoop啟動以后,Namenode是通過SSH(Secure Shell)來啟動和停止各個節(jié)點(diǎn)上的各種守護(hù)進(jìn)程的,這就需要在節(jié)點(diǎn)之間執(zhí)行指令的時候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認(rèn)證的方式。在沒進(jìn)行下面的配置前,在wukong1上執(zhí)行ssh wukong2的操作時,需要輸入wukong@wukong2的密碼。
配置wukong1上ssh的過程如下。生成密鑰對:ssh-keygen -t rsa, 會在~/.ssh/目錄下生成id_rsa和id_rsa.pub, 其中id_rsa是私鑰,id_rsa.pub是公鑰,需要把公鑰拷到所有節(jié)點(diǎn)的~/.ssh/authorized_keys這個文件中(包括自己本 身,保證ssh登錄自己時也不需要密碼),如果該文件已經(jīng)存在則追加到這個文件中。要正確設(shè)置authorized_key的權(quán)限為644,不然還是不 行,chmod 644 authorized_key。當(dāng)wukong1向wukong2發(fā)起ssh連接的時候,wukong2上就會生成隨機(jī)數(shù)并用wukong1的公鑰對這個 隨機(jī)數(shù)進(jìn)行加密,并發(fā)送給wukong1;wukong1收到這個加密的數(shù)以后用私鑰進(jìn)行解密,并將解密后的數(shù)發(fā)送回wukong2,wukong2確認(rèn) 解密的數(shù)無誤后就允許wukong1進(jìn)行連接了。這就完成了一次公鑰認(rèn)證過程。這時,可以測試一下,ssh wukong2是不是已經(jīng)不再需要輸入密碼了。
對于每個節(jié)點(diǎn)都要進(jìn)行上面類似的操作,保證該節(jié)點(diǎn)到其它節(jié)點(diǎn)的ssh連接不需要輸入密碼。
4. 配置hadoop
由于Hadoop要求所有機(jī)器上hadoop的部署目錄結(jié)構(gòu)要相同,并且都有一個相同的用戶名的帳戶。
三臺機(jī)器上是這樣的:都有一個wukong的帳戶,主目錄是/home/wukong。
把hadoop-0.13.0.tar.gz放到所有節(jié)點(diǎn)的~/目錄下,wukong@wukong1:~$tar zxvf hadoop-0.13.0.tar.gz
會在~/目錄下生成一個hadoop-0.13.0目錄,為了方便以后版本升級,建立一個鏈接指向要使用的hadoop版本,不妨設(shè)為hadoopwukong@wukong1:~$ln -s hadoop0.12.0 hadoop
這樣一來,所有的配置文件都在/hadoop/conf/目錄中,所有執(zhí)行程序都在/hadoop/bin目錄中。
但是由于上述目錄中hadoop的配置文件和hadoop安裝目錄是放在一起的,這樣一旦日后升級hadoop版本的時候所有的配置文件都會被覆蓋,因 此將配置文件與安裝目錄分離,一種比較好的方法就是建立一個存放配置文件的目錄,/home/wukong/hadoop-config/,然后將 /hadoop/conf/目錄中的hadoop_site.xml,slaves,hadoop_env.sh,masters,這4個文件拷貝到 hadoop-config/目錄中,并指定環(huán)境變量$HADOOP_CONF_DIR指向該目錄。環(huán)境變量在/home/wukong/.bashrc 中設(shè)定。
在hadoop-conf/目錄下,打開slaves文件,該文件用來指定所有的從節(jié)點(diǎn),一行指定一個主機(jī)名,slaves內(nèi)容如下:
wukong@wukong1:~/hadoop-config$ cat slaves
wukong2
wukong3
在hadoop-conf/目錄下,打開masters文件指定主節(jié)點(diǎn),masters內(nèi)容如下:
wukong@wukong1:~/hadoop-config$ cat masters
wukong1
在conf/目錄中的hadoop-default.xml中包含了Hadoop的所有配置項,但是不允許直接修改!可以在hadoop-conf/目錄 下的hadoop-site.xml里面定義我們需要的項,其值會覆蓋hadoop-default.xml中的默認(rèn)值??梢愿鶕?jù)自己的實際需要來進(jìn)行定 制。
Hadoop環(huán)境變量
在/home/wukong/hadoop-conf目錄下的hadoop_env.sh中設(shè)置Hadoop需要的環(huán)境變量,其中JAVA_HOME是必 須設(shè)定的變量。HADOOP_HOME變量可以設(shè)定也可以不設(shè)定,如果不設(shè)定,HADOOP_HOME默認(rèn)的是bin目錄的父目錄,即本文中的 /home/wukong/hadoop。當(dāng)前設(shè)置:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export HADOOP_HOME=/home/$USER/hadoop
這樣以后升級的時候只要把hadoop的聯(lián)接指向新的版本就行了,不需要修改配置文件。請期待下節(jié)關(guān)于Hadoop安裝與使用介紹。
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流