Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. To log on to a virtual machine, use the vagrant ssh command; for example:

    Code Block
    vagrant ssh c7001
    
    LMBP:centos7.0 lkg$ vagrant ssh c7001
    Last login: Tue Jan 12 11:20:28 2016
    [vagrant@c7001 ~]$  

    From this point onward, this terminal window operates within the virtual machine until you exit the virtual machine. All commands go to the VM, not to your Mac.

    Recommendation: Open a second terminal window for your Mac. This is useful when accessing the Ambari Web UI. To distinguish between the two, terminal windows typically list the computer name or VM hostname on each command-line prompt and at the top of the terminal window.

  2. When you first access the VM you will be logged in as user vagrant. Switch to the root user:

    Code Block
    [vagrant@c7001 ~]$ sudo su -
    
    Last login: Sun Sep 25 01:34:28 AEST 2016 on pts/0
    root@c7001:~#  
  3. When you are finished using the VM:
    1. Use the logout command to log out of root
    2. Use the exit command to return to your host machine (Mac).

At this point, the VMs are still running in the background. You can either suspend or remove the virtual machines; for more information, see the Vagrant and snapshot commands described later in this post.  (Note: http://help.skytap.com/VM_Sequencing.html, and best practices?)

...

Install Ambari on the Virtual Machines

...

  1. From the terminal window on the VM where you want to run the main Ambari service, download the Ambari repository. The following commands download Ambari version 2.4.1.0 and install ambari-server. To install a different version of Ambari, specify the appropriate repo URL. Choose the appropriate commands for the operating system on your VMs:

    OSCommands
    CentOS 6
    wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo 

    yum install ambari-server -y
    CentOS 7wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

    yum install ambari-server -y
    Ubuntu 12
    wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu12/2.x/updates/2.4.1.0/ambari.list -O /etc/apt/sources.list.d/ambari.list

    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
    apt-get update
    apt-get install ambari-server -y
     Ubuntu 14wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.1.0/ambari.list -O /etc/apt/sources.list.d/ambari.list

    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD

    apt-get update

    apt-get install ambari-server -y
  2. To install Ambari with default settings, set up and start ambari-server:

    Code Block
    ambari-server setup -s
    ambari-server start

    For more information about installation options and settings, see see Apache Ambari User Guides.

  3. (Optional) For frontend developers only: see "Frontend Development" (later on this page) for extra setup instructions.

  4. Installation.

  5. After Ambari Server has Once Ambari Server is started, access the Ambari Web UI at http://<hostname>.ambari.apache.org:8080. For example:

    Code Block
    http://c6401c7001.ambari.apache.org:8080

    The URL depends on the OS and the node where you installed Ambari
    Note: The Ambari Server can take some time to launch and be ready to accept connections. Keep trying the URL until you see the login page.

  6. Login using default username admin, password admin.

  7. Choose "Launch Install Wizard."

  8. Name Specify a name for your cluster.

  9. On the Install Options page, list the FQDNs of the VMsvirtual machines. For example:

    Code Block
    c6401c7001.ambari.apache.org
    c6402c7002.ambari.apache.org
    c6403c7003.ambari.apache.org
    

    Alternatively, you can use a range expression:

    Code Block
    c64c70[01-03].ambari.apache.org
    
  10. Upload the insecure_private_key file that you created earlier.

  11. Specify non-root SSH user vagrant.

  12. Follow the onscreen Continue stepping through on-screen instructions to install your cluster.

...

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 c64[04-10] in Vagrantfile so that the snapshot commands only operate on c64[01-03].


Note: Upon resuming a snapshot, you may find that time-sensitive services may be down (e.g, HBase RegionServer is down, etc.)

Tip: After starting the VMs but before you do anything on the VMs, run "vagrant snapshot take init".  This way, you can go back to the initial state of the VMs by running "vagrant snapshot go init"; this only takes seconds (much faster than starting the VMs up from scratch by using up.sh or "vagrant up").  Another advantage of this is that you can always go back to the initial state without destroying other named snapshots that you created.

Misc

To test OS’s other than what’s currently in the ambari-vagrant repo, please see http://www.vagrantbox.es/ for 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.

Pre-Configured Development Environment

Simply edit Vagrantfile to launch a VM with all the tools necessary to build Ambari from source.

Code Block
cd ambari-vagrant/centos6.4
vi Vagrantfile  <- uncomment the line with "dev-bootstrap.sh"
vagrant up c6401

To build from source, follow the instructions in Ambari Development.

Frontend Development

You can use this set up to develop and test out Ambari Web frontend code against a real Ambari Server on a multi-node environment.

On the host machine:

Code Block
cd ambari-vagrant/centos6.4
git clone https://git-wip-us.apache.org/repos/asf/ambari.git ambari
cd ambari/ambari-web
npm install
brunch w

On c6401 (where Ambari Server is installed):

Code Block
cd /usr/lib/ambari-server
mv web web-orig
ln -s /vagrant/ambari/ambari-web/public web
ambari-server restart

With this setup, whenever you change the content of ambari-web files (under ambari-vagrant/ambari/) on the host machine, brunch will pick up changes in the background and update ambari-vagrant/ambari/ambari-web/public.  Because of the symbolic link, the changes are automatically picked up by Ambari Server.  All you have to do is hit refresh on the browser to see the frontend code changes reflected.

Not seeing code changes as expected?  If you have run the maven command to build Ambari previously, you will see files called app.js.gz and vendor.js.gz under the public folder.  You need to delete these files for the frontend code changes to be effective, as the app.js.gz and vendor.js.gz files take precedence over app.js and vendor.js, respectively.