快速构建Hadoop的入门练手环境


本文提供了一种快速上手Hadoop的方法:

第一步是找到一个沙盒或开发环境,在那里你可以在没有太多开销和风险的情况下玩转技术。
对我来说,最好的方法是使用我自己的笔记本电脑作为测试,但我也知道一些开发者喜欢使用亚马逊EC2实例(例如在AWS上)。本文假设我们使用的是自己的笔记本电脑,而且我们想跟着学,通过实例来学习(也就是说,我们不打算通过所有的细节来了解引擎盖下的一切运作)。
本地沙盒还意味着我们不一定需要访问Hadoop基础设施,如Zookeeper、名称节点、辅助名称节点、作业历史服务器、任务跟踪器、数据节点等。
但是,我们确实需要能够建立一个Hadoop集群! 有几种方法可以实现这一目标。
几年前,我遇到了Cloudera的Vagrant项目,并从那时起一直愉快地使用它。现在Cloudera同时支持Vagrant和基于Docker的CDH5部署,它变得更加厉害。我们可以在短短几分钟内创建一个与Horton作品沙盒兼容的沙盒。
 
我们先在笔记本电脑上安装Virtual Box(虚拟机软件)和Vagrant。
如果你不想使用Vagrant,你可以考虑这些其他选择。一个预装了Hadoop的亚马逊EC2云实例。虽然有很多好的AMI,但我没有找到一个与Vagrant兼容的,能让我快速建立一个Hadoop集群的AMI。抱歉!EC2也不允许你使用Hadoop集群。EC2也不允许你改变一个实例的内存量。
在你的笔记本电脑上进行裸机安装(注意32位与64位的要求)!
在我的例子中,这是一台惠普Envy M6笔记本电脑,有16GB内存,运行Windows 8 x64,但要确保它有足够的磁盘空间以及CPU能力。
虽然在Vagrant上部署Hadoop集群没有固定的标准,但大多数情况下,你至少需要3台机器。我使用的这个Vagrant文件是基于Karthik Srinivas最初的一个文件,因此,让我们获取源代码并创建我们的沙盒。
 
请注意,这将从Oracle的公共资源库中下载一个默认安装了Virtual Box Guest Additions的Ubuntu Precise镜像。当一切部署成功后,我们应该在我们的Virtual Box用户界面上看到一堆运行中的虚拟机。
就这样了! 我们现在已经准备好开始使用Hadoop和本地沙箱了。我们唯一还需要的是一本关于Hadoop的好书或教程。虽然我知道有很多优秀的资源,但在过去的几年里,下面这本是我最喜欢的。Sam R. Alapati的《学习Apache Hadoop》。
如果你想更冒险一些(并安装一些额外的好东西),看看这些Horton works Sandbox和Cloudera Quick Start VM(基于CDH4)的Vagrantfiles。你可以按原样使用它们,或者作为创建你自己的沙盒的起点。