###免密鑰是爲了解決hadoop集羣各個節點通訊的問題,即通訊不在須要填寫密碼,ssh鏈接的安全性由密鑰驗證機制來完成node
1、配置安全
注意的東西來了ssh
你配置的機器可能有多個用戶,但你須要選一個來作hadoop的管理用戶,而你接下來的操做將在hadoop的用戶的根目錄下即(當前用戶是hadoop用戶):~/ 目錄下,其餘的則在 /home/hadoop用戶名/ 目錄下 (未來ssh免密鑰鏈接的是你hadoop用戶)oop
注意區分:用戶根目錄與系統根目錄spa
開始配置(如今默認當前用戶是hadoop的用戶)
orm
(1)跳到~/.ssh文件夾下: cd ~/.sshhadoop
( 2 )生成公鑰id_rsa.pub和密鑰id_rsa : ssh-keygen -t rsatest
( 3 ) 將id_rsa.pub的內容追加到authorized_keys文件中(公鑰替換加到authorized_keys): cat id_rsa.pub > authorized_keys集羣
( 4 )每個節點都進行(1)(2)(3)操做配置
( 5 )最後將全部節點的authorized_keys內容匯合:
每一個datanode節點都執行下面操做(authorized_keys1的名字要改)
scp ~/.ssh/authorized_keys hadooptest@172.16.19.1:~/.ssh/authorized_keys1
執行完後,在172.16.19.1的hadooptest的.ssh中將傳來全部的authorized_keys,追加到本地的authorized_keys(每一個傳來的authorized_keys執行一次):
cat authorized_keys1>> authorized_keys(這裏是">>")
(6)將172.16.19.1的hadooptest的.ssh中的authorized_keys再分發給各個節點。
一樣是scp命令,就不寫了。
2、錯誤總結
一、hadoop運行須要鏈接其餘節點出現要密碼時,說明ssh免密鑰沒作好,要重作
2.注意authorized_keys的權限必須是600,不然還要密碼