準備條件:
安裝ssh-server
sudo apt-get install openssh-server
安裝ssh-client
sudo apt-get install openssh-client
這個操作是要讓Master節點可以無密碼SSH登陸到Slave節點上。
首先生成 Master 的公匙,在 Master 節點終端中執行:
cd ~/.ssh # 如果沒有該目錄,先執行一次ssh localhost
ssh-keygen -t rsa # 一直按回車就可以,生成的密鑰保存爲.ssh/id_rsa
Master 節點需能無密碼 ssh 本機,這一步還是在 Master 節點上執行:
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
完成後可以使用 ssh Master 驗證一下。接着將公匙傳輸到 Slave1 節點:
scp ~/.ssh/id_rsa.pubhadoop@Slave1:/home/hadoop/
scp時會要求輸入Slave1上hadoop用戶的密碼(hadoop),輸入完成後會提示傳輸完畢。
接着在 Slave1節點 上將ssh公匙保存到相應位置,執行
cat ~/id_rsa.pub >>~/.ssh/authorized_keys
如果有其他 Slave 節點,也要執行將公匙傳輸到 Slave 節點、在 Slave 節點上加入授權這兩步。
最後在 Master 節點上就可以無密碼SSH到Slave1節點了。
ssh Slave1
可能會遇到slave節點在登錄“~/.ssh”提示不是一個文件夾或者文件夾不存在的現象,可以先通過ssh-keygen -t rsa 一路回車,就可以在主機上創建一個文件夾,就可以實現登錄了。