在Ubuntu环境下搭建Hadoop

基本参考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操作是必须的  

猜你喜欢

转载自blog.csdn.net/silviakafka/article/details/44961443