Versions Compared

Key

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

...

The following uses Ambari git for the development process. Please keep in mind git is read only and patches will have to be uploaded and committed via svn.

Code Block

git clone git://git.apache.org/ambari.git

...


cd ambari
git checkout -b AMBARI-666 origin/AMBARI-666

We'll refer to the top-level "ambari" directory as AMBARI_DIR in this document.

Building Ambari

After checking out Ambari, you can build ambari with the steps below:

Code Block

$ mvn clean install 

Note: The above is for just building the jars. See below for starting/deploying the server Ambari Server and the agentAmbari Agent.

Building Artifacts and Running the Server/Agent

To build tarball artifacts run:

Code Block

$ mvn clean package assembly:assembly

This will build the server/agent Server and Agent tarballs.

NOTE: Run everything as root below. This will change as we go forward but for now run everything as root.

For running the server:

...

Running the Ambari Server:

Execute the following, where INSTALL_DIR is a directory where you want to run the Server:

Code Block

$ cp ambari-server/target/ambari-server-\*-dist.tar.gz INSTALL_DIR

...


$ cd INSTALL_DIR

...


$ tar \-zxvf ambari-server-*-dist.tar.gz

Edit the Ambari properties configuration file:

$ vim /etc/ambari/ambari.properties
Add the following entry:

security.server.keys_dir=INSTALL_DIR/ambari-server-1.0.3-SNAPSHOT/keystore

NOTE: replace INSTALL_DIR will have to be replaced with the actual path in the config file.

Code Block

$ cd ambari-server-*

...


$ export AMBARI_PASSPHRASE="tmp"

...


$ cp /etc/ambari/ambari.properties etc/ambari-server/conf/

...


$ java -cp etc/ambari-server/conf/:lib/ambari-server/* org.apache.ambari.server.controller.AmbariServer

NOTE: the conf directory should come first in the java classpath . Unfortunately, because guice-persist.jar includes a log4j.properties which causes our will cause the Ambari log4j.properties to not load.

The server Server will come up launch and run as a foreground process. Scripting will come later as we move along to run the server with proper confs/envs.

To check if the server is up running and healthy, you can go to:

Code Block

http://

...

localhost:8080/api/check

...


The status will show as running. or Or from a command line, you can dorun:

Code Block

curl localhost:8080/api/check

NOTE: The health check is static as of now and will change laterresponse for now.

Running the

...

Ambari Agent.

The agent Ambari Agent requires python 2.6 to run on a host. RHEL5/Centos5 have CentOS5 has python 2.4 installed by default. To install python 2.6 (NOTE: you can install both 2.4/2.6 on the host), install the epel repo and then run:

Code Block

$ yum install python26.

Python needs setuptools to be able to setup the project for development. Download http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086 and then run:

Code Block

$ sh setuptools-0.6c11-py2.6.egg

To setup the ambari agentAmbari Agent:

Code Block

$ mkdir -p /var/ambari /var/run/ambari /var/log/ambari /tmp/ambari-agent/
  1. The following dev process is easier than using setup.py and is a quicker turnaround. As soon as we have a good deployment story (rpm) we will add those in.

...

Ambari Web uses Brunch (http://brunch.io/) as the application assembler for development purposes.
Brunch is used to build and deploy automatically in the background as the developer modifies source files (JS, LESS/CSS, Handlebars template files).
It Brunch can also start up a Node.js-based web server with a single command so that you can easily run the application from the application root directory without any special configuration.

To build, deploy, and run Ambari Web:1.

  1. Install NodeJS and NPM from http://nodejs.org/download/

...

  1. Install Brunch
    Code Block
    $ npm install -g brunch

...

  1. Download dependent packages into ambari-web/node_modules directory
    Code Block
    
    $ cd AMBARI_DIR/ambari-web

...

  1. 
    $ npm install
    

To run ambari-web Ambari Web so that it works with mock data independently from ambari-server:
$ brunch watch Ambari Server:

Code Block

$ brunch watch --server (or simply "brunch w --s") 

Hit Access http://localhost:3333 from your web browser
. When you change ambari-web Ambari Web source files, changes are immediately reflected when you hit http://localhost:3333/*Image Removed.

To run ambari-web with ambari-server integration
$ cd Ambari Web with Ambari Server integration:

Code Block

$ cd AMBARI_DIR

...


$ mvn clean package assembly:assembly

Note that : currently the mvn command does not put ambari-web in the Maven-generated package. This will be fixed in the future.

Code Block

$ cd AMBARI_DIR/ambari-server/ambari/target/ambari-server-\*\-dist/ambari-server\-\*

...


$ java -cp etc/ambari-server/conf/:lib/ambari-server/* org.apache.ambari.server.controller.AmbariServer

...


$ cd AMBARI_DIR/ambari-web

...


$ brunch watch

Hit Access http://localhost:8080 from your web browser
. When you change ambari-web Ambari Web source files, changes are immediately reflected when you hit http://localhost:8080/*Image Removed.

Setting up Ambari in Eclipse

Code Block

$ mvn clean eclipse:eclipse

After doing the above you should be able to import the project via eclipse's import project. You should be able to see the following projects on eclipse:

...