安裝Hadoop集羣node
1、須要專門制定一個服務器做爲主節點。服務器
2、這個節點會駐留NameNode和JobTracker的守護進程。less
3、它也將做爲一個基站,負責聯絡並激活全部從節點上的DataNode和TaskTracker守護進程。ssh
4、所以咱們須要爲主節點定製一種手段,使它可以遠程地訪問到集羣中的每一個節點。分佈式
如何使主節點遠程地訪問到集羣中的每一個節點呢?oop
使用無口令的 (passphraseless) SSH協議。加密
什麼是SSH協議?spa
SSH採用標準的公鑰加密來生成一對用戶驗證密鑰-一個公鑰、一個私鑰。公鑰被本地存儲在集羣的每一個節點上,私鑰則由主節點在試圖訪問遠端節點時發送過來。結合這兩段信息,目標機能夠對此次登陸嘗試進行驗證。調試
定義一個公共帳號日誌
方便從一個節點的用戶帳號到目標機上的另外一個用戶帳號。
對於Hadoop,全部節點上的帳號應該相同的用戶名。
如何檢查節點上是否安裝了SSH?
which ssh
which sshd
which ssh-keygen
Hadoop的配置文件說明
Hadoop的設置主要包含在XML配置文件中,在0.20版本以前,它們是hadoop-default.xml和hadoop.site.xml。顧名思義,hadoop-default.xml中包含了Hadoop會使用的默認設置,除非這些設置在hadoop-site.xml中被顯式地覆蓋。所以,在實際操做中你只須要處理hadoop-sitex.xml。在版本0.20中,這個文件被分離成3個XML文件:core-site.xml、hdfs-site,xnl與mapred-site.xml。此次重構更好地對應了它們所控制的Hadoop子系統。
Hadoop配置的三種模式
單機模式
僞分佈式模式
徹底分佈式模式
單機模式是指?
單機模式是Hadoop的默認模式,當首次解壓Hadoop的源碼包時,Hadoop沒法瞭解硬件安裝環境,便保守地選擇了最小配置。在這種默認模式下全部3個XML文件 (或者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.xml和mapred-site.xml中分別制定了NameNode和JobTracker的主機名與端口。在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-集羣的主節點,駐留NameNode和JobTracker守護進程
backup-駐留SNN守護進程的節點
hadoop1、hadoop2、hadoop3-集羣的從節點,駐留DataNode和TaskTracker守護進程。
配置文件:
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、明確地聲明瞭NameNode和JobTracker守護進程所在的主機名
2、增大了HDFS的備份參數以發揮分佈式存儲的優點,數據經過在HDFS上覆制能夠提升可用性與可靠性
vi masters
backup
vi slaves
hadoop1
hadoop2
hadoop3
在將這些文件複製到集羣上的全部節點以後,必定要格式化HDFS以準備好存儲數據
bin/hadoop namenode -format
模式之間的切換如何作?
有一個技巧在開始使用Hadoop時是頗有用的,就是使用符號連接而不是不斷編輯XML文件來切換Hadoop的模式,爲了作到這一點,須要爲每種模式分別生成一個配置目錄,並相應地放入恰當版本的XML文件
而後,就可使用Linux的ln命令 (例如 ln -s conf.cluster conf) 在不一樣配置之間切換。這個技巧還有助於臨時把一個節點從集羣中分離出來,從而經過僞分佈模式來調試一個MapReduce程序,但須要確保這些模式在HDFS上有不一樣的文件存儲位置,而且在改變配置以前還應該中止全部的守護進程。
基於Web的集羣用戶界面
NameNode經過端口50070提供常規報告,描繪集羣上HDFS的狀態視圖。
經過這個界面,能夠通覽文件系統,檢查集羣每一個DataNode的狀態,並詳細查看Hadoop守護進程的日誌來判斷集羣當前運行是否正確。
JobTracker經過端口50030提供視圖,包括MapReduce中任務的運行時狀態,以及整個做業的詳細報告。詳細報告指的是:這些日誌描述了哪一個節點執行了哪一個任務,以及須要完成每一個任務所需的時間或資源比,還能夠得到Hadoop對個做業的配置。