近期开始接触 Hadoop/Spark 相关的东西,部署单个节点很简单,但是要弄成集群就有点伤脑筋了,且不说集群本身的部署,光那数不清的『大数据』名词就能让人眼花缭乱,建议初次接触『大数据』的看看董飞的 后Hadoop时代的大数据架构 压压惊。

不少教程都是教你先下 Hadoop, Spark 等然后再挨个配 hostname 等,为了你的生命着想,这里采用的是 Ambari - 一种快速批量部署 Hadoop 平台的管理软件。与自己手动安装不同,Ambari 通常需要配合一些公司发布的 Hadoop 发行版进行安装,官网上默认的是 Hortonworks 公司提供的发行版。与 Hortonworks 类似,IBM 也提供了类似的发行版,称为 BigInsights, 官方安装视频可见 Getting started with the IBM Open Platform with Apache Hadoop, 本文根据以上视频结合 Vagrant 在本机部署 Hadoop 集群测试环境。

Prerequisite

  • Virtualbox - 提供虚拟机环境
  • Vagrant - 使用配置文件批量管理虚拟机,再也不用在 Virtualbox 中图形安装了
  • 一个好用的 Terminal - iTerm2/OSX, Terminator/Linux, Babun/Windows
  • tmux - 终端复用,无需新开标签或者窗口,更好地使用 Terminal
  • 良好的外网访问环境,某些网络环境下建议加代理或者 VPN

部署实战

最开始试过在 ESXi 上直接提供虚机,实测下来并不方便,因为 Vagrant 对免费 ESXi 的支持很有限(体现在第三方 vbox 等),而对 Virtualbox 的支持很好。有关 ESXi 的部署可参考 高校实验室环境下的服务器部署小议。 在 ESXi 虚拟机上安装一个 Ubuntu Server 14.04, 作为集群的宿主机,然后在 Ubuntu Server 基础上安装 Virtualbox + Vagrant. 看似是不错的方案,但是实践下来发现在 ESXi 的基础上再虚拟64 bit 的虚机是存在问题的,在 ESXi 5.x 基础上可以更改配置文件 enable 嵌套虚拟化,但是实测发现启动Virtualbox 后 CPU 占用率极高,遂弃疗… 总结来说就是在 ESXi 虚拟化的基础上再进行虚拟化是有不少坑的。想进行部署实战的推荐裸机上装 Virtualbox (测试) 或者直接上虚机实战。

虚机间互相拷贝 public key 时使用ssh-copy-id 较为方便,接下来照着视频来操作就好了。

如果只是想试用 Spark 的话装官网上编译好的二进制包即可,解压即用。

Reference