Skip to content

sequenceiq/docker-ambari

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ambari on Docker

This projects aim is to help you to get started with Ambari.

Please note that this project is not officially supported by Hortonworks and may not be suitable for production use. It can be used to experiment with Hadoop on Docker but for a complete and supported solution please check out Cloudbreak.

Install Docker

Follow the description at the docker getting started page for your appropriate OS: (Linux, Mac, Windows)

OSX

Ambari containers started by ambari-function are using bridge networking. This means that you will not be able to communicate with containers directly from host unless you specify the route to containers. You can do this with:

# Getting the IP of docker-machine or boot2docker
docker-machine ip <name-of-docker-vm>
# or
boot2docker ip

# Setting up the
sudo route add -net 172.17.0.0/16 <docker-machine or boot2docker>
# e.g:
sudo route add -net 172.17.0.0/16 192.168.99.100

Note: the above mentioned route command will not survive a reboot and you need to execute again after reboot of your machine.

Starting containers

This will start (and download if you never used it before) an image based on Centos 7 with pre-installed Ambari 2.2.0 ready to install HDP 2.3.

This git repository also contains an ambari-functions script which will launch all the necessary containers to create a fully functional cluster. Download the file and source it:

. ambari-functions or source ambari-functions

Now you can issue commands with amb-prefix like:

amb-settings

To start a 3 node cluster:

amb-start-cluster 3

It will launch containers like this (1 Ambari server 2 agents 1 consul server):

CONTAINER ID        IMAGE                          COMMAND                  STATUS              NAMES
52b563756d26        hortonworks/ambari-agent       "/usr/sbin/init syste"   Up 9 seconds        amb2
ddfc8f00d30a        hortonworks/ambari-agent       "/usr/sbin/init syste"   Up 10 seconds       amb1
ca87a0fb6306        hortonworks/ambari-server      "/usr/sbin/init syste"   Up 12 seconds       amb-server
7d18cc35a6b0        sequenceiq/consul:v0.5.0-v6   "/bin/start -server -"    Up 17 seconds       amb-consul

Now you can reach the Ambari UI on the amb-server container's 8080 port. Type the amb-settings for IP:

amb-settings
...
AMBARI_SERVER_IP=172.17.0.17

Cluster deployment via blueprint

Once the container is running, you can deploy a cluster. Instead of going to the webui, we can use ambari-shell, which can interact with ambari via cli, or perform automated provisioning. We will use the automated way, and of course there is a docker image, with prepared ambari-shell in it:

amb-shell

Ambari-shell uses Ambari's Blueprints capability. It posts a cluster definition JSON to the ambari REST api, and 1 more json for cluster creation, where you specify which hosts go to which hostgroup.

Ambari shell will show the progress in the upper right corner.

Multi-node Hadoop cluster

For the multi node Hadoop cluster instructions please take a look at Cloudbreak.

If you don't want to check out the project from github, then just dowload the ambari-fuctions script, source it and deploy a an Ambari cluster:

curl -Lo .amb j.mp/docker-ambari && source .amb && amb-deploy-cluster