You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Quick Start Guide - Installing a cluster with Ambari (with local VMs)

This document shows how to quickly set up a cluster using Ambari on your local machine using virtual machines.
This utilizes VirtualBox and Vagrant so you will need to install both.
Note that the steps were created and tested on MacOS 10.8.4.

Setup

Install VirtualBox from: https://www.virtualbox.org/wiki/Downloads
Install Vagrant from: http://downloads.vagrantup.com

After you have installed VirtualBox and Vagrant on your computer, check out the “ambari-vagrant” repo on github:

git clone https://github.com/u39kun/ambari-vagrant.git

Edit your /etc/hosts on your computer so that you will be able to resolve hostnames for the VMs:

sudo cat ambari-vagrant/append-to-etc-hosts.txt >> /etc/hosts

Copy the private key to your home directory (or some place convenient for you) so that it’s easily accessible for uploading via Ambari Web:

vagrant

The above command shows the command usage and also creates the private key

cp ~/.vagrant.d/insecure_private_key ~

Starting VMs

First, change directory to ambari-vagrant:

cd ambari-vagrant

You will see subdirectories for different OS’s. “cd” into the OS that you want to test. centos6.4 is recommended as this is quicker to launch than other OS's.
Now you can start VMs with the following command:

./up.sh <# of VMs to launch>

For example, up.sh 3 starts 3 VMs. 3 seems to be a good number with 16GB of RAM without taxing the system too much.
With the default Vagrantfile, you can specify up to 10 (if your computer can handle it; you can even add more).
VMs will have the FQDN <os-code>[01-10].ambari.apache.org, where <os-code> is c59 (CentOS 5.9), c64 (CentOS 6.4), etc.
E.g., c5901.ambari.apache.org, c6401.ambari.apache.org, etc.
VMs will have the IP address 192.168.<os-subnet>.1[01-10], where <os-subnet> is 59 for CentOS 5.9, 64 for CentOS 6.4, etc.
E.g., 192.168.59.101, 192.168.64.101, etc.
Note that up.sh 3 command is equivalent to doing something like: vagrant up /c640[1-3]/

Testing Ambari

Log into the VM:

vagrant ssh c6401

Note that this logs you in as user vagrant. Once you are logged in, you can run:

sudo su -

to make yourself root. Ambari offers many installation options (see http://incubator.apache.org/ambari/current/installing-hadoop-using-ambari/content/index.html), but to get up and running quickly with default settings, you can run the following:

wget http://public-repo-1.hortonworks.com/ambari/centos6/1.x/GA/ambari.repo
cp ambari.repo /etc/yum.repos.d
yum install ambari-server -y
ambari-server setup -s
ambari-server start

Once Ambari Server is started, hit http://c6401.ambari.apache.org:8080 (URL depends on the OS being tested) from your browser on your local computer.
Note that Ambari Server can take some time to fully come up and ready to accept connections. Keep hitting the URL until you get the login page.

Once you are at the login page, login with the default username admin and password admin.
On the Install Options page, use the FQDNs of the VMs. For example:

c6401.ambari.apache.org
c6402.ambari.apache.org
c6403.ambari.apache.org

Alternatively, you can use a range expression:

c64[01-03].ambari.apache.org

Specify the the non-root SSH user vagrant, and upload insecure_private_key file that you copied earlier as the private key.

Follow the onscreen instructions to install your cluster.

When done testing, run vagrant destroy -f to purge the VMs.

Basic VM Operations

vagrant up <vm name>
Starts a specific VM. up.sh is a wrapper for this call.
Note: if you don’t specify the <vm name> parameter, it will try to start 10 VMs
You can run this if you want to start more VMs after you already called up.sh
For example: vagrant up c6406

vagrant destroy -f
Destroys all VMs launched from the current directory (deletes them from disk as well)
You can optionally specify a specific VM to destroy

vagrant suspend
Suspends (snapshot) all VMs launched from the current directory so that you can resume them later
You can optionally specify a specific VM to suspend

vagrant resume
Resumes all suspended VMs launched from the current directory
You can optionally specify a specific VM to resume

vagrant ssh host
Starts a SSH session to the host. For example: vagrant ssh c6401

vagrant status
Shows which VMs are running, suspended, etc.

Modifying RAM for the VMs

Each VM is allocated 2GB of RAM. These can be changed by editing Vagrantfile. To change the RAM allocation, modify the following line:

vb.customize ["modifyvm", :id, "--memory", 2048] 

Taking Snapshots

Vagrant makes it easy to take snapshots of the entire cluster.
First, install the snapshot plugin:

vagrant plugin install vagrant-vbox-snapshot --plugin-version=0.0.2

This enables the “vagrant snapshot” command. Note that the above installs vesion 0.0.2. if you install the latest plugin version 0.0.3 does not allow taking snapshots of the whole cluster at the same time (you have to specify a VM name).
Run vagrant snapshot to see the syntax.
Note that the plugin tries to take a snapshot of all VMs configured in Vagrantfile. If you are always using 3 VMs, for example, you can comment out c6404-10 in Vagrantfile so that the snapshot commands only operate on c6401-03.
Note: Upon resuming a snapshot, you may find that time-sensitive services may be down (e.g, HBase RegionServer is down, etc.)

Misc

All VMs launched will have a directory called /vagrant inside the VM. This maps to the ambari-vagrant/<os> directory on your local computer. You can use this shared directory mapping to push files, etc.

If you want to test OS’s other than what’s currently in the ambari-vagrant repo, please see http://www.vagrantbox.es/ for all the readily available OS images you can test. Note that Ambari currently works on RHEL 5/6, CentOS 5/6, Oracle Linux 5/6, SUSE 11, and SLES 11. Ubuntu support is work in progress.

  • No labels