1、為什么要進行 SSH 無密碼驗證配置?
Hadoop運行過程中需要管理遠端Hadoop守護進程,在Hadoop啟動以后,NameNode是通過SSH(Secure Shell)來啟動和停止各個DataNode上的各種守護進程的。這就必須在節(jié)點之間執(zhí)行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運用無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登錄并啟動DataName進程,同樣原理,DataNode上也能使用SSH無密碼登錄到NameNode。
2、為什么要使用 SSH?
在linux系統(tǒng)中,ssh是遠程登錄的默認工具,因為該工具的協(xié)議使用了RSA/DSA的加密算法.該工具做linux系統(tǒng)的遠程管理是非常安全的。telnet,因為其不安全性,在linux系統(tǒng)中被擱置使用了。
3、SSH 原理
Master(NameNode | JobTracker)作為客戶端,要實現(xiàn)無密碼公鑰認證,連接到服務器Salve(DataNode | Tasktracker)上時,需要在Master上生成一個密鑰對,包括一個公鑰和一個私鑰,而后將公鑰復制到所有的Slave上。當Master通過SSH連接Salve時,Salve就會生成一個隨機數(shù)并用Master的公鑰對隨機數(shù)進行加密,并發(fā)送給Master。Master收到加密數(shù)之后再用私鑰解密,并將解密數(shù)回傳給Slave,Slave確認解密數(shù)無誤之后就允許Master進行連接了。這就是一個公鑰認證過程,其間不需要用戶手工輸入密碼。重要過程是將客戶端Master復制到Slave上。