Hadoop-0.21.0分布式集群配置_第1頁
Hadoop-0.21.0分布式集群配置_第2頁
Hadoop-0.21.0分布式集群配置_第3頁
Hadoop-0.21.0分布式集群配置_第4頁
Hadoop-0.21.0分布式集群配置_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Hadoop-分布式集群配置編制日期:2021-9-8文件信息文件標(biāo)題Hadoop-分布式集群配置起草工程組發(fā)布日期2010年08月26日說明參考,但根據(jù)版本的變化做了相應(yīng)的調(diào)整本文主要是以安裝和使用.0為例,指出在部署Hadoop的時候容易遇到的問題以及如何解決。1. 硬件環(huán)境共有3臺機(jī)器,均使用的linux系統(tǒng),Java使用的是jdk。IP配置如下:hadoop1:192.168.0.97(NameNode)hadoop2:192.168.0.226(DataNode)hadoop3:192.168.0.100 (DataNode)這里有一點需要強(qiáng)調(diào)的就是,務(wù)必要確保每臺機(jī)器的主機(jī)名和IP

2、地址之間能正確解析。一個很簡單的測試方法就是ping一下主機(jī)名,比方在hadoop1上ping hadoop2,如果能ping通就OK!假設(shè)不能正確解析,可以修改/etc/hosts文件,如果該臺機(jī)器作Namenode用,那么需要在hosts文件中加上集群中所有機(jī)器的IP地址及其對應(yīng)的主機(jī)名;如果該臺機(jī)器作Datanode用,那么只需要在hosts文件中加上本機(jī)IP地址和Namenode機(jī)器的IP地址。以本文為例,hadoop1(NameNode)中的/etc/hosts文件看起來應(yīng)該是這樣的:127.0.0.1       

3、;  hadoop1        localhost      hadoop1        hadoop1     hadoop2        hadoop2     had

4、oop3        hadoop3hadoop2(DataNode)中的/etc/hosts文件看起來就應(yīng)該是這樣的:127.0.0.1         hadoop2        localhost      hadoop1     

5、;   hadoop1     hadoop2        hadoop2hadoop3(DataNode)中的/etc/hosts文件看起來就應(yīng)該是這樣的:127.0.0.1         hadoop3        localhost  &

6、#160;   hadoop1        hadoop1     hadoop3        hadoop3對于Hadoop來說,在HDFS看來,節(jié)點分為Namenode和Datanode,其中Namenode只有一個,Datanode可以是很多;在MapReduce看來,節(jié)點又分為Jobtracker和Tasktracker,其中Jobtracker

7、只有一個,Tasktracker可以是很多。我是將namenode和jobtracker部署在hadoop1上,hadoop2, hadoop3作為datanode和tasktracker。當(dāng)然你也可以將namenode,datanode,jobtracker,tasktracker全部部署在一臺機(jī)器上。2. 目錄結(jié)構(gòu)由于Hadoop要求所有機(jī)器上hadoop的部署目錄結(jié)構(gòu)要相同,并且都有一個相同的用戶名的帳戶。我的三臺機(jī)器上是這樣的:都有一個hadoop的帳戶,主目錄是/home/hadoop。解壓:hadoop hadoop1:$tar -zxvf hadoop-0.21.0Hadoop部

8、署目錄結(jié)構(gòu)如下:/home/hadoop/hadoop0.21.0,所有的hadoop版本放在這個目錄中。將hadoop0.21.0壓縮包解壓至hadoop0.21.0中,為了方便以后升級,建議建立一個鏈接指向要使用的hadoop版本,不妨設(shè)為hadoop,hadoop hadoop1:$ln -s hadoop-0.21.0 hadoop這樣一來,所有的配置文件都在/home/hadoop/hadoop/conf/目錄中,所有執(zhí)行程序都在/home/hadoop/hadoop/bin目錄中。但是由于上述目錄中hadoop的配置文件和hadoop的安裝目錄是放在一起的,這樣一旦日后升級hado

9、op版本的時候所有的配置文件都會被覆蓋,因此建議將配置文件與安裝目錄別離,一種比擬好的方法就是建立一個存放配置文件的目錄,/home/hadoop/hadoop/hadoop-config,然后將/home/hadoop/hadoop/conf/目錄中的masters,slaves,hadoop-hadoop-config目錄中,并指定環(huán)境變量$HADOOP_CONF_DIR指向該目錄。環(huán)境變量在/home/hadoop/.bashrc和/etc/profile中設(shè)定。如:HADOOP_CONF_DIR=/home/hadoop/hadoop/hadoop-configexport HADOO

10、P_CONF_DIR綜上所述,為了方便以后升級版本,我們需要做到配置文件與安裝目錄別離,并通過設(shè)定一個指向我們要使用的版本的hadoop的鏈接,這樣可以減少我們對配置文件的維護(hù)。3. SSH設(shè)置在Hadoop啟動以后,Namenode是通過SSH(Secure Shell)來啟動和停止各個節(jié)點上的各種守護(hù)進(jìn)程的,這就需要在節(jié)點之間執(zhí)行指令的時候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認(rèn)證的方式。首先要保證每臺機(jī)器上都裝了SSH效勞器,且都正常啟動。實際中我們用的都是OpenSSH,這是SSH協(xié)議的一個免費開源實現(xiàn)。以本文中的3臺機(jī)器為例,現(xiàn)在hadoop1是主節(jié)點,它需要主動

11、發(fā)起SSH連接到hadoop2,對于SSH效勞來說,hadoop1就是SSH客戶端,而hadoop2, hadoop3那么是SSH效勞端,因此在hadoop2,hadoop3上需要確定sshd效勞已經(jīng)啟動。簡單的說,在hadoop1上需要生成一個密鑰對,即一個私鑰,一個公鑰。將公鑰拷貝到hadoop2上,這樣,比方當(dāng)hadoop1向hadoop2發(fā)起ssh連接的時候,hadoop2上就會生成一個隨機(jī)數(shù)并用hadoop1的公鑰對這個隨機(jī)數(shù)進(jìn)行加密,并發(fā)送給hadoop1,hadoop1收到這個加密的數(shù)以后用私鑰進(jìn)行解密,并將解密后的數(shù)發(fā)送回hadoop2,hadoop2確認(rèn)解密的數(shù)無誤后就允許h

12、adoop1進(jìn)行連接了。這就完成了一次公鑰認(rèn)證過程。對于本文中的3臺機(jī)器,首先在hadoop1上生成密鑰對:hapoophadoop1:$ssh-keygen -t dsa P f /.ssh/id_dsa這個命令將為hadoop1上的用戶hadoop生成其密鑰對。生成的密鑰對id_rsa,id_rsa.pub,在/home/hadoop/.ssh目錄下。hapoophadoop1:.ssh$cat /.ssh/id_dsa.pub >> /.ssh/authorized_keyshadoop/.ssh/authorized_keys文件中。對于hadoop2:hapoop had

13、oop2:$mkdir .ssh對于hadoop3:hapoop hadoop3:$mkdir .sshhapoop hapoop1:.ssh$scp authorized_keys hapoop2:/home/hapoop/.ssh/hapoop hapoop1:.ssh$scp authorized_keys hapoop3:/home/hapoop/.ssh/ 此處的scp就是通過ssh進(jìn)行遠(yuǎn)程copy,此處需要輸入遠(yuǎn)程主機(jī)的密碼,即hadoop2,hadoop3機(jī)器上hadoop帳戶的密碼,當(dāng)然,你也可以用其他方法將authorized_keys文件拷貝到其他機(jī)器上。hadoophad

14、oop2:.ssh$chmod 640 authorized_keyshadoophadoop3:.ssh$chmod 640 authorized_keys 這一步非常關(guān)鍵,必須保證authorized_keys只對其所有者有讀寫權(quán)限,其他人不允許有寫的權(quán)限,否那么SSH是不會工作的。hadoop hadoop2:.ssh $ls -ladrwx- 2 hadoop hadoop.drwx- 3 hadoop hadoop.-rw-r-r- 1 hadoop hadoop authorized_keys 注意每個機(jī)器上的.ssh目錄的ls -la都應(yīng)該和上面是一樣的接著,在3臺機(jī)器上都需要對

15、sshd效勞進(jìn)行配置,修改文件/etc/ssh/sshd_config。#去除密碼認(rèn)證PasswordAuthentication no (?如果這樣,putty就不能登陸Linux了,去掉)AuthorizedKeysFile .ssh/authorized_keys至此各個機(jī)器上的SSH配置已經(jīng)完成,可以測試一下了,比方hadoop1向hadoop2發(fā)起ssh連接。hadoophadoop1:$ssh hadoop2如果ssh配置好了,就會出現(xiàn)以下提示信息The authenticity of host hadoop2 can't be established.Key finger

16、print is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.Are you sure you want to continue connecting (yes/no)?OpenSSH告訴你它不知道這臺主機(jī),但是你不用擔(dān)憂這個問題,因為你是第一次登錄這臺主機(jī)。鍵入“yes。這將把這臺主機(jī)的“識別標(biāo)記加到“/.ssh/know_hosts文件中。第二次訪問這臺主機(jī)的時候就不會再顯示這條提示信息了。然后你會發(fā)現(xiàn)不需要輸入密碼就可以建立ssh連接了,恭喜你,配置成功了,不過,別忘了測試本機(jī)ssh hadoop1。(應(yīng)該是只設(shè)置hadoop

17、1對hadoop2發(fā)送ssh連接和hadoop1對hadoop3發(fā)送ssh連接,下面的需要配置嗎?)同樣,hadoop1對hadoop3發(fā)起ssh連接,再在hadoop3發(fā)起對hadoop1的連接。這里不在贅述。4. Hadoop環(huán)境變量在/home/hadoop/hadoop/hadoop-config目錄下的hadoop-env.sh中設(shè)置Hadoop需要的環(huán)境變量,其中JAVA_HOME是必須設(shè)定的變量。HADOOP_HOME變量可以設(shè)定也可以不設(shè)定,如果不設(shè)定,HADOOP_HOME默認(rèn)的是bin目錄的父目錄,即本文中的/home/hadoop/hadoop。我的是這樣設(shè)置的:expo

18、rt HADOOP_HOME=/home/hadoop/hadoopexport _205. Hadoop配置文件修改slaves文件如前所述,在hadoop1(NameNode)的hadoop-config/目錄下,翻開slaves文件,該文件用來指定所有的DataNode,一行指定一個主機(jī)名。即本文中的hadoop2、hadoop3,因此slaves文件看起來應(yīng)該是這樣的:hadoop2IPhadoop3IP修改masters文件翻開masters文件,該文件用來指定NameNode,內(nèi)容如下:hadoop1IP在hadoop的安裝目錄分別找到三個文件,然后copy到hadoop-conf

19、ig/目錄下,這三個文件包含Hadoop的所有配置項,然后把這個分別改名為core-site.xml,hdfs-site.xml,mapred-site.xml,我們根據(jù)需要修改如下:注意:下面的配置文件中不要有中文或中文的符號,否那么報錯c:<property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop/tmp</value></property><property> <name>fs.defaultFS</name>

20、 <value>hdfs:/master IP:9000</value></property>這里不需要修改此文件。<property> <name>mapreduce.jobtracker.address</name> <value>master IP:9001</value> <description>NameNode</description></property>6. 部署Hadoop前面講的這么多Hadoop的環(huán)境變量和配置文件都是在hadoop1這臺機(jī)器上的,現(xiàn)在需要將hadoop部署到其他的機(jī)器上,保證目錄結(jié)構(gòu)一致。hadoophadoop1:$scp -r /home/hadoop/hadoop hadoop2:/home/hadoop/hadoophadoop1:$scp -r /home/hadoop/hadoop hadoop3:/home/hadoop/ 至此,可以說,Hadoop已經(jīng)在各個機(jī)器上部署完畢了,下面就讓我們開始啟動Hadoop吧。7. 啟動Hadoop啟動

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論