<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2015-07-09
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20150709" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Metadata and Governance - Building & Installing Apache Atlas</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>

                          
        
<script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script>
          
            </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container" style="width: 68%;"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Atlas <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="About">About</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS"  title="Wiki">Wiki</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS"  title="News">News</a>
</li>
                  
                      <li>      <a href="https://git-wip-us.apache.org/repos/asf/incubator-atlas.git"  title="Git">Git</a>
</li>
                  
                      <li>      <a href="https://svn.apache.org/repos/asf/incubator/atlas"  title="Svn">Svn</a>
</li>
                  
                      <li>      <a href="https://issues.apache.org/jira/browse/ATLAS"  title="Jira">Jira</a>
</li>
                  
                      <li>      <a href="https://cwiki.apache.org/confluence/display/ATLAS/PoweredBy"  title="Powered by">Powered by</a>
</li>
                  
                      <li>      <a href="http://blogs.apache.org/atlas/"  title="Blog">Blog</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="project-info.html"  title="Summary">Summary</a>
</li>
                  
                      <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                  
                      <li>      <a href="http://webchat.freenode.net?channels=apacheatlas&uio=d4"  title="IRC">IRC</a>
</li>
                  
                      <li>      <a href="team-list.html"  title="Team">Team</a>
</li>
                  
                      <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                  
                      <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                  
                      <li>      <a href="license.html"  title="License">License</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="http://www.apache.org/dyn/closer.cgi/incubator/atlas/0.5.0-incubating/"  title="0.5-incubating">0.5-incubating</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="0.5.0-incubating/index.html"  title="current">current</a>
</li>
                  
                      <li>      <a href="0.5.0-incubating/index.html"  title="0.5-incubating">0.5-incubating</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="Overview">Overview</a>
</li>
                  
                      <li>      <a href="QuickStart.html"  title="Getting Started">Getting Started</a>
</li>
                  
                      <li>      <a href="Architecture.html"  title="Architecture">Architecture</a>
</li>
                  
                      <li>      <a href="InstallationSteps.html"  title="Installation">Installation</a>
</li>
                  
                      <li>      <a href="TypeSystem.html"  title="Type System">Type System</a>
</li>
                  
                      <li>      <a href="Configuration.html"  title="Configuration">Configuration</a>
</li>
                  
                      <li>      <a href="Security.html"  title="Security">Security</a>
</li>
                  
                      <li>      <a href="api/rest.html"  title="Rest API">Rest API</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="http://www.apache.org/foundation/how-it-works.html"  title="How Apache Works">How Apache Works</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/"  title="Foundation">Foundation</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/sponsorship.html"  title="Sponsoring Apache">Sponsoring Apache</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/thanks.html"  title="Thanks">Thanks</a>
</li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://atlas.incubator.apache.org" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                            
            
            
            
    <iframe src="http://www.facebook.com/plugins/like.php?href=http://atlas.incubator.apache.org/atlas-docs&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark"
        scrolling="no" frameborder="0"
        style="border:none; width:80px; height:20px; margin-top: 10px;"  class="pull-right" ></iframe>
                        
    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>

        <ul class="nav pull-right"><li style="margin-top: 10px;">
    
    <div class="g-plusone" data-href="http://atlas.incubator.apache.org/atlas-docs" data-size="medium"  width="60px" align="right" ></div>

        </li></ul>
                              
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href=".." id="bannerLeft">
                                                                                                <img src="images/atlas-logo.png"  alt="Apache Atlas" width="200px" height="45px"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://incubator.apache.org" id="bannerRight">
                                                                                                <img src="images/apache-incubator-logo.png"  alt="Apache Incubator"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="index.html" title="Atlas">
        Atlas</a>
        </li>
      <li class="divider ">/</li>
        <li class="">Building & Installing Apache Atlas</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 2015-07-09</li> <li class="divider pull-right">|</li>
              <li id="projectVersion" class="pull-right">Version: 0.6-incubating-SNAPSHOT</li>
            
                            </ul>
      </div>

      
                        
        <div id="bodyColumn" >
                                  
            <div class="section">
<h3>Building &amp; Installing Apache Atlas<a name="Building__Installing_Apache_Atlas"></a></h3></div>
<div class="section">
<h4>Building Atlas<a name="Building_Atlas"></a></h4>
<div class="source">
<pre>
git clone https://git-wip-us.apache.org/repos/asf/incubator-atlas.git atlas

cd atlas

export MAVEN_OPTS=&quot;-Xmx1024m -XX:MaxPermSize=256m&quot; &amp;&amp; mvn clean install

</pre></div>
<p>Once the build successfully completes, artifacts can be packaged for deployment.</p>
<div class="source">
<pre>

mvn clean verify assembly:assembly -DskipTests


</pre></div>
<p>Tar can be found in atlas/target/apache-atlas-${project.version}-bin.tar.gz</p>
<p>Tar is structured as follows</p>
<div class="source">
<pre>

|- bin
   |- atlas_start.py
   |- atlas_stop.py
   |- atlas_config.py
   |- quick_start.py
   |- cputil.py
|- conf
   |- application.properties
   |- client.properties
   |- atlas-env.sh
   |- log4j.xml
|- docs
|- server
   |- webapp
      |- atlas.war
|- README
|- NOTICE.txt
|- LICENSE.txt
|- DISCLAIMER.txt
|- CHANGES.txt


</pre></div></div>
<div class="section">
<h4>Installing &amp; Running Atlas<a name="Installing__Running_Atlas"></a></h4>
<p><b>Installing Atlas</b></p>
<div class="source">
<pre>
tar -xzvf apache-atlas-${project.version}-bin.tar.gz
* cd atlas-${project.version}

</pre></div>
<p><b>Configuring Atlas</b></p>
<p>By default config directory used by Atlas is {package dir}/conf. To override this set environment variable METADATA_CONF to the path of the conf dir.</p>
<p>atlas-env.sh has been added to the Atlas conf. This file can be used to set various environment variables that you need for you services. In addition you can set any other environment variables you might need. This file will be sourced by atlas scripts before any commands are executed. The following environment variables are available to set.</p>
<div class="source">
<pre>
# The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
#export JAVA_HOME=

# any additional java opts you want to set. This will apply to both client and server operations
#export METADATA_OPTS=

# any additional java opts that you want to set for client only
#export METADATA_CLIENT_OPTS=

# java heap size we want to set for the client. Default is 1024MB
#export METADATA_CLIENT_HEAP=

# any additional opts you want to set for atlas service.
#export METADATA_SERVER_OPTS=

# java heap size we want to set for the atlas server. Default is 1024MB
#export METADATA_SERVER_HEAP=

# What is is considered as atlas home dir. Default is the base locaion of the installed software
#export METADATA_HOME_DIR=

# Where log files are stored. Defatult is logs directory under the base install location
#export METADATA_LOG_DIR=

# Where pid files are stored. Defatult is logs directory under the base install location
#export METADATA_PID_DIR=

# where the atlas titan db data is stored. Defatult is logs/data directory under the base install location
#export METADATA_DATA_DIR=

# Where do you want to expand the war file. By Default it is in /server/webapp dir under the base install dir.
#export METADATA_EXPANDED_WEBAPP_DIR=

</pre></div>
<p><b>NOTE for Mac OS users</b></p>
<div class="source">
<pre>
If you are using a Mac OS, you will need to configure the METADATA_SERVER_OPTS (explained above).

In  {package dir}/conf/atlas-env.sh uncomment the following line
#export METADATA_SERVER_OPTS=

and change it to look as below
export METADATA_SERVER_OPTS=&quot;-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=&quot;

</pre></div>
<p><b>Starting Atlas Server</b></p>
<div class="source">
<pre>
bin/atlas_start.py [-port &lt;port&gt;]

</pre></div>
<p>By default, * To change the port, use -port option. * atlas server starts with conf from {package dir}/conf. To override this (to use the same conf with multiple atlas upgrades), set environment variable METADATA_CONF to the path of conf dir</p>
<p><b>Using Atlas</b></p>
<div class="source">
<pre>
* Verify if the server is up and running
  curl -v http://localhost:21000/api/atlas/admin/version
  {&quot;Version&quot;:&quot;v0.1&quot;}

* List the types in the repository
  curl -v http://localhost:21000/api/atlas/types
  {&quot;list&quot;:[&quot;biginteger&quot;,&quot;short&quot;,&quot;byte&quot;,&quot;int&quot;,&quot;string&quot;,&quot;bigdecimal&quot;,&quot;boolean&quot;,&quot;date&quot;,&quot;double&quot;,&quot;long&quot;,&quot;float&quot;],&quot;requestId&quot;:&quot;902580786@qtp-1479771328-0&quot;}

* List the instances for a given type
  curl -v http://localhost:21000/api/atlas/entities?type=hive_table
  {&quot;requestId&quot;:&quot;788558007@qtp-44808654-5&quot;,&quot;list&quot;:[&quot;cb9b5513-c672-42cb-8477-b8f3e537a162&quot;,&quot;ec985719-a794-4c98-b98f-0509bd23aac0&quot;,&quot;48998f81-f1d3-45a2-989a-223af5c1ed6e&quot;,&quot;a54b386e-c759-4651-8779-a099294244c4&quot;]}

  curl -v http://localhost:21000/api/atlas/entities/list/hive_db

* Search for entities (instances) in the repository
  curl -v http://localhost:21000/api/atlas/discovery/search/dsl?query=&quot;from hive_table&quot;

</pre></div>
<p><b>Dashboard</b></p>
<p>Once atlas is started, you can view the status of atlas entities using the Web-based dashboard. \You can open your browser at the corresponding port to use the web UI.</p>
<p><b>Stopping Atlas Server</b></p>
<div class="source">
<pre>
bin/atlas_stop.py

</pre></div></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
              <div class="row span12">Copyright &copy;                    2015
                        <a href="http://www.apache.org">Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

                          
                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
                </div>
    </footer>
  </body>
</html>
