Hadoop集羣

Hadoop集羣

★ Hadoop集羣搭建過程

集羣環境:集羣環境是指局域網中的機器,多臺機器爲了完成同一件事情而協作工作的一種工作模式。每臺機器被稱爲一個節點。

 

把Hadoop進程安裝到多臺機器上,實現Hadoop的分佈式安裝。

 

分佈式以虛擬機vmware的複製來克隆多臺機器。

分佈式集羣中,對NameNode和SecondaryNameNode的要求比較高,對內存要求比較大。

 

★ 節點之間的免密碼登錄

1.重新生成ssh加密文件

hadoop0 hadoop1 hadoop2

ssh-keygen -t rsa

cat id_rsa.pub >> authorized_keys

 

在hadoop1,hadoop2上:

ssh-copy-id -i hadoop0

 

在hadoop0上把ssh中的authorized_keys 文件scp到hadoop1,hadoop2中

scp authorized_keys hadoop1:/root/.ssh

scp authorized_keys hadoop2:/root/.ssh

 

這樣hadoop0 hadoop1 hadoop2中兩兩之間就可以免密碼登錄了

 

關於authorized_keys文件:

其中存放的是公鑰文件,一臺機器上保存有哪些機器的ssh公鑰,這些機器就可以免密碼登錄到這臺機器。

 

ssh的原理:

略。

 

2.在啓用集羣時,要刪除原分佈式節點上的logs和tmp文件,刪除原來格式化HDFS時的元數據文件。然後再格式化hadoop namenode -format

 

3.關於conf/master    conf/slaves

master文件中保存的是SecondaryNameNode的節點

slaves文件中保存的是啓動的是TaskTracker和DataNode的節點

 

4.在conf/core-site.xml中指定的是Namenode節點的位置

在conf/mapred-site.xml中指定的是JobTracker節點的位置

 

★ Haoop集羣啓動時的安全模式

安全模式是什麼,集羣在安全模式下幹什麼了?

當集羣啓動的時候,會首先進入到安全模式。安全模式是hadoop集羣的一種保護方式。當系統處於安全模式時,會檢查數據塊的完整性。假設我們設置的副本數(即參數dfs.replication)是5,那麼在dataNode上就應該有5個副本存在,假設只存在3個副本,那麼比率就是3/5=0.6。在配置文件hdfs-default.xml中定義了一個最小的副本率0.999,如圖7-1

圖7-1

我們的副本率0.6明顯小於0.999,因此係統會自動的複製副本到其他dataNode,使得副本率不小於0.999。如果系統中有8個副本,超過我們設定的5個副本,那麼系統也會刪除多於的3個副本。

總體來說,安全模式是hadoop的一種保護機制,用於保證集羣中數據塊的安全性的。

安全模式對我們有什麼影響哪?

這時,不允許客戶端進行任何修改文件的操作,包括上傳文件、刪除文件、重命名、創建文件夾等操作。比如,創建文件時,在源代碼中就有對安全模式的判斷,如圖7-2

圖7-2

當我們在安全模式下進行修改文件操作時,會報出如下錯誤,如圖7-3

圖7-3

正常情況下,安全模式會運行一段時間自動退出的。只需要我們稍等一會就可以了。到底等多長時間哪,我們可以通過50070端口查看安全模式退出的剩餘時間,如圖7-4。

圖7-4

雖然不能進行修改文件的操作,但是可以瀏覽目錄結構、查看文件內容的。

我們可以控制是否進入或者退出安全模式嗎?

在命令行下是可以控制安全模式的進入、退出和查看的,

命令hadoop  dfsadmin  –safemode get 查看安全模式狀態

命令hadoop  dfsadmin  –safemode enter 進入安全模式狀態

命令hadoop  dfsadmin  –safemode leave 離開安全模式狀態

操作如圖7-5所示

圖7-5

安全模式,是hadoop集羣的一種保護機制,在啓動時,最好是等待集羣自動退出,然後再進行文件操作。

 

★ 動態增加一個節點

1:對要新增加的節點進行配置。包括jdkhosts ssh hadoop等

2:在主節點中conf/slave文件中增加該新節點的hostname

3:單獨啓動新節點的datanode和tasknode

4:在主節點執行腳本 hadoopdfsadmin -refreshNodes

5:通過web頁面,50070端口查看或者通過hadoopdfsadmin -report查看最新的節點是否加載到集羣。

6:均衡Block     ./bin/start-balancer.sh

 

★ 動態刪除一個節點(未驗證)

1.集羣配置

   修改conf/hdfs-site.xml文件

 <property> 

   <name>dfs.hosts.exclude</name> 

   <value>/data/soft/hadoop/conf/excludes</value> 

   <description>Namesa file that contains a list of hosts that are  

   notpermitted to connect to the namenode. The full pathname of the  

   file mustbe specified.  If the value is empty, nohosts are  

   excluded.</description>

 </property>

2.定要下架的機器

dfs.hosts.exclude定義的文件內容爲,每個需要下線的機器,一行一個。這個將阻止他們去連接Namenode。如:

 

hadoop7

 

3.強制重新加載配置

 

[root@hadoop5 ~]# hadoop dfsadmin  -refreshNodes 

它會在後臺進行Block塊的移動

 

4.關閉節點

等待剛剛的操作結束後,需要下架的機器就可以安全的關閉了。

 

[root@hadoop0 ~]# hadoop dfsadmin-report 

 

 

可以查看到現在集羣上連接的節點

 

 

正在執行Decommission,會顯示:

Decommission Status : Decommission in progress 

 

執行完畢後,會顯示:

Decommission Status : Decommissioned 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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