Hi Nate - thanks a lot for the response.

I guess the peculiar thing for a newcomer to Ambari is that running the server 
seems to involve the same process, whether you’re a developer hacking on source 
or an end user installing from a deb/apt package. This is to say, that running 
the server generally requires installing an apt/deb package. There doesn’t 
appear to be a straightforward way to just clone the source and start the 
thing, as is typical, even with the basic dependencies like Postgres in place.

So that all said, what’s the process for running locally? I actually tried this 
previously (on OS X) using some pointers and properties from Jonathan Hurley, 
but the server just didn’t seem to run very well, and I got the sense that 
despite using platform independent technologies, that this project just wasn’t 
really setup to run outside of a platform specific deb/apt install. I’d love to 
run locally though, and to help enhance things in that area. But to start, do 
you have any specific pointers/resources you can share towards addressing each 
of the bullet points you highlighted? If it makes sense to start throwing this 
stuff on the wiki, please feel free.

Cheers,
Jonathan

From: Nate Cole <[email protected]<mailto:[email protected]>>
Reply-To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Date: Friday, June 26, 2015 at 6:18 AM
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: Re: Dev workflow

Other’s have commented; I personally have development working locally with 
Eclipse, but it is a bit more work to get going.  The benefit is you don’t have 
to build rpm or even jar - just run locally.  Debugging becomes inline and can 
recompile while the server is running.  Easy.

* Install Vagrant only for use with Ambari’s agents.  This is because the agent 
code is pretty specific to directory locations and linux commands, etc.
* Run Ambari Server locally out of an IDE
* * This requires setting up your local machine with Postgres
* * Setting several values in ambari.properties to reference local directories 
instead of deployed locations.  I have attached the one I use, replace SRC_HOME 
and ETC_HOME appropriately.  (May have some deprecated properties, I don’t 
update it often).
* * Setting database values in the properties file to reference local 
filesystem.
* * When using an IDE, when you start Ambari, add a directory to the classpath 
that has the ETC_HOME directory.
* Have the ability to copy agent python files to vagrant.  I have several 
helper scripts to do this with mapped directories.
* Successfully build ambari-web locally.  UI folks use brunch to ease 
development, for backend it’s enough to build maven.
* Successfully build ambari-views.
* When the UI is loading and installing a clusters, agents should registered 
manually, not bootstrapped.  (openssl directory assumptions don’t match up for 
me and it was just painful)

I’m not sure if this has ever been documented.  If you choose to go this route 
and don’t find any documentation we can get a wiki started for “local 
development.”  To my knowledge only a few have done it this way.  You can PM me 
at [email protected]<mailto:[email protected]> to work through any issues you see 
or setup a hangout to discuss.

Thanks,
Nate

Reply via email to