Beyond HDP Sandbox
Ruby Puppet Shell Python Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ansible
bin
blueprints
conf
inc
puppet
.gitignore
README.md
Vagrantfile
master_blueprint.json

README.md

vagrant-hdp: Beyond HDP Sandbox

Quickly setup devolping or demo cluster based on Hortonworks HDP Platform on multiple virtual host providers like Azure, Virtualbox, VMWare, Amazon Webservice, etc. (Currently only Azure and VirtualBox supported).

Install

  1. VirtualBox
  2. Vagrant (1.7+)
  3. Vagrant Plugins: ** Vagrant Hosts vagrant plugin install vagrant-hosts ** Vagrant Cachier (for Repo caching) vagrant plugin install vagrant-cachier
  4. git clone git@github.com:hkropp/vagrant-hdp.git

Example

After installing VirtualBox and Vagrant it should be enough to run vagrant up inside vagrant-hdp folder.

$ cd vagrant-hdp
$ vagrant up

By default the Vagrantfile will pick up the configuration under conf/hdp.rb and conf/nodes.rb.

HDP Example Environment

The HDP environment can be configured using conf/hdp.rb:

{
    :hdp_ambari => "2.0.0",
    :hdp_os => "centos6",
    :hdp_stack => "2.2",
    :hdp_update => "2.2.4.2",
    :hdp_util => "1.1.0.20",
    :vagrant_provider => "virtualbox", # "azure",
    :ambari_node => "one.hdp", "n01-hdp-vagrant-demo.cloudapp.net",
}

Node Setup

Multiple nodes can be configured using conf/nodes.rb:

[
    {
        :name => "one.hdp", 
        :cpu => 8, 
        :mem => 9216, 
        :ip => "192.168.33.100", 
        :manifest_file => "one.pp",
        :tcp_endpoints => "8080,8443,10000,10001,4040,4041,9083,8020,50070,50075,6080,8881,8882", 
    }
]

Node Manifest

By default this manifest is being used for the one node manifest/one.pp:

include interfering_services
include ntp
include hdp_mysql
include ambari_views::file_view
include ambari_views::hive_view
include ambari_views::capacity_scheduler_view
include ambari_services::zeppelin_service

class {'etchosts':
    ownhostname => $ownhostname
}

# Install and enable ambari server
class { 'ambari_server':
  ambari => $hdp_ambari,
  os => $hdp_os, 
  stack => $hdp_stack,
  update => $hdp_update,
  util => $hdp_util,
}

# Install and enable ambari agent
class { 'ambari_agent':
  ownhostname    => $ownhostname,
  serverhostname => $ambarihostname,
  ambari => $hdp_ambari,
  os => $hdp_os,
}

# Establish ordering
Class['interfering_services'] -> Class['ntp'] -> Class['etchosts'] -> Class['hdp_mysql'] -> Class['ambari_server'] -> Class['ambari_agent'] 
-> Class['ambari_views::file_view'] -> Class['ambari_views::hive_view'] -> Class['ambari_views::capacity_scheduler_view'] -> Class['ambari_services::zeppelin_service']