其实,网上关于Hadoop集群的配置的资料不可谓不少,但是,细细找来,多半是在有图形桌面的环境下搭建的。而我们知道,真正要运行Hadoop集群,我们想要更多的资源用来集中数据的处理与稳定,最理想的莫过于用类UNIX系统的服务器版本,更好面对要核心——要解决的问题,而不用浪费资源去做可视化,去显示什么。但是真正要用服务器版类UNIX的OS,面对无图形界面的操作系统,要想像平时用OS那么自然,可也绝非易事,好在网上资源不少,东找西凑,也算是最终完成了任务。
好了,言归正转,还是就核心要解决的问题来讲述吧
搭建Hadoop集群的大致步骤都一样;
1、 选择好虚拟机,下载并安装好,然后在用中熟悉下,虚拟机有很多:VirtualBox,KVM、VMare公司的一系列的,什么ESXi(自己还想去弄清楚的,目前还不清楚)、Workstation、vSphere(自己还想去弄清楚的,目前还不清楚)等等;在这里,我选择了VMware Workstation9.0 下载见 ,是出于与前辈的虚拟镜像兼容,个人也推祟VirtualBox,一是其开源,二是因为其体积比VMware Workstation小得多,对于硬件资源紧张的人来说,尤其如此。
2、 下载好客户机要用的OS,并用虚拟机装入和新建虚拟机。这里,我先选择的是最新的Ubuntu 12.10服务器版(64位) 下载见 ,因为个人PC上内存还算较大,主机OS也是64位版的。
3、 在装好的虚拟机的客户机OS中下载和安装好JDK和Hadoop的相应版本,安装JDK是因为Hadoop是用JAVA写的,运行肯定需要JAVA支持,至于JDK,用的最广的是Sun公司的JDK,但是据《Hadoop:The definitive guide》的附录A(page:656)所说,其它版本的JDK也行,所以,这里就直接用Ubuntu资源库里所提供的OpenJDK。
4、 配置好SSH、JAVA_HOME(指向JDK的路径)和Hadoop的几个核心文件的配置——在hadoop-env.sh中指出JDK的路径、配置好Hadoop的conf目录下的core-site.xml 和Hadoop的HDFS的配置(conf目录下的hdfs-site.xml)和Hadoop的MapReduce 的配置(conf目录下的mapred-site.xml)
5、 确认好这台客户机的所有环境配置好后,再将其复制(克隆)到其它客户机中,然后各机IP、/etc/hosts和/etc/hostname作相应的改动
6、 测试Hadoop集群是否运行正常
二、详细步骤
1、搭建环境前的准备、计划:
VM中虚拟了4台机子,分别起名为:
master (ubuntu 12.10 64bit,内存:2G,硬盘:80G),
son-1 (ubuntu 12.10 64bit,内存:1G,硬盘:80G),
son-2 (ubuntu 12.10 64bit,内存:1G,硬盘:80G),
son-3 (ubuntu 12.10 64bit,内存:1G,硬盘:80G)。
修改本机的host文件,
sudo gedit /etc/hosts
在后面添加内容为:
192.168.200.104 master
192.168.200.105 son-1
192.168.200.106 son-2
192.168.200.107 son-3
当然,本机的hostname,即在/etc/hostname文件中,应是
master
2、选择虚拟机,下载并安装好。
这个一般是傻瓜式的,如果能汉化,就汉化吧,这样对于我们的工作也轻松多了,这里,我选择的是VMware Workstation9.0;
3、下载好客户机要用的OS,并用虚拟机装入。
这里,我先选择的是最新的Ubuntu12.10服务器版(64位)。这里,VMware对其设置网卡为采用NAT或Bridged,反正只要是为了使客户机OS能够连接外网,这样,我们的客户机的服务器OS就可以直接下载SSH、OpenJDK和Hadoop等相关资源;
4、为本机(master)和子节点(son..)分别创建hadoop用户和用户组,
其实ubuntu和CentOS下创建用户还多少还是有点区别的。
ubuntu下创建:
先创建hadoop用户组:
sudo addgroup hadoop
然后创建hadoop用户:
sudo adduser -ingroup hadoop hadoop
centos 和 RedHat 下创建:
sudo adduser hadoop
注:在centos 和 redhat下直接创建用户就行,会自动生成相关的用户组和相关文件,而ubuntu下直接创建用户,创建的用户没有家目录。
给hadoop用户添加权限,打开/etc/sudoers文件;
sudo gedit /etc/sudoers
按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。
在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL,
hadoop ALL=(ALL:ALL) ALL
5、客户机OS中下载和安装好JDK、SSH和Hadoop的相应版本
(1)为本机(master)和子节点(son..)安装JDK环境。
ubuntu下一条命令即可:
sudo apt-get install openjdk-7-jre
centos和redhat建议下载源码安装。