大資料數列(3)——Hadoop叢集完全分布式壞境搭建

來源:互聯網
上載者:User

標籤:

前言

上一篇我們講解了Hadoop單節點的安裝,並且已經通過VMware安裝了一台CentOS 6.8的Linux系統,咱們本篇的目標就是要配置一個真正的完全分布式的Hadoop叢集,閑言少敘,進入本篇的正題。

技術準備

VMware虛擬機器、CentOS 6.8 64 bit

安裝流程

我們先來回顧上一篇我們完成的單節點的Hadoop環境配置,已經配置了一個CentOS 6.8 並且完成了java運行環境的搭建,Hosts檔案的配置、電腦名稱等諸多細節。

其實完成這一步之後我們就已經完成了Hadoop叢集的搭建的一半的工作了,因為我們知道通過虛擬機器搭建所搭建的好處就是直接拷貝機器。多台同步進行操作,減少分別配置的時間消耗浪費。這也是虛擬化技術所帶來的優勢。

 

下面,咱們進去分布式系統的詳細操作過程。

1、首先需要在VMWare中將之前建立的單一實例的電腦進行拷貝。

這雷根據之前第一篇文章的規劃,我們至少需要再複製出三台電腦,作為DataNode資料節點的資料存放區。之前的上一台機器作為Master主節點進行管理。

這裡先來梳理一下整個Hadoop叢集的物理架構圖,大家有一個直接的觀念和認識,上表中已經和明確了,總共需要5台伺服器來使用,四台用來搭建Hadoop叢集使用,另外一台(可選)作為MySQL等外圍管理Hadoop叢集來使用。

我們在開發的時候一般也是直接通過串連外圍的這台機器來管理Hadoop整個叢集。

根據上面的物理規劃圖應該對整個架構有一個清晰的認識了,好,咱們進行實操。

關於在VMWare中進行虛擬機器的拷貝是一個比較簡單的過程。如下:

然後,就是下一步就行了,這裡需要記住的是,一定要選擇複製一個完整的而不是快照。

然後,根據電腦名稱輸入機器名就可以了。複製之後的機器如下:

 

 

2、配置各個Slave節點的機器資訊。

關於各個Slave伺服器的配置基本分為如下基本部分:

  • 首先需要手動更改各個從節點的電腦名稱和Hosts檔案(必須!)
  • 然後配置各個從節點的記憶體值,在第一篇的文章中我已經分析過了,這裡可以將這裡的記憶體值設定的比Master節點少點,(土豪公司忽略!)
  • 最後配置的就是儲存了,這個自己根據之前的計算公式計算出來就可以了。

首先,進入各個機器中更改Hosts檔案和電腦名稱,在上一篇文章我已經介紹過了,大家可以上一篇翻閱,這裡直接寫出指令碼如下:

vim /etc/sysconfig/networkvim /etc/hosts

 

電腦名稱和Hosts設定檔按照之前規劃完成就行了,同樣網路的IP地址也是按照規劃設定成固定的地址。

在配置完這一切之後,重啟完各個機器之後,確保各個節點之間可以ping 通(重點!!!)。

 

然後剩下的記憶體配置,直接關閉掉虛擬機器,在VMWare中進行設定就可以了,很簡單。

這雷根據需要自行調整,然後如果可以的話,盡量將主節點Master的CUP處理器設定成多路多核,這樣設定的原因,我第一篇文章中就已經詳細分析過了。

 

至此,各個伺服器的基礎配置已經完成了。

經過上面一系列流程,大家是不是發現通過虛擬機器拷貝這種方式省去了好多額外的配置時間,比如:裝作業系統、下載Hadoop安裝包、搭建Java環境等。

 

3、配置SSH無密碼配置。

先來解釋下SSH的概念和用途;

SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用程式層和傳輸層基礎上的安全性通訊協定。SSH 是目前較可靠,專為遠程登入會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊泄露問題。SSH最初是UNIX系統上的一個程式,後來又迅速擴充到其他動作平台。SSH在正確使用時可彌補網路中的漏洞。SSH用戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可運行SSH。

上面就是SSH的官方含義了,摘自百度百科。

下面,我來總結下SSH在Hadoop叢集中的用途。

所謂的SSH簡單一句話就是:同一使用者無密碼登入到各台機器。 其實,就是所有的Hadoop叢集中作為分布式的一個計算架構,需要對各個節點的服務進行操作,而操作的過程中需要統一由一個相同的使用者進行操作,但是同一使用者登入不同的伺服器都要求輸入密碼或者密鑰進行身分識別驗證。為了避免這個驗證過程就使用了統一的一種安全性通訊協定:SSH。

其實,SSH的原理很簡單,就是提前將統一使用者的密碼進行加密形成密鑰進行分發,然後分發到各個伺服器中,各個伺服器對這個秘鑰加入到當前的系統使用者組中,這樣這個使用者登入的時候就不需要輸入密碼進行登入操作了。

希望,我上面的講解各位看官能看明白裡面的含義。

下面咱們來實際操作:

  • 首先進行sshd的設定檔的修改,去掉預設注釋,開啟SSH驗證功能(以root使用者進行操作)。  
 vim /etc/ssh/sshd_config

將上面的這三行資料的注釋“#”去掉進行,儲存。這裡記住了!所有的機器都要這麼依次進行設定。

簡要的解釋下上面三行資料的含義:1、第一個RSAAuthentication是指開啟SSH驗證,2、PubkeyAuthetication是指可以通過公開金鑰進行驗證,3、AuthorizedkeysFile則指的的是公開金鑰存放的位置。

記住,完成配置之後,重啟該服務,指令碼如下:

 /sbin/service sshd restart 

可以驗證下,比如這裡我這裡直接SSH登入本機系統:

ssh localhost

這裡可以看到,丫讓我輸入密碼,所以說這裡只是開啟了SSH驗證,但是沒有產生密鑰,進行設定。

   

  •  加工產生認證公私密金鑰,分發到各個伺服器(以Hadoop使用者操作)。

這個步驟就是上面我分析的過程,我們需要在Master節點上產生Hadoop使用者的公開金鑰,然後將這個公開金鑰分發給各個slave節點,然後這樣在Master機器上就可以用Hadoop無密碼登入到各個salve機器上面了。

步驟如下:

ssh-keygen -t  rsa -P ‘‘

這裡的-P後面‘P’是大寫的。

上面我用紅框勾出的路徑就是公開金鑰和私密金鑰產生的預設路徑。

然後,下一步就是將這個公開金鑰複製到各個slave節點中去、

通過以下Linux命令進行遠程檔案的複製,指令碼命令如下:

scp ~/.ssh/id_rsa.pub 遠端使用者名@遠程伺服器IP:~/

我們這裡面要複製的公開金鑰檔案存在預設的路徑“/home/hadoop/.ssh”,所以執行的命令就是

scp ~/.ssh/id_rsa.pub [email protected]192.168.1.51:~/

然後,我們需要登入192.168.1.51的salve01的機器將剛才產生的公開金鑰加入的本地的許可權驗證組裡面去。

 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

上面的命令是要在Slave01的機器上進行的,並且使用hadoop使用者今次那個操作。

最後,我們來回到Master機器上面進行,ssh驗證。

SSH驗證的命令很簡單,格式如下:

SSH  <遠程IP && 網域名稱>

所以,這裡咱們在master機器上登入slave01機器上實驗下,看是否還需要進行密碼輸入。

ssh slave01.hadoop

通過上面的命令視窗可以看到,我們已經成功的從Master機器上面無密碼的登入到Slave01機器上面了。那麼說明剛才的配置生效了。

 

  •  參照上面的步驟將各個Slave節點配置完成。

這裡需要配置的剩下的兩個Slave節點進行無密碼登入了,詳細的操作過程參照上面的流程就可以了,需要的注意的是:在Master產生密鑰只需要產生一次就可以了,不要再次產生!因為每次產生以為著所有的節點都需要重新設定。

配置完成之後的效果,就是要保證在master機器上面的hadoop使用者能夠無需密碼的登入到各個slave節點上進行操作就可以。

 經過上面的操作,已經確保我們的Master機器可以毫無障礙的操作各個子節點Slave了。

 

  •  參照上面的步驟將各個Slave節點SSH到Master機器。

我們知道,經過上面的一系列操作之後,我們的Master主節點可以順利的操控各個Slave節點了,但是,這裡需要注意的是,為了保證各個Slave機器和Master機器進行通訊。

需要保證各個Slave節點能夠無密碼登入Master機器,操作步驟如上面。

這麼操作的理由很簡單,各個Slave子節點幹完Master分配的任務之後,需要有許可權反饋至他們的老大Master!

好了,到此,我們已經完成了整個叢集的SSH配置了。

這裡再次強調,上面的步驟要一定完成驗證,要不以後的Hadoop操作會很出現各種詭異的問題,讓你措手不及,這都是經驗!!

 

4、配置Hadoop叢集配置。

好了,到此我們需要對各個機器上面的Hadoop進行配置了。我們知道這裡的所有的機器都是從一台機器上面的拷貝過來,因為我們在這個機器上面已經安裝了單一實例的Hadoop,參照上一篇文章。

那麼,下一步的步驟就是將這個單節點的配置成一個真正的分布式叢集,充分利用我們剛才搭建的幾台Server進行效能的最大發揮。

這裡的配置不是很多,只需要更改一下幾個檔案就可以了。

  • 首先進行slaves檔案的配置,指定該叢集的各個Slave節點的位置(以hadoop使用者進行操作)。  

這個只需要在Master的機器上面進行就可以了,當然,如果不介意可以保持所有的機器上面的Hadoop配置一樣就可以了。執行命令如下

vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves

然後,將各個Slave的IP或者機器名寫入就可以了,一台機器一行資料。這裡我寫的是IP.

這樣就可以了。

  • 然後,在更改hdfs-site.xml檔案中的dfs.replication屬性值。

關於這個值我之前已經解釋過了,因為我們現在不是單台機器了,所以將這個節點更改成3或者更大的數,因為咱們就四台機器,所以這裡就配置成3可以了。記住:只能是奇數!

 

 vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml 

 

 <property>  <name>dfs.replication</name>  <value>3</value> </property>

這裡需要注意的是,所有的機器都要這樣配置。

 

 5、啟動Hadoop叢集,驗證是否成功。

到此,我們基本完成了一個Hadoop完全分布式的叢集配置。下面的內容就是我們來驗證一下是否可用。

驗證方式就很簡單了,首先我們先來執行一個HDFS格式的命令,這個在上一篇我們已經分析過了,因為,咱們這裡改成完全分布式的叢集,所以這裡需要重新格式。

bin/hadoop namenode -format

 

  • 首先,我們來驗證一下整個叢集的HDFS是否正常可用。

啟動整個叢集的HDFS,在Master機器上面,用hadoop使用者操作,命令如下:

start-dfs.sh

我們通過瀏覽器來查看整個叢集的HDFS狀態,地址為:http://192.168.1.50:50070/dfshealth.html#tab-overview

可以看到,當前我們的Hadoop叢集的HDFS叢集已經成功啟動,然後我們來看整個叢集的儲存和節點數;

從上面的我們可以看到,當前的叢集存在四個DataNode節點,就是剛才我們配置的Slave檔案的IP.這說明我們配置的叢集HDFS能夠正常運行。

 

  • 然後,我們來驗證一下整個叢集的YARN分散式運算架構是否正常可用。

同樣的方式,我們首先來啟動Yarn.指令碼如下:

start-yarn.sh

我們通過瀏覽器來查看整個叢集的Hadoop叢集狀態,地址為:http://192.168.1.50:8088/

 

可以看到,當前的Hadoop叢集已經存在四個正在啟動並執行節點,而且跑的很Happy.後面的文章我將跟大家分析如何使用這個Hadoop叢集。

 

結語

此篇先到此吧,關於Hadoop大資料集群的搭建後續依次介紹,比如利用Zookeeper搭建Hadoop高可用平台、Map-Reducer層序的開發、Hive產品的資料分析、Spark的應用程式的開發、Hue的叢集壞境的整合和營運、Sqoop2的資料幫浦等,有興趣的童鞋可以提前關注。

本篇主要介紹了搭建一個完全分布式的Hadoop叢集,後面我們會逐漸完善它,我會教你如何一步步的使用完全分布式的Hadoop叢集,然後教你如何使用它,騷年...不要捉急...讓思維飛一會...

有問題可以留言或者私信,隨時恭候有興趣的童鞋加大資料平台深入研究。共同學習,一起進步。 

 

文章的最後給出上一篇的基礎篇:

大資料數列(1)——Hadoop叢集壞境搭建配置 

大資料數列(2)——Hadoop叢集壞境CentOS安裝

 

如果您看了本篇部落格,覺得對您有所收穫,請不要吝嗇您的“推薦”。

大資料數列(3)——Hadoop叢集完全分布式壞境搭建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.