使用Vagrant创建虚拟机安装Hadoop

安装VirtualBox

下载地址:https://www.virtualbox.org/wiki/Downloads/

安装Vagrant

下载安装包:http://downloads.vagrantup.com/,然后安装。

下载box

下载适合你的box,地址:http://www.vagrantbox.es/

例如下载 CentOS6.5:

$ wget https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

添加box

首先查看已经添加的box:

$ vagrant box list

添加新的box,可以是远程地址也可以是本地文件,建议先下载到本地再进行添加:

$ vagrant box add centos6.5 ./centos65-x86_64-20140116.box

其语法如下:

vagrant box add {title} {url}

box 被安装在 ~/.vagrant.d/boxes 目录下面。

创建虚拟机

先创建一个目录:

$ mkdir -p ~/workspace/vagrant/cdh

初始化,使用 centos6.5 box:

$ cd ~/workspace/vagrant/cdh
$ vagrant init centos6.5

输出如下日志:

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

在当前目录生成了 Vagrantfile 文件。

修改Vagrantfile

修改文件如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  (1..3).each do |i|
    config.vm.define vm_name = "cdh#{i}"  do |config|
        config.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--name", vm_name, "--memory", "2048",'--cpus', 1]
        end
        config.vm.box = "centos6.5"
        config.vm.hostname =vm_name
        config.ssh.username = "vagrant"
        config.vm.network :private_network, ip: "192.168.56.12#{i}"
	  	config.vm.provision :shell, :path => "bootstrap.sh"
    end
  end
end

上面的文件中定义了三个虚拟机,三个虚拟机的名字和 hostname 分别为cdh1、cdh2、cdh3,网络使用的是 host-only 网络。

在启动成功之后,会运行 bootstrap.sh 脚本,你可以编写你自己的脚本。

启动虚拟机

执行以下命令会依次启动三个虚拟机:

$ vagrant up

启动成功之后,就可以通过 ssh 登陆到虚拟机:

$ vagrant ssh cdh1

虚拟机的初始化设置

创建好的虚拟机有很多地方没有设置,有一些软件没有安装,可以编写一个shell脚本(例如,命名为 bootstrap.sh)进行手动执行,也可以通过provision启动之后自动运行。该脚本内容如下:

#!/usr/bin/env bash

# The output of all these installation steps is noisy. With this utility
# the progress report is nice and concise.
function install {
    echo Installing $1
    shift
    yum -y install "$@" >/dev/null 2>&1
}

echo "Update /etc/hosts"
cat > /etc/hosts <<EOF
127.0.0.1       localhost

192.168.56.121 cdh1
192.168.56.122 cdh2
192.168.56.123 cdh3
EOF

echo "Remove unused logs"
sudo rm -rf /root/anaconda-ks.cfg /root/install.log /root/install.log.syslog /root/install-post.log

echo "Disable iptables"
setenforce 0 >/dev/null 2>&1 && iptables -F

### Set env ###
echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

echo "Setup yum repos"
rm -rf /etc/yum.repos.d/*
cp /vagrant/*.repo /etc/yum.repos.d/
yum clean all >/dev/null 2>&1

echo "Setup root account"
# Setup sudo to allow no-password sudo for "admin". Additionally,
# make "admin" an exempt group so that the PATH is inherited.
cp /etc/sudoers /etc/sudoers.orig
echo "root            ALL=(ALL)               NOPASSWD: ALL" >> /etc/sudoers
echo 'redhat'|passwd root --stdin >/dev/null 2>&1

echo "Setup nameservers"
# http://ithelpblog.com/os/linux/redhat/centos-redhat/howto-fix-couldnt-resolve-host-on-centos-redhat-rhel-fedora/
# http://stackoverflow.com/a/850731/1486325
echo "nameserver 8.8.8.8" | tee -a /etc/resolv.conf
echo "nameserver 8.8.4.4" | tee -a /etc/resolv.conf

echo "Setup ssh"
[ ! -d /root/.ssh ] && ( mkdir /root/.ssh ) && ( chmod 600 /root/.ssh  ) && yes|ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ""

install Git git
install "Base tools" vim wget curl
install "Hadoop dependencies" expect rsync pssh

install PostgreSQL postgresql-server postgresql-jdbc
sudo -u postgres createuser --superuser vagrant
sudo -u postgres createdb -O vagrant test1
sudo -u postgres createdb -O vagrant test2

echo 'All set, rock on!'

以上脚本主要做了以下几件事:

  • 设置hosts文件
  • 设置公网网络下的命名服务解析
  • 关掉防火墙
  • 设置虚拟机时区
  • 修改root帐号密码为redhat
  • 生成ssh公要文件
  • 配置yum源并安装一些常用软件

以上所有配置可以在 这里找 找到,其中 cdh.repo 内容如下:

[cdh]
name=cdh
baseurl=http://192.168.56.1/cdh/5.2.0/
enabled=1
gpgcheck=0

[hadoop-repo]
name=hadoop-repo
baseurl=http://192.168.56.1/hadoop-repo/
enabled=1
gpgcheck=0

上面文件包括 cdh 和 hadoop 相关的一些依赖,这些需要通过 apache 服务在宿主机上配置好。

安装hadoop

可以参考这些文章

你可以参考上面的文章手动安装 hadoop,也可以通过我写的 shell 脚本来安装。

步骤:

1.在虚拟机中选择一个节点为管理节点,然后下载仓库

$ git clone https://github.com/javachen/hadoop-install.git

2.进入 hadoop-install/shell 目录,参考 READEME.md 中说明来安装集群。

时间: 2024-09-14 12:31:06

使用Vagrant创建虚拟机安装Hadoop的相关文章

sdk-Intel HAXM 已安装但是Eclipse创建虚拟机无加速选项??

问题描述 Intel HAXM 已安装但是Eclipse创建虚拟机无加速选项?? RT 求高手留下QQ 我加您 我是个初学者感谢赐教 解决方案 这不是android studio的avd才会有此选项吗 解决方案二: 不是~是 eclipse

《OpenStack云计算实战手册(第2版)》一1.2 使用VirtualBox和Vagrant创建一个沙盒环境

这里假设用来搭建测试环境的计算机具有足够强的处理能力,支持硬件虚拟化(如 Intel VT-X和 AMD-V技术)并且至少有8GB内存.时刻牢记,我们正在创建一个虚拟环境用来玩转虚拟机,所以机器的内存容量越大越好. 准备工作 首先,必须从http://www.virtualbox.org/下载VirtualBox,然后按照安装步骤操作. 此外,还需要下载安装Vagrant,后面的章节将会详述. 本书所有操作都假设你安装OpenStack的底层操作系统是Ubuntu 12.04 LTS.但无须下载

在Ubuntu上单机安装Hadoop

最近大数据比较火,所以也想学习一下,所以在虚拟机安装Ubuntu Server,然后安装Hadoop. 以下是安装步骤: 1. 安装Java 如果是新机器,默认没有安装java,运行java –version命名,看是否可以查看Java版本,如果未安装Java,这运行以下命名: # Update the source list $ sudo apt-get update # The OpenJDK project is the default version of Java # that is

《Spark与Hadoop大数据分析》一一2.4 安装 Hadoop 和 Spark 集群

2.4 安装 Hadoop 和 Spark 集群 在安装 Hadoop和Spark之前,让我们来了解一下 Hadoop和Spark的版本.在 Cloudera.Hortonworks和MapR这所有三种流行的Hadoop发行版中,Spark都是作为服务提供的.在本书编写的时候,最新的Hadoop和Spark版本分别是2.7.2和2.0.但是,Hadoop发行版里可能是一个较低版本的Spark,这是因为Hadoop和 Spark 的发行周期并不同步.对于后续章节的实践练习,我们会使用来自 Clou

《Spark与Hadoop大数据分析》——2.4 安装 Hadoop 和 Spark 集群

2.4 安装 Hadoop 和 Spark 集群 在安装 Hadoop和Spark之前,让我们来了解一下 Hadoop和Spark的版本.在 Cloudera.Hortonworks和MapR这所有三种流行的Hadoop发行版中,Spark都是作为服务提供的.在本书编写的时候,最新的Hadoop和Spark版本分别是2.7.2和2.0.但是,Hadoop发行版里可能是一个较低版本的Spark,这是因为Hadoop和 Spark 的发行周期并不同步. 对于后续章节的实践练习,我们会使用来自 Clo

virtualbox虚拟机安装Windows8图文教程

virtualbox虚拟机安装Windows8图文教程 1.双击virtualbox安装文件 2.点击Browse选择安装目录,默认安装是c盘下,我个人安装到e盘.修改好目录后,可以点击Disk Usage看下安装所需的硬盘空间,然后直接下一步安装 3.创建快捷方式 4.安装完毕后打开的界面

手动安装Hadoop集群的过程

最近又安装 Hadoop 集群,由于一些原因,没有使用 Hadoop 管理工具或者自动化安装脚本来安装集群,而是手动一步步的来安装,本篇文章主要是记录我手动安装 Hadoop 集群的过程,给大家做个参考. 这里所说的手动安装,是指一步步的通过脚本来安装集群,并不是使用一键安装脚本或者一些管理界面来安装. 开始之前,还是说明一下环境: 操作系统:CentOs6.4 CDH版本:4.7.0 节点数:4个 在开始之前,你可以看看我以前写的一篇文章 使用yum安装CDH Hadoop集群,因为有些细节已

Ubuntu 14(64位) 集群环境下如何安装Hadoop 2.4

经过前边的积累,今天终于实现了集群环境下部署Hadoop,并成功运行了官方的例子. 工作如下: 两台机器: NameNode:上网小本,3G内存,机器名:YP-X100e,IP:192.168.101.130. DataNode:虚拟机,Win7下载VMWare10中虚拟Ubuntu14,虚拟机器名:ph-v370,IP:192.168.101.110 确保可互相ping通,按照机器名和IP配置各自机器的/etc/hosts文件和/etc/hostname文件,我的hosts配置内容如下 127

xen虚拟化实战系列(二)xen虚拟机安装

准备Linux虚拟系统安装源 #可以使用HTTP.FTP或NFS等方式提供给Xen虚拟机用于系统的安装.这里采用ftp方式进行安装,非常简便与快速. 1)安装vsftpd服务 # yum install -y vsftpd # service vsftpd start 2)挂载光盘到ftp匿名目录 # mount /dev/cdrom /var/ftp/pub/ 说明: vsftpd安装好后就支持匿名访问. 2.  创建虚拟机 1)开始安装 # virt-install –prompt 说明: