此次实验共使用3台实体机子:
机器名 角色 IPmaster Namenode 10.117.253.201
slave1 Datanode 10.117.253.101
slave2 Datanode 10.117.253.102
TIPS1: 为了操作方便,此次实验所有实体机的用户名都为Hadoop
TIPS2: 在hadoop术语中,主机被称作 namenode, 节点为datanode
操作系统: Ubuntu 12.10
Java版本:jdk1.6.0_24
hadoop版本: 1.1.1
安装步骤
大致说明下,搭建hadoop主要为3个步骤:网络配置/SSH无密钥互信/配置hadoop。(默认JAVA已经安装)
1. 网络配置
首先关闭防火墙: $ sudo ufw disable
在etc/hosts文件下添加机器名: $ sudo vim /etc/hosts
10.117.253.201 master
10.117.253.101 slave1
10.117.253.102 slave2
TIPS: 一共多少节点就得写多少进去。
2. SSH无密钥互信
所有实体机安装ssh server: $ sudo apt-get install openssh-server
TIPS: 安装后使用 命令 $ ssh localhost 可以测试是否成功安装登录。
namenode 上实现无密码登录
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #此命令会自动在根目录的隐藏文件夹生成密钥,分别为 id_rsd 和 id_rsa.pub#
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #讲密钥放进权限KEY内#
TIPS:完成后一样可以用 $ ssh localhost 来测试下是否实现无密码登录本机。
namenode无密码登录其他datanode
将刚刚生成在应藏文件夹ssh里面的 id_rsd.pub追加到datanode里面的权限KEY内, 可以用U盘拷或者直接命令
$ scp ~/.ssh/id_rsd.pub slave1@10.117.253.101:/home/hadoop/.ssh
然后登录slave1或者实际操作slave1,同样执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
完成后即可用namenode无密码访问datanode。
TIPS: 关于hadoop是否需要设置所有datanode 无密码登录 namenode, 小僧上网上网搜索了一下别的安装教程,有些说要,有些说不要,为了安全起见,还是将所有datanode成功登录了namenode, 实现方法与上面一致,只不过是将两台机子对掉而已。BTW, 已经成功后我们需要注意将namenode所生成的的id_rsa.pub保留(因为需要继续增加节点),别的节点所生成或者传输来主机的id_rsa.pub删除,以免造成日后混乱。