Child pages
  • Ambari Shell
Skip to end of metadata
Go to start of metadata

This feature is available after the 1.6.1. version of Ambari

The Ambari Shell's aim is to provide an interactive command line tool which supports: -
  • all functionality available through Ambari web-app 
  • context aware command availability 
  • tab completion  
  • required/optional parameter support
Architecture
The shell is written is Java, and uses the Groovy bases Ambari REST client, and the Spring Shell framework.
Ambari-Shell is distributed as a single-file executable jar. The **uber jar**
is generated with the help of spring-boot-maven-plugin available at: http://docs.spring.io/spring-boot/docs/1.0.1.RELEASE/reference/htmlsingle/#executable-jar
Spring-Boot also provides a helper to launch those jars: http://docs.spring.io/spring-boot/docs/1.0.1.RELEASE/reference/htmlsingle/#executable-jar-launching).
After compiling the project, the shell is ready to use (make sure you use Java 7 or above).

 

>> java -jar ambari-shell/target/ambari-shell-1.3.0-SNAPSHOT.jar --ambari.server=localhost --ambari.port=8080 --ambari.user=admin --ambari.password=admin

    _                _                   _  ____   _            _  _
   / \    _ __ ___  | |__    __ _  _ __ (_)/ ___| | |__    ___ | || |
  / _ \  | '_ ` _ \ | '_ \  / _` || '__|| |\___ \ | '_ \  / _ \| || |
 / ___ \ | | | | | || |_) || (_| || |   | | ___) || | | ||  __/| || |
/_/   \_\|_| |_| |_||_.__/  \__,_||_|   |_||____/ |_| |_| \___||_||_|

Welcome to Ambari Shell. For assistance press tab or use the `hint` command.

For the list of available commands type help
 
ambari-shell>help
* blueprint add - Add a new blueprint with either --url or --file
* blueprint defaults - Adds the default blueprints to Ambari
* blueprint list - Lists all known blueprints
* blueprint show - Shows the blueprint by its id
* cluster assign - Assign host to host group
* cluster autoAssign - Automatically assigns hosts to different host groups base on the provided strategy
* cluster build - Starts to build a cluster
* cluster create - Create a cluster based on current blueprint and assigned hosts
* cluster delete - Delete the cluster
* cluster preview - Shows the currently assigned hosts
* cluster reset - Clears the host - host group assignments
* configuration download - Downloads the desired configuration
* configuration modify - Modify the desired configuration
* configuration set - Sets the desired configuration
* configuration show - Prints the desired configuration
* debug off - Stops showing the URL of the API calls
* debug on - Shows the URL of the API calls
* exit - Exits the shell
* hello - Prints a simple elephant to the console
* help - List all commands usage
* hint - Shows some hints
* host components - Lists the components assigned to the selected host
* host focus - Sets the useHost to the specified host
* host list - Lists the available hosts
* quit - Exits the shell
* script - Parses the specified resource file and executes its commands
* services components - Lists all services with their components
* services list - Lists the available services
* services start - Starts a service/all the services
* services stop - Stops a service/all the running services
* tasks - Lists the Ambari tasks
* version - Displays shell version

Please note that all commands are context aware - and are available only when it makes sense. 
For example the `cluster create` command is not available until a `blueprint` has not been added or selected. 
A good approach is to use the `hint` command - as the Ambari UI, this will give you hints about the available commands and the flow of 
creating or configuring a cluster. You can always use TAB for completion or available parameters.
 
ambari-shell>hello

                    .-.._
              __  /`     '.
           .-'  `/   (   a \
          /      (    \,_   \
         /|       '---` |\ =|
        ` \    /__.-/  /  | |
           |  / / \ \  \   \_\
           |__|_|  |_|__\


ambari-shell>blueprint defaults
 
  BLUEPRINT              STACK
  ---------------------  -------
  multi-node-hdfs-yarn   HDP:2.0
  single-node-hdfs-yarn  HDP:2.0
 
ambari-shell>cluster build --blueprint single-node-hdfs-yarn
ambari-shell>cluster assign --hostGroup host_group_1 --host server.ambari.com
 
	HOSTGROUP     HOST
  ------------  -----------------
  host_group_1  server.ambari.com

ambari-shell>cluster create
ambari-shell>tasks
 
  TASK                        STATUS
  --------------------------  -------
  HISTORYSERVER INSTALL       QUEUED
  ZOOKEEPER_SERVER START      PENDING
  ZOOKEEPER_CLIENT INSTALL    PENDING
  HDFS_CLIENT INSTALL         PENDING
  HISTORYSERVER START         PENDING
  NODEMANAGER INSTALL         QUEUED
  NODEMANAGER START           PENDING
  ZOOKEEPER_SERVER INSTALL    QUEUED
  YARN_CLIENT INSTALL         PENDING
  NAMENODE INSTALL            QUEUED
  RESOURCEMANAGER INSTALL     QUEUED
  NAMENODE START              PENDING
  RESOURCEMANAGER START       PENDING
  DATANODE START              PENDING
  SECONDARY_NAMENODE START    PENDING
  DATANODE INSTALL            QUEUED
  MAPREDUCE2_CLIENT INSTALL   PENDING
  SECONDARY_NAMENODE INSTALL  QUEUED
 
Summary
To sum it up in less than two minutes watch this video: https://asciinema.org/a/9783

 

  • No labels