为了搭建Hadoop集群环境,配置SSH
SSH全称Secure SHell,具体介绍参考http://blog.lizhigang.net/archives/249
准备工作:
我的主机是一台Win7系统上的虚拟机( Red Hat Enterprise Linux 5.4 (RHEL5.4)镜像下载地址 server版本 32位DVD安装镜像 http://rhel.ieesee.net/uingei/rhel-server-5.4-i386-dvd.iso),IP为 192.168.1.132
另一台是Ubuntu 12.0.24 ,IP为192.168.1.107
1、JDK1.6的安装就简单了,下载 jdk-6u24-linux-i586.bin
修改权限
# chmod a+x jdk-6u24-linux-i586.bin
开始安装
# ./jdk-6u24-linux-i586.bin
接下来配置环境变量即可:
在/home/username/.bashrc 或 /etc/profile文件末尾添加
打开终端,进行测试
#java
#javac
#java -version
看看是否正常(两台机器下的安装方法都一样)
2、安装SSH
在Redhat上安装SSH,从Redhat安装文件中拷贝如下文件(openssh和openssl开头的文件都拷上吧):
openssh-4.3p2-36.el5.i386.rpm
openssh-askpass-4.3p2-36.el5.i386.rpm
openssh-clients-4.3p2-36.el5.i386.rpm
openssh-server-4.3p2-36.el5.i386.rpm
openssl-0.9.8e-12.el5.i386.rpm
openssl-0.9.8e-12.el5.i686.rpm
openssl097a-0.9.7a-9.el5_2.1.i386.rpm
openssl-devel-0.9.8e-12.el5.i386.rpm
openssl-perl-0.9.8e-12.el5.i386.rpm
把上面的文件安装
#rpm -ivh openss*
在Ubuntu上安装SSH,执行以下命令就好了
测试是否安装成功,
# ssh localhost
3、配置,让主机无密码访问节点机器
首先,分别在主机和节点机器上创建一个hadoop用户,这样每台机器上都有一个hadoop用户,操作就方便了。
在主机上生成密钥对:
#ssh-keygen -t rsa
这个命令将为主机上的用户生成其密钥对,询问其保存路径时直接采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是其设定为空密码。最近生成密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下,然后将id_rsa.pub的内容复制到每个节点机器的/home/hadoop/.ssh/authorized_keys文件中,生成密钥后的具体操作:
1) 拷贝id_rsa.pub
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2) 将文件拷贝到节点机器相同的文件夹内
#scp authorized_keys 192.168.1.107:~/.ssh/
这时候可以看到在192.168.1.107机器的/home/hadoop/.ssh文件夹下,就可以看到有一个authorized_keys文件
然后修改权限
#chmod 644 authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。
测试是否成功:
在主机上,
#ssh 192.168.1.107
如果不提示输入密码,那就ok啦。。
(仅供参考~~)
SSH全称Secure SHell,具体介绍参考http://blog.lizhigang.net/archives/249
准备工作:
我的主机是一台Win7系统上的虚拟机( Red Hat Enterprise Linux 5.4 (RHEL5.4)镜像下载地址 server版本 32位DVD安装镜像 http://rhel.ieesee.net/uingei/rhel-server-5.4-i386-dvd.iso),IP为 192.168.1.132
另一台是Ubuntu 12.0.24 ,IP为192.168.1.107
1、JDK1.6的安装就简单了,下载 jdk-6u24-linux-i586.bin
修改权限
# chmod a+x jdk-6u24-linux-i586.bin
开始安装
# ./jdk-6u24-linux-i586.bin
接下来配置环境变量即可:
在/home/username/.bashrc 或 /etc/profile文件末尾添加
#------------jdk environment--------------- JAVA_HOME=/usr/java/jdk1.6.0_29 JRE_HOME/usr/java/jdk1.6.0_29/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH
打开终端,进行测试
#java
#javac
#java -version
看看是否正常(两台机器下的安装方法都一样)
2、安装SSH
在Redhat上安装SSH,从Redhat安装文件中拷贝如下文件(openssh和openssl开头的文件都拷上吧):
openssh-4.3p2-36.el5.i386.rpm
openssh-askpass-4.3p2-36.el5.i386.rpm
openssh-clients-4.3p2-36.el5.i386.rpm
openssh-server-4.3p2-36.el5.i386.rpm
openssl-0.9.8e-12.el5.i386.rpm
openssl-0.9.8e-12.el5.i686.rpm
openssl097a-0.9.7a-9.el5_2.1.i386.rpm
openssl-devel-0.9.8e-12.el5.i386.rpm
openssl-perl-0.9.8e-12.el5.i386.rpm
把上面的文件安装
#rpm -ivh openss*
在Ubuntu上安装SSH,执行以下命令就好了
sudo apt-get update
sudo apt-get install ssh
sudo /etc/init.d/ssh restart
测试是否安装成功,
# ssh localhost
3、配置,让主机无密码访问节点机器
首先,分别在主机和节点机器上创建一个hadoop用户,这样每台机器上都有一个hadoop用户,操作就方便了。
在主机上生成密钥对:
#ssh-keygen -t rsa
这个命令将为主机上的用户生成其密钥对,询问其保存路径时直接采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是其设定为空密码。最近生成密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下,然后将id_rsa.pub的内容复制到每个节点机器的/home/hadoop/.ssh/authorized_keys文件中,生成密钥后的具体操作:
1) 拷贝id_rsa.pub
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2) 将文件拷贝到节点机器相同的文件夹内
#scp authorized_keys 192.168.1.107:~/.ssh/
这时候可以看到在192.168.1.107机器的/home/hadoop/.ssh文件夹下,就可以看到有一个authorized_keys文件
然后修改权限
#chmod 644 authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。
测试是否成功:
在主机上,
#ssh 192.168.1.107
如果不提示输入密码,那就ok啦。。
(仅供参考~~)