技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

hadoop多臺(tái)機(jī)器集群的配置

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2019-04-18 00:25┆點(diǎn)擊:

  以前也配置過(guò)hadoop集群,但是很久沒(méi)有重新去倒騰配置的細(xì)節(jié),導(dǎo)致這次走了不少?gòu)澛?。為了讓后?lái)的人少走彎路,也給我自己留個(gè)提醒,于是就有了這篇文章。

  首先配置這個(gè)集群主要包括三個(gè)部分。三個(gè)部分各自都有自己的milestone,可以在配置完之后運(yùn)行相關(guān)的測(cè)試來(lái)校驗(yàn)是否配置成功。

  1.準(zhǔn)備工作

  這之前最好是預(yù)先有了幾臺(tái)相同用戶名(要特別注意,對(duì)于用戶名不同的話ssh的時(shí)候還需要用戶名的信息。)的VM或者主機(jī)。我用的三臺(tái)VM用戶名都是hzm 機(jī)器的ip分別為192.168.28.130,192.168.28.132,192.168.28.133. 為了省去每次都輸入IP的煩惱,可以先把一臺(tái)機(jī)器的/etc/hosts文件添加以下幾行:

  192.168.28.130 master

  192.168.28.132 slave1

  192.168.28.133 slave2

  添加完之后,把這個(gè)文件scp到其余的兩臺(tái)機(jī)器的/etc/目錄下。這樣從ip到機(jī)器名的映射就可以了。這里簡(jiǎn)單說(shuō)下scp命令。scp命令是用來(lái)在多臺(tái)機(jī)器之間傳送文件的,主要是從本地傳文件到遠(yuǎn)程機(jī)器。用法如下:

  scp filename username@ip:~/ 注,ip之后的目錄接著的是遠(yuǎn)程的目錄(例:scp test.txt hzm@192.168.28.130:~ 是把text.txt 從本地傳輸?shù)竭h(yuǎn)程的主目錄) 如果要傳輸目錄到遠(yuǎn)程,則用scp -r foldername username@ip:~/ . 這樣準(zhǔn)備工作就做好了。

  2.配置java

  配置java的過(guò)程比較簡(jiǎn)單。而且每臺(tái)機(jī)器的配置都一樣,可以只配一臺(tái)機(jī)器,之后scp到其他的機(jī)器即可。先在網(wǎng)上下載對(duì)應(yīng)的java壓縮包,用tar -xzvf jre***.tar 解壓縮到一個(gè)目錄(我是解壓到home目錄)。解壓之后還需要配置下/etc/profile 文件,是為了系統(tǒng)能夠找到你所配置的java。

  在/etc/profile的文件開(kāi)始處添加以下三行

  export JAVA_HOME=http://www.3lian.com/home/hzm/jre1.7.0_17

  export PATH=$JAVA_HOME/bin:$PATH

  export CLASSPATH=$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar

  配置完之后把/etc/profile 和java的目錄 分別用scp傳輸?shù)狡渌闹鳈C(jī)上。完成之后三臺(tái)機(jī)器上都可以運(yùn)行java -version了就表示配置成功了。

  3. 配置ssh

  這個(gè)步驟算是比較麻煩的步驟,沒(méi)辦法在一臺(tái)機(jī)器上完成然后scp到其他的機(jī)器。

  先每臺(tái)機(jī)器都運(yùn)行ssh-keygen ,這樣就會(huì)在每臺(tái)機(jī)器的用戶主目錄生成.ssh 文件夾。ssh配置的目標(biāo)是不用密碼就可以ping 通其他的機(jī)器。達(dá)到這一個(gè)目的需要有一個(gè)包括所有機(jī)器的id_rsa.pub的名為authorized_keys的文件,并放置在.ssh 目錄中。

  具體的步驟如下:

  1.先在每臺(tái)機(jī)器上分別運(yùn)行ssh-keygen

  2.從第一個(gè)機(jī)器開(kāi)始,先 cat .ssh/id_rsa.pub>>authorized_keys 然后scp authorized_keys文件到第二臺(tái)機(jī)器

  3.然后在第二臺(tái)機(jī)器上接收到了authorized_keys文件后,再用cat .ssh/id_rsa.pub>>authorized_keys 把本機(jī)的id_rsa.pub內(nèi)容追加到authorized_keys文件中。

  4. 依次方法做下去,直到authorized_keys包含了所有機(jī)器中的id_rsa.pub的內(nèi)容。用scp 把這個(gè)文件復(fù)制到所有的機(jī)器。放在.ssh 目錄下。

  5. 這個(gè)時(shí)候就應(yīng)該配置完成了??梢栽诿颗_(tái)機(jī)器上試試,ssh ip 是不是可以無(wú)密碼登陸了。用exit可以退出登陸。如果每臺(tái)機(jī)器都可以不需要密碼ssh 到其他的機(jī)器就表示這一步完成了。

4.配置hadoop
這次我配置的hadoop的版本是hadoop-1.1.2 。配置一點(diǎn)幾的版本基本上都差不多。注意,配置hadoop在一臺(tái)機(jī)器上配置好整個(gè)hadoop目錄的內(nèi)容,之后只需要將hadoop整個(gè)文件夾scp到其他的機(jī)器就可以了。
主要配置六個(gè)配置文件
1. hadoop-env.sh
將java home的目錄配置好,這步不用多說(shuō)。
2. core-site.xml
< configuration>
< property>
< name>fs.default.name</name>
< value>hdfs://master:49000</value>
< /property>
< property>
< name>hadoop.tmp.dir</name>
< value>/home/hadooper/hadooptmp</value>
< /property>
< /configuration>
3.hdfs-site.xml
< configuration>
< property>
< name>dfs.replication</name>
< value>2</value>
< /property>
< /configuration>


4.mapred-site.xml
< configuration>
< property>
< name>mapred.job.tracker</name>
< value>localhost:49001</value>
< /property>
< /configuration>

5. masters 文件
我的文件內(nèi)容為

master

因?yàn)榇饲耙呀?jīng)配置好hosts文件,把ip和機(jī)器名對(duì)應(yīng)了起來(lái)。如果沒(méi)有配置hosts文件,此處用對(duì)應(yīng)的ip代替。

6. slaves 文件
我的文件內(nèi)容為

slave1
slave2

同上