基本参考http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html
我的环境中是三台机器,简称A B C好了(为不透露公司相关信息,使用虚拟的Ip)
1.网络连通性
使用hostname命令获取三个机器名字 假设为A B C
vim /etc/hosts 配置如下
10.32.105.1 A
10.32.105.2 B
10.32.105.3 C
三台机器都要配置,这样他们之间就可以通过名字(hostname)相互访问了(不用使用IP)
在A上直接ping B 能连通表示成功
2.SSH无密码登录
因为hadoop是使用ssh的,NameNode使用SSH无密码登录并启动DataName进程的。
所以ABC三者间需要可以相互SSH无密码登录
原理:不对称加密。A生成密钥对,自己保留私钥,给BC公钥,BC就能无密码登录A了
同理B生成密钥对,自己保留私钥,给A公钥,A就能无密码登录B了
同理C生成密钥对,自己保留私钥,给A公钥,A就能无密码登录C了
具体见上链接教程
注意的几点:
1.一定要用普通用户登录,不要用root。比如用户是silvia
(因为一般ssh会禁用root直接登录)
2.ssh-keygen –t rsa –P ""
ssh和-keygen间没有空格 有空格的地方我在上面已经用很多空格标识 注意后面是双引号
然后一路回车就可以了
3.密钥会默认存储在/home/silvia/.ssh中(即~/.ssh)
4.注意查看生成密钥
vim id_rsa.pub
最后是silvia@A 即用户名@机器名
如果是root@A 则表明是以root用户生成的密钥,会导致后面用普通用户登录无密码登录失败。这个地方很容易被人忽略,请小心检查下。
5. 公钥使用时
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
注意是 >>
这里是追加到文件后面 而不是覆盖
因为A既要连接到B 又要连接到C 还要能到本机
所以A里面既要有B的公钥又要有C的公钥 还要有自己的公钥 都在authorized_keys文件里面
6.设置
vi /etc/ssh/sshd_config
7.chmod
如果不修改 容易出现ssh B 然后仍然提示输入密码的情况
结果:在A机器中 ssh B 可以直接登录
在B机器中 ssh A可以直接登录.......
还有容易出现的问题参见:http://www.tuicool.com/articles/EriayeQ
3.Java环境
从官网上下载gz.tar文件(也可以下载bin文件直接运行安装)
使用tar –zxvf 命令解压。mv命令重命名。
vim /etc/profile 配置环境变量
source让它生效
java -version 安装成功则可查看版本
4.hadoop
注意用root用户进行操作
具体操作参见文章,注意不同机器的java环境位置可能不一样,拷贝A的Hadoop环境去B C时注意java环境的设置
进入bin目录可以看到各个脚本 开启是start-all.sh 关闭是stop-all.sh
注意chown操作是必须的