原創(chuàng)|行業(yè)資訊|編輯:陳俊吉|2017-04-25 09:37:03.000|閱讀 193 次
概述:上一篇我們講解了Hadoop單節(jié)點(diǎn)的安裝,并且已經(jīng)通過(guò)VMware安裝了一臺(tái)CentOS 6.8的Linux系統(tǒng),咱們本篇的目標(biāo)就是要配置一個(gè)真正的完全分布式的Hadoop集群,閑言少敘,進(jìn)入本篇的正題。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
上一篇我們講解了Hadoop單節(jié)點(diǎn)的安裝,并且已經(jīng)通過(guò)VMware安裝了一臺(tái)CentOS 6.8的Linux系統(tǒng),咱們本篇的目標(biāo)就是要配置一個(gè)真正的完全分布式的Hadoop集群,閑言少敘,進(jìn)入本篇的正題。
VMware虛擬機(jī)、CentOS 6.8 64 bit
我們先來(lái)回顧上一篇我們完成的單節(jié)點(diǎn)的Hadoop環(huán)境配置,已經(jīng)配置了一個(gè)CentOS 6.8 并且完成了java運(yùn)行環(huán)境的搭建,Hosts文件的配置、計(jì)算機(jī)名等諸多細(xì)節(jié)。
其實(shí)完成這一步之后我們就已經(jīng)完成了Hadoop集群的搭建的一半的工作了,因?yàn)槲覀冎劳ㄟ^(guò)虛擬機(jī)搭建所搭建的好處就是直接拷貝機(jī)器。多臺(tái)同步進(jìn)行操作,減少分別配置的時(shí)間消耗浪費(fèi)。這也是虛擬化技術(shù)所帶來(lái)的優(yōu)勢(shì)。
下面,咱們進(jìn)去分布式系統(tǒng)的詳細(xì)操作過(guò)程。
這里根據(jù)之前第一篇文章的規(guī)劃,我們至少需要再克隆出三臺(tái)計(jì)算機(jī),作為DataNode數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)。之前的上一臺(tái)機(jī)器作為Master主節(jié)點(diǎn)進(jìn)行管理。
這里先來(lái)梳理一下整個(gè)的物理架構(gòu)圖,大家有一個(gè)直接的觀念和認(rèn)識(shí),上表中已經(jīng)和明確了,總共需要5臺(tái)服務(wù)器來(lái)使用,四臺(tái)用來(lái)搭建Hadoop集群使用,另外一臺(tái)(可選)作為MySQL等外圍管理Hadoop集群來(lái)使用。
我們?cè)陂_(kāi)發(fā)的時(shí)候一般也是直接通過(guò)連接外圍的這臺(tái)機(jī)器來(lái)管理Hadoop整個(gè)集群。
根據(jù)上面的物理規(guī)劃圖應(yīng)該對(duì)整個(gè)架構(gòu)有一個(gè)清晰的認(rèn)識(shí)了,好,咱們進(jìn)行實(shí)操。
關(guān)于在VMWare中進(jìn)行虛擬機(jī)的拷貝是一個(gè)比較簡(jiǎn)單的過(guò)程。截圖如下:
然后,就是下一步就行了,這里需要記住的是,一定要選擇克隆一個(gè)完整的而不是快照。
然后,根據(jù)計(jì)算機(jī)名輸入機(jī)器名就可以了。克隆之后的機(jī)器如下:
關(guān)于各個(gè)Slave服務(wù)器的配置基本分為如下基本部分:
首先,進(jìn)入各個(gè)機(jī)器中更改Hosts文件和計(jì)算機(jī)名,在上一篇文章我已經(jīng)介紹過(guò)了,大家可以上一篇翻閱,這里直接寫(xiě)出腳本如下:
vim /etc/sysconfig/network vim /etc/hosts
計(jì)算機(jī)名和Hosts配置文件按照之前規(guī)劃完成就行了,同樣網(wǎng)絡(luò)的IP地址也是按照規(guī)劃設(shè)置成固定的地址。
在配置完這一切之后,重啟完各個(gè)機(jī)器之后,確保各個(gè)節(jié)點(diǎn)之間可以ping 通(重點(diǎn)!!!)。
然后剩下的內(nèi)存配置,直接關(guān)閉掉虛擬機(jī),在VMWare中進(jìn)行設(shè)置就可以了,很簡(jiǎn)單。
這里根據(jù)需要自行調(diào)整,然后如果可以的話,盡量將主節(jié)點(diǎn)Master的CUP處理器設(shè)置成多路多核,這樣設(shè)置的原因,我第一篇文章中就已經(jīng)詳細(xì)分析過(guò)了。
至此,各個(gè)服務(wù)器的基礎(chǔ)配置已經(jīng)完成了。
經(jīng)過(guò)上面一系列流程,大家是不是發(fā)現(xiàn)通過(guò)虛擬機(jī)拷貝這種方式省去了好多額外的配置時(shí)間,比如:裝操作系統(tǒng)、下載Hadoop安裝包、搭建Java環(huán)境等。
先來(lái)解釋下SSH的概念和用途;
SSH 為 Secure Shell 的縮寫(xiě),由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。SSH 是目前較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問(wèn)題。SSH最初是UNIX系統(tǒng)上的一個(gè)程序,后來(lái)又迅速擴(kuò)展到其他操作平臺(tái)。SSH在正確使用時(shí)可彌補(bǔ)網(wǎng)絡(luò)中的漏洞。SSH客戶(hù)端適用于多種平臺(tái)。幾乎所有UNIX平臺(tái)—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平臺(tái),都可運(yùn)行SSH。
上面就是SSH的官方含義了,摘自百度百科。
下面,我來(lái)總結(jié)下SSH在Hadoop集群中的用途。
所謂的SSH簡(jiǎn)單一句話就是:同一用戶(hù)無(wú)密碼登錄到各臺(tái)機(jī)器。 其實(shí),就是所有的Hadoop集群中作為分布式的一個(gè)計(jì)算框架,需要對(duì)各個(gè)節(jié)點(diǎn)的服務(wù)進(jìn)行操作,而操作的過(guò)程中需要統(tǒng)一由一個(gè)相同的用戶(hù)進(jìn)行操作,但是同一用戶(hù)登錄不同的服務(wù)器都需要密碼或者密鑰進(jìn)行身份驗(yàn)證。為了避免這個(gè)驗(yàn)證過(guò)程就使用了統(tǒng)一的一種安全協(xié)議:SSH。
其實(shí),SSH的原理很簡(jiǎn)單,就是提前將統(tǒng)一用戶(hù)的密碼進(jìn)行加密形成密鑰進(jìn)行分發(fā),然后分發(fā)到各個(gè)服務(wù)器中,各個(gè)服務(wù)器對(duì)這個(gè)秘鑰加入到當(dāng)前的系統(tǒng)用戶(hù)組中,這樣這個(gè)用戶(hù)登錄的時(shí)候就不需要輸入密碼進(jìn)行登錄操作了。
希望,我上面的講解各位看官能看明白里面的含義。
下面咱們來(lái)實(shí)際操作:
vim /etc/ssh/sshd_config
將上面的這三行數(shù)據(jù)的注釋“#”去掉進(jìn)行,保存。這里記住了!所有的機(jī)器都要這么依次進(jìn)行設(shè)置。
簡(jiǎn)要的解釋下上面三行數(shù)據(jù)的含義:1、第一個(gè)RSAAuthentication是指開(kāi)啟SSH驗(yàn)證,2、PubkeyAuthetication是指可以通過(guò)公鑰進(jìn)行驗(yàn)證,3、AuthorizedkeysFile則指的的是公鑰存放的位置。
記住,完成配置之后,重啟該服務(wù),腳本如下:
/sbin/service sshd restart
可以驗(yàn)證下,比如這里我這里直接SSH登錄本機(jī)系統(tǒng):
ssh localhost
這里可以看到,丫讓我輸入密碼,所以說(shuō)這里只是開(kāi)啟了SSH驗(yàn)證,但是沒(méi)有生成密鑰,進(jìn)行設(shè)置。
這個(gè)步驟就是上面我分析的過(guò)程,我們需要在Master節(jié)點(diǎn)上生成Hadoop用戶(hù)的公鑰,然后將這個(gè)公鑰分發(fā)給各個(gè)slave節(jié)點(diǎn),然后這樣在Master機(jī)器上就可以用Hadoop無(wú)密碼登錄到各個(gè)salve機(jī)器上面了。
步驟如下:
ssh-keygen -t rsa -P ''
這里的-P后面‘P’是大寫(xiě)的。
上面我用紅框勾出的路徑就是公鑰和私鑰生成的默認(rèn)路徑。
然后,下一步就是將這個(gè)公鑰復(fù)制到各個(gè)slave節(jié)點(diǎn)中去、
通過(guò)以下Linux命令進(jìn)行遠(yuǎn)程文件的復(fù)制,腳本命令如下:
scp ~/.ssh/id_rsa.pub 遠(yuǎn)程用戶(hù)名@遠(yuǎn)程服務(wù)器IP:~/
我們這里面要復(fù)制的公鑰文件存在默認(rèn)的路徑“/home/hadoop/.ssh”,所以執(zhí)行的命令就是
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.51:~/
然后,我們需要登錄192.168.1.51的salve01的機(jī)器將剛才生成的公鑰加入的本地的權(quán)限驗(yàn)證組里面去。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
上面的命令是要在Slave01的機(jī)器上進(jìn)行的,并且使用hadoop用戶(hù)今次那個(gè)操作。
最后,我們來(lái)回到Master機(jī)器上面進(jìn)行,ssh驗(yàn)證。
SSH驗(yàn)證的命令很簡(jiǎn)單,格式如下:
SSH <遠(yuǎn)程IP && 域名>
所以,這里咱們?cè)趍aster機(jī)器上登錄slave01機(jī)器上實(shí)驗(yàn)下,看是否還需要進(jìn)行密碼輸入。
ssh slave01.hadoop
通過(guò)上面的命令窗口可以看到,我們已經(jīng)成功的從Master機(jī)器上面無(wú)密碼的登錄到Slave01機(jī)器上面了。那么說(shuō)明剛才的配置生效了。
這里需要配置的剩下的兩個(gè)Slave節(jié)點(diǎn)進(jìn)行無(wú)密碼登錄了,詳細(xì)的操作過(guò)程參照上面的流程就可以了,需要的注意的是:在Master生成密鑰只需要生成一次就可以了,不要再次生成!因?yàn)槊看紊梢詾橹械墓?jié)點(diǎn)都需要重新配置。
配置完成之后的效果,就是要保證在master機(jī)器上面的hadoop用戶(hù)能夠無(wú)需密碼的登錄到各個(gè)slave節(jié)點(diǎn)上進(jìn)行操作就可以。
經(jīng)過(guò)上面的操作,已經(jīng)確保我們的Master機(jī)器可以毫無(wú)障礙的操作各個(gè)子節(jié)點(diǎn)Slave了。
我們知道,經(jīng)過(guò)上面的一系列操作之后,我們的Master主節(jié)點(diǎn)可以順利的操控各個(gè)Slave節(jié)點(diǎn)了,但是,這里需要注意的是,為了保證各個(gè)Slave機(jī)器和Master機(jī)器進(jìn)行通信。
需要保證各個(gè)Slave節(jié)點(diǎn)能夠無(wú)密碼登錄Master機(jī)器,操作步驟如上面。
這么操作的理由很簡(jiǎn)單,各個(gè)Slave子節(jié)點(diǎn)干完Master分配的任務(wù)之后,需要有權(quán)限反饋至他們的老大Master!
好了,到此,我們已經(jīng)完成了整個(gè)集群的SSH配置了。
這里再次強(qiáng)調(diào),上面的步驟要一定完成驗(yàn)證,要不以后的Hadoop操作會(huì)很出現(xiàn)各種詭異的問(wèn)題,讓你措手不及,這都是經(jīng)驗(yàn)!!
好了,到此我們需要對(duì)各個(gè)機(jī)器上面的Hadoop進(jìn)行配置了。我們知道這里的所有的機(jī)器都是從一臺(tái)機(jī)器上面的拷貝過(guò)來(lái),因?yàn)槲覀冊(cè)谶@個(gè)機(jī)器上面已經(jīng)安裝了單實(shí)例的Hadoop,參照上一篇文章。
那么,下一步的步驟就是將這個(gè)單節(jié)點(diǎn)的配置成一個(gè)真正的分布式集群,充分利用我們剛才搭建的幾臺(tái)Server進(jìn)行性能的最大發(fā)揮。
這里的配置不是很多,只需要更改一下幾個(gè)文件就可以了。
這個(gè)只需要在Master的機(jī)器上面進(jìn)行就可以了,當(dāng)然,如果不介意可以保持所有的機(jī)器上面的Hadoop配置一樣就可以了。執(zhí)行命令如下
vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves
然后,將各個(gè)Slave的IP或者機(jī)器名寫(xiě)入就可以了,一臺(tái)機(jī)器一行數(shù)據(jù)。這里我寫(xiě)的是IP.
這樣就可以了。
關(guān)于這個(gè)值我之前已經(jīng)解釋過(guò)了,因?yàn)槲覀儸F(xiàn)在不是單臺(tái)機(jī)器了,所以將這個(gè)節(jié)點(diǎn)更改成3或者更大的數(shù),因?yàn)樵蹅兙退呐_(tái)機(jī)器,所以這里就配置成3可以了。記住:只能是奇數(shù)!
vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml
<property> <name>dfs.replication</name> <value>3</value> </property>
這里需要注意的是,所有的機(jī)器都要這樣配置。
到此,我們基本完成了一個(gè)Hadoop完全分布式的集群配置。下面的內(nèi)容就是我們來(lái)驗(yàn)證一下是否可用。
驗(yàn)證方式就很簡(jiǎn)單了,首先我們先來(lái)執(zhí)行一個(gè)HDFS格式的命令,這個(gè)在上一篇我們已經(jīng)分析過(guò)了,因?yàn)椋蹅冞@里改成完全分布式的集群,所以這里需要重新格式。
bin/hadoop namenode -format
啟動(dòng)整個(gè)集群的HDFS,在Master機(jī)器上面,用hadoop用戶(hù)操作,命令如下:
start-dfs.sh
我們通過(guò)瀏覽器來(lái)查看整個(gè)集群的HDFS狀態(tài),地址為://192.168.1.50:50070/dfshealth.html#tab-overview
可以看到,當(dāng)前我們的Hadoop集群的HDFS集群已經(jīng)成功啟動(dòng),然后我們來(lái)看整個(gè)集群的存儲(chǔ)和節(jié)點(diǎn)數(shù);
從上面的截圖我們可以看到,當(dāng)前的集群存在四個(gè)DataNode節(jié)點(diǎn),就是剛才我們配置的Slave文件的IP.這說(shuō)明我們配置的集群HDFS能夠正常運(yùn)行。
同樣的方式,我們首先來(lái)啟動(dòng)Yarn.腳本如下:
start-yarn.sh
我們通過(guò)瀏覽器來(lái)查看整個(gè)集群的Hadoop集群狀態(tài),地址為://192.168.1.50:8088/
可以看到,當(dāng)前的Hadoop集群已經(jīng)存在四個(gè)正在運(yùn)行的節(jié)點(diǎn),而且跑的很Happy.后面的文章我將跟大家分析如何使用這個(gè)Hadoop集群。
此篇先到此吧,關(guān)于Hadoop大數(shù)據(jù)集群的搭建后續(xù)依次介紹,比如利用Zookeeper搭建Hadoop高可用平臺(tái)、Map-Reducer層序的開(kāi)發(fā)、Hive產(chǎn)品的數(shù)據(jù)分析、Spark的應(yīng)用程序的開(kāi)發(fā)、Hue的集群壞境的集成和運(yùn)維、Sqoop2的數(shù)據(jù)抽取等,有興趣的童鞋可以提前關(guān)注。
本篇主要介紹了搭建一個(gè)完全分布式的Hadoop集群,后面我們會(huì)逐漸完善它,我會(huì)教你如何一步步的使用完全分布式的Hadoop集群,然后教你如何使用它,騷年…不要捉急…讓思維飛一會(huì)…
有問(wèn)題可以留言或者私信,隨時(shí)恭候有興趣的童鞋加大數(shù)據(jù)平臺(tái)深入研究。共同學(xué)習(xí),一起進(jìn)步。
編輯推薦:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn