Hadoop 2.5.1 虚拟集群搭建——基本环境准备

最近看到第一届全国高校云计算应用创新大赛在东南大学举行,内心有点小骚动。心动不如行动,我赶紧在自己的PC上使用virtual box搭了个虚拟的hadoop集群环境。断断续续花了半个月,终于弄好了,这篇文章先介绍一下虚拟机环境的准备工作。

1、总体的集群规划


主机名别名OSIPHDFS角色Yarn角色
Yarn-MatsermasterCentOS_6.5_i686 minimal desktop192.168.137.100namenode,datanoderesourcemanager,nodemanager
Yarn-Slave_1slave1CentOS_6.5_i686 minimal192.168.137.101datanodenodemanager
Yarn-Slave_2slave2CentOS_6.5_i686 minimal192.168.137.102datanodenodemanager


2、虚拟机集群搭建
先安装一个master和一个slave模板的虚拟机然后通过导入导出slave模板的方式创建真正的2个子节点slave1和slave2
2.1、虚拟机安装
  • 安装前通过virtual box的全局设定,将虚拟机文件放在非C盘的位置, 这篇博客有具体的介绍http://blog.csdn.net/stormragewang/article/details/34436165
  • 虚拟机都是用默认配置(虚拟网卡使用的是NAT模式)
  • master 节点(硬盘40G,内存1G)安装CentOS的minimal desktop版本,主机名叫做Yarn-Master,同时添加一个普通用户Hadoop
  • slave节点(硬盘20G,内存512M)安装CentOS的minimal版本,主机名叫Yarn-Slave,安装minimal版本时默认只有root账户
2.2、更新kernel、安装Virtual Box增强功能并安装java
在master和slave节点上都执行以下操作
  1. ifup eth0,打开网卡(桌面系统可以直接用图形化的方式打开网卡)
  2. yum update kernel(更新内核,安装Virtual Box增强功能需要)
  3. 重启,完成后启动项会多一个,把旧的注释掉就好
  4. yum groupinstall "Development Tools"(安装开发套件,安装Virtual Box增强功能需要)
  5. 安装Virtual Box增强功能,添加共享文件夹方便文件共享
  6. 安装java
2.2.1、注释掉多余的内核启动项,vi /boot/grub/grub.conf,结果如图

2.2.2、安装virtualbox增强功能
点击虚拟机“设备”-》“安装增强功能”

挂载cdrom(桌面版系统不用,先在/mnt下新建cdrom文件夹)

运行VBoxLinuxAdditions.run就可以了
如在/dev中没有cdrom文件可以把虚拟机的安装目录下的VBoxGuestAdditions.iso解压到usb中然后把usb设备分配给虚拟机,然后使用挂载u盘(/dev/hdb(sdb))的方式再安装也是可以的

2.2.3 添加共享文件夹
点击虚拟机“设备”-》“共享文件夹”,添加一个固定分配的允许写的共享文件夹

在/mnt下新建一个share文件夹,然后执行 mount -t vboxsf winshare /mnt/share , 注意第一个参数名称和共享文件夹名称一致,同时为了使系统每次启动时自动挂载文件夹编辑 /etc/rc.d/rc.local文件,在文件的最后加入上面手动挂接的命令 mount -t vboxsf winshare /mnt/share 就可以了

2.2.3、安装java
虚拟机主机去oracle官网下载java7的32位rpm安装包,然后拷贝到共享文件夹中,这样2个虚拟机都可以使用了。


2个虚拟机将rpm安装包拷贝到本地,然后使用rpm -ivh 安装即可。安装完成后需要设置环境变量,将下面的文件拷贝到/etc/profile.d/java.sh(该文件是自己创建的),然后重启即可
##
##set the jdk environment
##
export JAVA_HOME=/usr/java/jdk1.7.0_67 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


2.3、在Yarn-Slave节点中添加一个普通用户Hadoop
useradd -m Hadoop
passwd Hadoop

2.4、使用slave虚拟机作为模板,新建2个实际的slave1和slave2节点
2.4.1、导出slave虚拟机,“管理”-》“导出虚拟电脑”

2.4.2、导入虚拟机模板, "管理"-》“导入虚拟电脑”


注意一定要勾选上重新初始化所有网卡MAC
同样的方式导入Yarn-Slave_2,这样所有的虚拟机节点如图


2.4.3、修改slave1和slave2的主机名
vi /etc/sysconfig/network



3、虚拟机集群网路配置。
Yarn-Master、Yarn-Slave_1、Yarn-Slave_2的三个虚拟机都进行一下操作
  1. 添加一个Host-only网卡
  2. 进入虚拟机配置网卡的ip、网关、DNS等信息
  3. 修改hosts文件,相互ping通
3.1、添加Host-only网卡
每个虚拟机“设置”-》“网络”-》“网卡2”

3.2、修改网卡配置
master节点是桌面系统,直接通过图形化界面修改就好
IPADDR=192.168.137.100
GATEWAY=192.168.137.1
NETMASK=255.255.255.0
DSN1=192.168.137.1
slave1和slave2是字符界面。首先通过ifconfig -a 查看网卡设备名,一般情况下NAT网卡为eth0,host-only网卡位eth1,我的为eth2。在/etc/sysconfig/network-script创建对应的配置文件如ifcfg-eth2


修改ifcfg-eth2,具体内容如下( DEVICE和设备名保持一致,HWADDR和自己的MAC保持一致
DEVICE=eth2
HWADDR=08:00:27:B7:5A:36
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.137.101
GATEWAY=192.168.137.1
NETMASK=255.255.255.0
DSN1=192.168.137.1
同样在Yarn-Slave_2的虚拟机上执行同样的配置,只是ip改为192.168.137.102

3.3、修改hosts文件,将主机名指向各个ip
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.100		Yarn-Master	master
192.168.137.101		Yarn-Slave_1	slave1
192.168.137.102		Yarn-Slave_2	slave2
可以在各个机器间ping来测试一下

4、使用ssh免密码登陆
我们使用master作为主节点那么只需要master能够免密码登陆到slave1和slave2就好, 到这一步的所有操作都是使用Hadoop用户登陆
  1. 在master节点生成密匙,
  2. 在slave1和slave2节点将公钥添加到authorized_keys文件中
  3. 给文件相应的权限(需要root)
  4. 配置并重启slave1和slave2节点的ssh服务(需要root)
4.1、在master节点生成密匙
  1. 使用Hadoop登陆,执行 ssh-keygen -t rsa 命令生成密匙,生成过程中需要输出密码,我们不用输入保持为空就好,默认私钥和公钥都保存在/home/Hadoop/.ssh文件夹中
  2. 使用cp .ssh/id_rsa.pub /mnt/share/ssh-public/id_master.pub 来把公钥保存到共享文件夹中方便slave1和slave2使用
4.2、将公钥添加到authorized_keys文件中
  1. 使用Hadoop登陆,在用户Hadoop的主目录下创建文件夹.ssh
  2. 使用cat /mnt/share/ssh-public/id_master.pub >> ~/.ssh/authorized_keys拷贝到公钥文件中
  3. slave1和slave2执行相同的操作
结果如图


4.3、给文件相应的权限
master slave1和slave2都以管理员登陆执行以下操作
How to setup SSH public key authentication with SELinux enabled

chmod 755 /home/Hadoop/.ssh/
chmod 600 /home/Hadoop/.ssh/authorized_keys
restorecon -R -v /home/Hadoop/.ssh(这一步不一定需要)

4.4、配置并重启slave1和slave2节点的ssh服务(需要root权限)
编辑/etc/ssh/sshd_config文件,启用下面2个配置后使用service sshd restart 重启sshd服务
PubkeyAuthentication yes  # 是否允许 Public Key ?当然允许啦!只有 version 2
AuthorizedKeysFile      .ssh/authorized_keys

4.5、测试ssh登陆


5、其他
5.1、使用ssh登陆时可以使用ssh user@host -vvv 来打印出调试信息


5.2、关于ssh免密码登陆网上有不少的参考博客,有些写的更详细,需要注意的是弄清楚到底是要用当前哪个用户登陆到另一个机器的哪个用户,然后检查对应用户下ssh文件是否一致。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值