一 实验室环境下 hadoop集群配置
一、环境说明
实验室中多台机器都属于同一局域网,主机的操作系统多为windows系统,而hadoop要在linux环境下配置,因此我们选用了host(windows7)+Vmware(ubuntu)的方式进行了实验性的配置。
机器三台,分别做namenode(12G内存 八核处理器 1TB硬盘)和两个datanode(4G内存双核处理器 1TB硬盘)。下面进入正式的配置过程。
二、虚拟机的安装及上网方式的选择
虚拟机上网方式,选择桥接。
虚拟机器上安装linux(ubuntu)系统,上网方式:选择有线网络,手动设置IP。网关。IP与主机网段相同。网关与主机相同,DNS与主机相同。
我们这次试验中 机器的配置的ip结果如下
Datanode : 219.245.72.244
Namenode1: 219.245.72.242
Namenode2: 219.245.72.243
这是如果网络是好的,各个linux系统之间可以ping通。
三、安装ssh服务
在安装之前把虚拟机的上网方式改成Nat,Bridge方式不能直接上网。Linux系统设置成自动获取ip。
下面安装openssh-server ,并配置各节点的公钥私钥
对于每个节点:
安装 openssh-server :sudo apt-get install openssh-server
创建公钥私钥: ssh-keygen –t rsa
期间会要求输入一些信息,直接按回车就可以。这样,在默认的路径(其中 njust 是当前用户名) /home/lilin/.ssh 目录下创建 私钥 id_rsa 和一个公钥 id_rsa.pub 。
对于 datanode 节点:
将自己的公钥发送到 namenode 上:
cp id_rsa.pubdatanode1.id_rsa.pub
scpdatanode01.id_rsa.pub namenode 节点 ip 地址(在我的配置方案中,是219.245.72.244):/home/lilin/.ssh
这里需要注意,由于每个 datanode 节点都要将自己的公钥传到 namenode 的相同路径下,因此,各个 datanode 发送的公钥文件名不能相同。这里使用 cp 命令,在每台 datanode 节点上将公钥文件复制为唯一名字的文件。
对于 namenode 节点:
在收到所有 datanode 发送过来的公钥文件之后,要综合这些文件(包括自身),并将这些文件发送到每个节点上:
cp id_rsa.pubauthorized_keys
cat datanode1.id_rsa.pub>> authorized_keys
cat datanode2.id_rsa.pub>> authorized_keys
scpauthorized_keys datanode的ip地址:/home/lilin/.ssh
这时一定要查看一下 ssh 配置是否成功,查看方式是使用 ssh 命令: ssh 其他机器ip ,如果不需要密码就可以登录,就说明配置成功。如果还需要密码,干脆无法登录,则需要重启电脑。重启之后再次使用 ssh 命令,如果还需要密码或者无法登录,则需要重新配置一遍。
成功之后namenode可以无密码登录datanode节点。
注意:这里能否成功是工作能否继续进行的一个关键。一定要能够各个机器之间能够ssh通畅,ssh是linux传递文件的保障,只有能够互相ssh我们各个机器之间传递的信息才是安全的。在这里,在我们的配置过程中出现了许多麻烦,因为以前对linux系统也没有接触过,吃了不少亏。
四、开始集群配置
1、修改各主机的主机名,以区分不同的机器:
打开/etc/hostname:sudo gedit /etc/hostname
对于namenode节点:
将主机名改成namenode,datanode改成相应的datanode1,datanode2等等,并保存关闭。如下图所示:
2、配置各个主机之间IP与主机名的对应关系
修改集群中各个主机的/etc/hosts文件:sudo gedit /etc/hosts
将集群中各个主机的IP与主机名都列在此处,如图所示:
注意要将第一行注释掉:#127.0.0.1localhost.localdomain localhost
注意:如果是第一次接触到linux系统的人,会更改不了。这里要对文件的权限进行修改。命令如下:
Chmod 777 /etc/hosts
这样就可更改hosts的内容了 对于以后要处理的文件不在赘述,都是用这种方法更改文件权限后就可以操作
3. 安装 JDK 1.6
root用户登陆,在Namenode节点上新建文件夹/usr/program,下载JDK安装包jdk-6u13-linux-i586.bin,复制到目录/usr/ program下,在命令行进入该目录,执行命令“./ jdk-6u13-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.6.0_13,安装完毕。
安装完成后,修改/usr/program目录拥有着为lilin用户.若果只有一个用户当然就不用修改了。
下面进行环境变量配置
root用户登陆,命令行中