SSH配置
Hadoop控制脚本依赖SSH来执行针对整个集群的操作。例如,某个脚本能够终止 并重启集群的所有守护进程。值得注意的是,控制脚本并非唯一方法,用户也可以 利用其他方法执行集群范围的操作(例如分布式shell)。
为了支持无缝工作,SSH安装好之后,需要允许hadoop用户无需键入密码即可登 陆集群内的机器。最简单的方法是创建一个公钥/私钥对,并利用NFS在整个集群 间共享该密钥对。
首先,以某Hadoop用户帐号登录后,键入以下指令来产生一个RSA密钥对。
% ssh-keygen -t rsa -f ~/.ssh/id_rsa
尽管我们期望无密码登录,但无口令的密钥并不是一个好的选择。因此,当系统提示输入 口令时,用户最好指定一个口令。可以使用ssh-agent避免为每个连接一一输入 密码。
私钥放在由-f选项指定的文件之中,例如~/.ssh/id_rsa。存放公钥的文件名称与私 钥类似,但是以“.pub”作为后缀,~/.ssh/id_rsa.pub。
接下来,需确保公钥存放在用户打算连接的所有机器%~/.ssh/authorized_keys文件 中。如果hadoop用户的home目录在NFS文件系统中,则密钥可以通过键入以下 指令在整个集群共享:
% cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果home 目录并非通过NFS共享,则需要利用其他方法共享公钥。
测试是否可以从主机器ssh到工作机器。若可以,则表明ssh-agent正在运行。再 运行ssh-add来存储口令。这样的话,用户即可不输入口令就能ssh到一台工作 机器。