使用Vagrant搭建Hadoop学习环境
学习Hadoop最烦人的地方就是刚开始环境的搭建, 要搭建一个Hadoop集群,可能很多人就卡在这了。 其实并不是Hadoop集群难于搭建,而是机器难求, 土豪可能有自己的云环境,虚拟机随便申请,屌丝 就只能在个人电脑上装多个虚拟机,很是麻烦。 还好遇到了vagrant,让虚拟机管理起来更加简单了。
Note: 本书的所有例子都是在ubuntu上进行的。
安装Vagrant
Vagrant支持virtualbox和vmware,由于vmware是收费的, 所以这里使用virtualbox。
sudo apt-get install virtualbox
sudo apt-get install vagrant
下载官方的ubuntu镜像
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box
$ mkdir ~/box
$ cd ~/box
$ wget http://files.vagrantup.com/precise64.box
将镜像添加到Vagrant
$ vagrant box add ubuntu ~/box/precise64.box
使用镜像初始化实例
$ mkdir ~/vm/single_hadoop
$ cd ~/vm/single_hadoop
$ vagrant init ubuntu
修改网络配置
初始化后,会生成Vagrantfile文件,此文件是虚拟机启动相关配置。 我们需要调整下网络配置,将下面一句的注释#去掉:
#config.vm.network : public_network
这样相当于桥接的方式联网。当然如果你需要别的方式,可以自己选择。
启动虚拟机
$ cd ~/vm/single_hadoop
$ vagrant up
登录虚拟机
$ cd ~/vm/single_hadoop
$ vagrant ssh
vagrant@precise64:~$
进去之后,直接是vagrant用户,密码也是vagrant。
安装JAVA
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jre
$ sudo apt-get install openjdk-7-jdk
设置JAVA_HOME,在~/.bashrc 加入如下:
export JAVA\_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
下载Hadoop可执行包
$ wget http://mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-2.7.1.tar.gz
$ tar -xzvf hadoop-2.7.1.tar.gz
$ ln -s hadoop-2.7.1 hadoop
测试单机模式
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*
下载hadoop-book
hadoop-book是本书作者在github上的代码库,对应书中的代码。
$ git clone https://github.com/tomwhite/hadoop-book.git
编译hadoop-book
$ mvn package -DskipTests
Note: hadoop-book需要maven3的版本,需要手动安装