...
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/ |
- 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.
- Install NodeJS and NPM from http://nodejs.org/download/
...
- Install Brunch
Code Block $ npm install -g brunch
...
- Download dependent packages into ambari-web/node_modules directory
Code Block $ cd AMBARI_DIR/ambari-web
...
$ 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/*.
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/*.
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:
...