Hadoop學習筆記(十一)---hadoop集羣安裝及配置

前面我們已經學習瞭如何在僞分佈式的模式下運行hadoop,下面我們介紹一下如何進行hadoop集羣的安裝機器配置:

1.這裏需要克隆3份虛擬機,一臺master, 兩臺slaves,虛擬機怎麼克隆就不說了,自己百度

2.對各個服務器進行網絡配置,這個可以看第一講

3.修改機器名字:

每臺計算機都執行以下下面的代碼:

[root@hadoop0 hadoop]# vim /etc/sysconfig/network

內容如下:

NETWORKING=yes
HOSTNAME=hadoop0

然後把HOSTNAME分別改爲:hadoop0, hadoop1, hadoop2,之後都重啓。

4.添加hosts配置:

三臺計算機分別執行代碼:

[root@hadoop0 hadoop]# vim /etc/hosts

添加下面的hosts信息:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.21.15.189 hadoop0
172.21.15.30 hadoop1
172.21.15.47 hadoop2

添加下面的三行,注意這裏添加的是你自己的機器的ip,而不是我上面的ip,三臺機器都添加

5.關閉防火牆(如果已經關了請忽略這一步):

[root@hadoop0 hadoop]# service iptables stop

6.修改hadoop裏面的配置文件的服務器名稱,core-site.xmlmapred-site.xml,全都改爲指向主服務器,也就是下面的樣子:

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

   <property>
     <name>hadoop.tmp.dir</name>
     <value>/usr/local/hadoop/tmp</value>
   </property>
</configuration>
<configuration>
   <property>
     <name>mapred.job.tracker</name>
     <value>hadoop0:9001</value>
   </property>
</configuration>

6.設置ssh相互免密碼登陸:

每臺服務器上都執行以下下面的操作:

[root@hadoop0 conf]# cd ~/.ssh

刪除裏面的文件:

[root@hadoop0 .ssh]# rm -rf *

重新生成祕鑰:

[root@hadoop0 .ssh]# ssh-keygen -t dsa

輸出到授權文件中:

[root@hadoop0 .ssh]# cat id_dsa.pub >> authorized.keys

每一臺服務器完成上面步驟後,接下來在hadoop0和hadoop1上進行如下的操作:

ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2

這樣hadoop2上面就有了三臺服務器的ssh密鑰了,我們只需要在hadoop2上面執行下面的命令把三臺服務的密鑰分別複製到hadoop0和hadoop1:

[root@hadoop2 .ssh]# scp /root/.ssh/authorized_keys hadoop0:/root/.ssh/
[root@hadoop2 .ssh]# scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/

這樣三臺機器就可以免密碼登陸了。

7.在hadoop0上修改hadooop的配置文件:

配置從節點:

[root@hadoop0 ~]# vim /usr/local/hadoop/conf/slaves

將原先的內容刪掉,添加下面兩個從節點:

hadoop1
hadoop2

之前因爲我們是在僞分佈模式下面的運行的hadoop,我們現在需要刪除三臺服務器hadoop目錄下面的logs和tmp文件夾,不然hadoop會啓動不起來:

[root@hadoop2 ~]# cd /usr/local/hadoop
[root@hadoop2 hadoop]# rm -rf logs tmp

8.下面就是在hadoop0上格式化namenode:

[root@hadoop0 hadoop]# hadoop namenode -format

9.下面就可以啓動hadoop集羣了:在hadoop0上執行如下的命令:

[root@hadoop0 bin]# start-all.sh
[root@hadoop0 bin]# jps
3004 SecondaryNameNode
3175 Jps
3079 JobTracker
[root@hadoop1 conf]# jps
1899 TaskTracker
1969 Jps
1834 DataNode

如果你想把secondNameNode遷移到其他的服務器上,你就需要在hadoop0上配置如下:

[root@hadoop0 conf]# vim /usr/local/hadoop/conf/masters

把裏面的內容刪掉,改成你所希望的secondnamenode服務器:

比如我改爲:

hadoop1

這裏我發現了一個問題,就是我的hadoop0的namenode不能啓動,解決方法如下:

[root@hadoop0 bin]# vim /usr/local/hadoop/conf/core-site.xml
<configuration>
   <property>
     <name>fs.default.name</name>
     <value>hdfs://hadoop0:9000</value>
   </property>

   <property>
     <name>hadoop.tmp.dir</name>
     <value>/home/hadoop/tmp</value>
   </property>
</configuration>

把tmp目錄的位置改到你的用戶名下面的tmp文件夾下,重新格式化namenode,啓動便可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章