Hadoop實戰讀書筆記(4)

安裝Hadoop集羣node

1、須要專門制定一個服務器做爲主節點。服務器

2、這個節點會駐留NameNodeJobTracker的守護進程。less

3、它也將做爲一個基站,負責聯絡並激活全部從節點上的DataNodeTaskTracker守護進程。ssh

4、所以咱們須要爲主節點定製一種手段,使它可以遠程地訪問到集羣中的每一個節點。分佈式

 

如何使主節點遠程地訪問到集羣中的每一個節點呢?oop

使用無口令的 (passphraseless) SSH協議。加密

 

什麼是SSH協議?spa

SSH採用標準的公鑰加密來生成一對用戶驗證密鑰-一個公鑰、一個私鑰。公鑰被本地存儲在集羣的每一個節點上,私鑰則由主節點在試圖訪問遠端節點時發送過來。結合這兩段信息,目標機能夠對此次登陸嘗試進行驗證。調試

 

定義一個公共帳號日誌

方便從一個節點的用戶帳號到目標機上的另外一個用戶帳號。

對於Hadoop,全部節點上的帳號應該相同的用戶名。

 

如何檢查節點上是否安裝了SSH

which ssh

which sshd

which ssh-keygen

 

Hadoop的配置文件說明

Hadoop的設置主要包含在XML配置文件中,在0.20版本以前,它們是hadoop-default.xmlhadoop.site.xml。顧名思義,hadoop-default.xml中包含了Hadoop會使用的默認設置,除非這些設置在hadoop-site.xml中被顯式地覆蓋。所以,在實際操做中你只須要處理hadoop-sitex.xml。在版本0.20中,這個文件被分離成3XML文件:core-site.xmlhdfs-site,xnlmapred-site.xml。此次重構更好地對應了它們所控制的Hadoop子系統。

 

Hadoop配置的三種模式
單機模式

僞分佈式模式

徹底分佈式模式

 

單機模式是指?

單機模式是Hadoop的默認模式,當首次解壓Hadoop的源碼包時,Hadoop沒法瞭解硬件安裝環境,便保守地選擇了最小配置。在這種默認模式下全部3XML文件 (或者0.20版本以前的hadoop-site.xml)均爲空。

當配置文件爲空時,Hadoop會徹底運行在本地。由於不須要與其餘節點交互,單機模式就不適用HDFS,也不加載任何Hadoop的守護進程。該模式主要用於開發調試MapReduce程序的應用邏輯,而不會與守護進程交互,避免引發額外的複雜性。

 

僞分佈式模式時指?

僞分佈模式在 "單節點集羣"上運行Hadoop,其中全部的守護進程都運行在同一臺機器上。該模式在單機模式之上增長了代碼調試功能,容許你檢查內存使用狀況、HDFS輸入輸出,以及其餘的守護進程交互。

簡單配置:

core-site.xml:
<configuration>

       <property>

              <name>fs.default.name</name>

              <value>hdfs://localhost:9000</value>

       </property>

</configuration>

mapred-site.xml
<configuration>

       <property>

              <name>mapred.job.tracker</name>

              <value>localhost:9001</value>

       </property>

</configuration>

hdfs-site.xml
<configuration>

       <property>

              <name>dfs.replication</name>

              <value>1</value>

       </property>

</configuration>

咱們在core-site.xmlmapred-site.xml中分別制定了NameNodeJobTracker的主機名與端口。在hdfs-site.xml中指定了HDFS的默認副本數,由於僅運行在一個節點上,這裏副本數爲1.咱們還須要在文件masters中指定SNN的位置,並在文件salves中指定從節點的位置

vi masters

localhost

vi slaves

localhost

雖然全部的守護進程都運行在同一節點上,它們仍然像分佈在集羣中同樣,彼此經過相同的SSH協議進行通訊。

 

使用什麼裝載守護進程呢?

bin/start-all.sh

 

使用什麼查看守護進程是否啓動?

jps

 

如何關閉Hadoop的守護進程?

bin/stop-all.sh

 

徹底分佈式模式是指?

真正用於生產環境的Hadoop集羣。

集羣節點說明:

master-集羣的主節點,駐留NameNodeJobTracker守護進程

backup-駐留SNN守護進程的節點

hadoop1hadoop2hadoop3-集羣的從節點,駐留DataNodeTaskTracker守護進程。

配置文件:

core-site.xml:
<configuration>

       <property>

              <name>fs.default.name</name>

              <value>hdfs://master:9000</value>

       </property>

</configuration>

mapred-site.xml
<configuration>

       <property>

              <name>mapred.job.tracker</name>

              <value>master:9001</value>

       </property>

</configuration>

hdfs-site.xml
<configuration>

       <property>

              <name>dfs.replication</name>

              <value>3</value>

       </property>

</configuration>

不一樣於僞分佈式的兩點:

1、明確地聲明瞭NameNodeJobTracker守護進程所在的主機名

2、增大了HDFS的備份參數以發揮分佈式存儲的優點,數據經過在HDFS上覆制能夠提升可用性與可靠性

vi masters

backup

vi slaves

hadoop1

hadoop2

hadoop3

在將這些文件複製到集羣上的全部節點以後,必定要格式化HDFS以準備好存儲數據

bin/hadoop namenode -format

 

模式之間的切換如何作?

有一個技巧在開始使用Hadoop時是頗有用的,就是使用符號連接而不是不斷編輯XML文件來切換Hadoop的模式,爲了作到這一點,須要爲每種模式分別生成一個配置目錄,並相應地放入恰當版本的XML文件

而後,就可使用Linuxln命令 (例如 ln -s conf.cluster conf) 在不一樣配置之間切換。這個技巧還有助於臨時把一個節點從集羣中分離出來,從而經過僞分佈模式來調試一個MapReduce程序,但須要確保這些模式在HDFS上有不一樣的文件存儲位置,而且在改變配置以前還應該中止全部的守護進程。

 

基於Web的集羣用戶界面

NameNode經過端口50070提供常規報告,描繪集羣上HDFS的狀態視圖。

經過這個界面,能夠通覽文件系統,檢查集羣每一個DataNode的狀態,並詳細查看Hadoop守護進程的日誌來判斷集羣當前運行是否正確。

JobTracker經過端口50030提供視圖,包括MapReduce中任務的運行時狀態,以及整個做業的詳細報告。詳細報告指的是:這些日誌描述了哪一個節點執行了哪一個任務,以及須要完成每一個任務所需的時間或資源比,還能夠得到Hadoop對個做業的配置。

相關文章
相關標籤/搜索