您的位置:首页 > 运维架构

无中生有-利用VirtualBox搭建HADOOP

2012-08-20 16:35 417 查看
关于HADOOP,已经不用过多介绍了,我也不打算浪费时间找一些资源粘贴在此。本文讲述的是一个从无到有搭建HADOOP系统的真实案例,既记录了这一历史过程,又希望多多少少能给人一些帮助。

1. 安装Centos虚拟系统

(1). 安装虚拟机VirtualBox,VirtualBox是由ORACLE SUN出品的一款小巧精致、易学实用的虚拟机,而且完全免费。虚拟机的安装过程十分简单,同其它任何应用程序的安装过程无异。

(2). 下载CentOS镜像文件,并新建虚拟系统。当我们给新系统命名时,当我输入CentosXXX时,VirtualBox智能地替我选择了系统类型为Red Hat Linux.

(3). 一路Next,从“存储”项中选择下载的CentOS镜像文件作为虚拟光盘,然后启动虚拟系统。

    

  

(4). 接下来的过程就是安装LINUX系统的过程,一路NEXT,直到提示需要重启,系统就安装完毕。

2. 配置Centos虚拟系统

(1). 配置网络

Centos系统中我们可以很轻易地使用yum来安装软件,条件是必须能访问互联网。幸好,VirtualBox很轻易地实现了让虚拟系统访问互联网 (当然,主机必须能访问互联网)。在虚拟机的设置中,通过“网络”项,选择NAT即可。
    


在Centos中,编辑/etc/sysconfig/network-scripts/ifcfg-eth0,设置ONBOOT="YES".
在Centos中,运行service network restart,重启网络.
在Centos中,运行ifconfig eth0,确保网卡获得IP地址。通过NAT方式获得的IP地址总是10.0.2.15.
此时,我们就可以通过yum来方便地安装软件了。
(2). 安装VirtualBox的增强功能

增强功能的程序保存在VBoxGuestAddition.iso镜像文件中,首先将该镜像文件作为虚拟光盘加载。
        mkdir /mnt/cdrom
        mount /dev/cdrom /mnt/cdrom
        cd /mnt/cdrom
在运行虚拟光盘中脚本之前,需要安装一些工具。
        yum install kernel kernel-devel
        yum install gcc gcc-c++
        yum install make
        cd /usr/src
        ln -s kernels/2.6.32-xxxx linux
        export KERN_DIR=/usr/src/kernels/`uname -r`-`uname -m`
 // 可能不需要
运行增强功能脚本
        cd /mnt/cdrom
        ./VBoxLinuxAdditions.run
之后,鼠标可以自如地进入虚拟系统和主机;也可以安装共享文件夹。

(3). 继续配置网络

由上可知,通过NAT方式获取的IP地址是固定的,这也意味着虚拟系统之间是无法互相访问的。网上有很多文章介绍,如何既能访问互联网,又能虚拟系统之间互相访问,有人采用网桥方式,有人采用共享连接方式,以及其它更阴深的方式。
其实,最简单的方式,只要给虚拟机添加一块网卡,并且选择“Host-Only".
    


在Centos中,运行dhclient eth1,让网卡2自动获取IP地址,此时的IP地址应该为192.168.56.XXX.
(4). 克隆虚拟系统

如果我们要安装多个虚拟系统,每次都得从头开始,实在枯燥索味。其实,我们只要复制现有的虚拟硬盘,然后新建虚拟系统并选择刚才复制的虚拟硬盘即可。
    


由于VirtualBox用UUID来保存虚拟硬盘的标识,因此在执行上一步之前,我们还需要修改复制后虚拟硬盘的UUID。
       VBoxManage internalcommands sethduuid "I:\VBOX\RHEL5.4\5.4.clone.vdi"

3. 安装HADOOP

(1). 安装依赖的工具

HADOOP只需要JDK和SSH
        yum install java-1.6.0-openjdk*
        yum install openssh

(2). 配置SSH

在Hadoop平台,用户通常只在Master节点操作,因此Master需要通过SSH连接来控制其它Slaves. 所以需要把Master的公钥加入到Slaves的authorized_keys文件中。
        ssh-keygen -t dsa -P ''    // 在Master中生成公私钥对
        cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys        // 在Slaves中将Master的公钥加入授权列表
在Slaves中配置SSH
        vim /etc/ssh/sshd_config
            StrictModes no
            RSAAuthentication yes
            PubkeyAuthentication yes
            PasswordAuthentication no
        ssh localhost       // 验证不需要密码验证
比较行之有效的管理方式是将SSH信息保存在NFS的共享目录中,然后所有的Slaves将Home映射至NFS的共享目录。

4. 配置HADOOP

(1). HADOOP的配置包括环境配置和namenode与datanode的配置。

环境配置在hadoop-env.sh文件中修改
        export JAVA_HOME=/usr
        export HADOOP_LOG_DIR=/var/log
名字节点和数据节点的配置主要是core-site.xmlhdfs-site.xml
        参考这篇文章:http://www.cnblogs.com/ggjucheng/archive/2012/04/17/2454538.html
此外,在masters和slaves上增加节点名,在/etc/hosts中配置节点名与IP地址的映射关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: