經(jīng)過(guò)上面一系列流程,大家是不是發(fā)現(xiàn)通過(guò)虛擬機(jī)拷貝這種方式省去了好多額外的配置時(shí)間,比如:裝操作系統(tǒng)、下載Hadoop安裝包、搭建Java環(huán)境等。
3、配置SSH無(wú)密碼配置。
先來(lái)解釋下SSH的概念和用途;
SSH 為 Secure Shell 的縮寫(xiě),由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。SSH 是目前較可靠,專為 遠(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客戶端適用于多種平臺(tái)。幾乎所有UNIX平臺(tái)—包括 HP-UX 、 Linux 、 AIX 、 Solaris 、 Digital UNIX 、Irix ,以及其他平臺(tái),都可運(yùn)行SSH。
上面就是SSH的官方含義了,摘自百度百科。
下面,我來(lái)總結(jié)下SSH在Hadoop集群中的用途。
所謂的SSH簡(jiǎn)單一句話就是: 同一用戶無(wú)密碼登錄到各臺(tái)機(jī)器 。 其實(shí),就是所有的Hadoop集群中作為分布式的一個(gè)計(jì)算框架,需要對(duì)各個(gè)節(jié)點(diǎn)的服務(wù)進(jìn)行操作,而操作的過(guò)程中需要統(tǒng)一由一個(gè)相同的用戶進(jìn)行操作,但是同一用戶登錄不同的服務(wù)器都需要密碼或者密鑰進(jìn)行身份驗(yàn)證。為了避免這個(gè)驗(yàn)證過(guò)程就使用了統(tǒng)一的一種安全協(xié)議:SSH。
其實(shí),SSH的原理很簡(jiǎn)單,就是提前將統(tǒng)一用戶的密碼進(jìn)行加密形成密鑰進(jìn)行分發(fā),然后分發(fā)到各個(gè)服務(wù)器中,各個(gè)服務(wù)器對(duì)這個(gè)秘鑰加入到當(dāng)前的系統(tǒng)用戶組中,這樣這個(gè)用戶登錄的時(shí)候就不需要輸入密碼進(jìn)行登錄操作了。
希望,我上面的講解各位看官能看明白里面的含義。
下面咱們來(lái)實(shí)際操作:
首先進(jìn)行sshd的配置文件的修改,去掉默認(rèn)注釋,開(kāi)啟SSH驗(yàn)證功能( 以root用戶進(jìn)行操作 )。
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è)置。
加工生成證書(shū)公私鑰,分發(fā)到各個(gè)服務(wù)器( 以Hadoop用戶操作 )。
這個(gè)步驟就是上面我分析的過(guò)程,我們需要在Master節(jié)點(diǎn)上生成Hadoop用戶的公鑰,然后將這個(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 [email protected]:~/
我們這里面要復(fù)制的公鑰文件存在默認(rèn)的路徑“ /home/hadoop/.ssh ”,所以執(zhí)行的命令就是
scp ~/.ssh/id_rsa.pub [email protected]:~/

然后,我們需要登錄192.168.1.51的salve01的機(jī)器將剛才生成的公鑰加入的本地的權(quán)限驗(yàn)證組里面去。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
