<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/twiki/InstallationSteps.twiki at 2018-10-31
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<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="20181031" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Atlas &#x2013; Building & Installing Apache Atlas</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.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.7.min.js"></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/atlas.git" title="Git">Git</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/atlas/0.8.2/" title="0.8.2">0.8.2</a></li>
            <li><a href="http://archive.apache.org/dist/incubator/atlas/0.8.1/" title="0.8.1">0.8.1</a></li>
            <li><a href="http://archive.apache.org/dist/incubator/atlas/0.8.0-incubating/" title="0.8-incubating">0.8-incubating</a></li>
            <li><a href="http://archive.apache.org/dist/incubator/atlas/0.7.1-incubating/" title="0.7.1-incubating">0.7.1-incubating</a></li>
            <li><a href="http://archive.apache.org/dist/incubator/atlas/0.7.0-incubating/" title="0.7-incubating">0.7-incubating</a></li>
            <li><a href="http://archive.apache.org/dist/incubator/atlas/0.6.0-incubating/" title="0.6-incubating">0.6-incubating</a></li>
            <li><a href="http://archive.apache.org/dist/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="../index.html" title="latest">latest</a></li>
            <li><a href="../0.8.2/index.html" title="0.8.2">0.8.2</a></li>
            <li><a href="../0.8.1/index.html" title="0.8.1">0.8.1</a></li>
            <li><a href="../0.8.0-incubating/index.html" title="0.8-incubating">0.8-incubating</a></li>
            <li><a href="../0.7.1-incubating/index.html" title="0.7.1-incubating">0.7.1-incubating</a></li>
            <li><a href="../0.7.0-incubating/index.html" title="0.7-incubating">0.7-incubating</a></li>
            <li><a href="../0.6.0-incubating/index.html" title="0.6-incubating">0.6-incubating</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">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="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
  <input value="http://atlas.apache.org" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
    <iframe src="https://www.facebook.com/plugins/like.php?href=http://atlas.apache.org/atlas-docs&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark"
        scrolling="no" frameborder="0"
        style="border:none; width:100px; height:20px; margin-top: 10px;"  class="pull-right" ></iframe>
    <script type="text/javascript">asyncJs( '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.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"></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><span class="divider">/</span></li>
      <li class=""><a href="index.html" title="Atlas">Atlas</a><span class="divider">/</span></li>
    <li class="active ">Building & Installing Apache Atlas</li>
        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-10-31</li>
          <li id="projectVersion" class="pull-right">Version: 0.8.3</li>
        </ul>
      </div>
        <div id="bodyColumn" >
<div class="section">
<h3><a name="Building_.26_Installing_Apache_Atlas"></a>Building &amp; Installing Apache Atlas</h3></div>
<div class="section">
<h4><a name="Building_Atlas"></a>Building Atlas</h4>
<div class="source"><pre class="prettyprint">
git clone https://git-wip-us.apache.org/repos/asf/atlas.git atlas
cd atlas
git checkout branch-0.8
export MAVEN_OPTS=&quot;-Xms2g -Xmx2g&quot;
mvn clean -DskipTests install
</pre></div></div>
<div class="section">
<h4><a name="Packaging_Atlas"></a>Packaging Atlas</h4>
<p>To create Apache Atlas package for deployment in an environment having functional HBase and Solr instances, build with the following command:</p>
<div class="source"><pre class="prettyprint">
mvn clean -DskipTests package -Pdist
</pre></div>
<p></p>
<ul>
<li>NOTES:
<ul>
<li>Remove option '-DskipTests' to run unit and integration tests</li>
<li>To build a distribution without minified js,css file, build with skipMinify profile. By default js and css files are minified.</li></ul></li></ul>
<p>Above will build Atlas for an environment having functional HBase and Solr instances. Atlas needs to be setup with the following to run in this environment:</p>
<ul>
<li>Configure atlas.graph.storage.hostname (see &quot;Graph persistence engine - HBase&quot; in the <a href="./Configuration.html">Configuration</a> section).</li>
<li>Configure atlas.graph.index.search.solr.zookeeper-url (see &quot;Graph Search Index - Solr&quot; in the <a href="./Configuration.html">Configuration</a> section).</li>
<li>Set HBASE_CONF_DIR to point to a valid HBase config directory (see &quot;Graph persistence engine - HBase&quot; in the <a href="./Configuration.html">Configuration</a> section).</li>
<li>Create the SOLR indices (see &quot;Graph Search Index - Solr&quot; in the <a href="./Configuration.html">Configuration</a> section).</li></ul></div>
<div class="section">
<h4><a name="Packaging_Atlas_with_Embedded_HBase_.26_Solr"></a>Packaging Atlas with Embedded HBase &amp; Solr</h4>
<p>To create Apache Atlas package that includes HBase and Solr, build with the embedded-hbase-solr profile as shown below:</p>
<div class="source"><pre class="prettyprint">
mvn clean -DskipTests package -Pdist,embedded-hbase-solr
</pre></div>
<p>Using the embedded-hbase-solr profile will configure Atlas so that an HBase instance and a Solr instance will be started and stopped along with the Atlas server by default.</p></div>
<div class="section">
<h4><a name="Apache_Atlas_Package"></a>Apache Atlas Package</h4>
<p>Build will create following files, which are used to install Apache Atlas.</p>
<div class="source"><pre class="prettyprint">
distro/target/apache-atlas-${project.version}-bin.tar.gz
distro/target/apache-atlas-${project.version}-sources.tar.gz
</pre></div></div>
<div class="section">
<h4><a name="Installing_.26_Running_Atlas"></a>Installing &amp; Running Atlas</h4></div>
<div class="section">
<h5><a name="Installing_Atlas"></a>Installing Atlas</h5>
<div class="source"><pre class="prettyprint">
tar -xzvf apache-atlas-${project.version}-bin.tar.gz

cd atlas-${project.version}
</pre></div></div>
<div class="section">
<h5><a name="Configuring_Atlas"></a>Configuring Atlas</h5>
<p>By default config directory used by Atlas is {package dir}/conf. To override this set environment variable ATLAS_CONF to the path of the conf dir.</p>
<p>Environment variables needed to run Atlas can be set in  atlas-env.sh file in the conf directory. 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 class="prettyprint">
# 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 ATLAS_OPTS=

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

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

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

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

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

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

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

# where the atlas titan db data is stored. Defatult is logs/data directory under the base install location
#export ATLAS_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 ATLAS_EXPANDED_WEBAPP_DIR=
</pre></div>
<p><b>Settings to support large number of metadata objects</b></p>
<p>If you plan to store several tens of thousands of metadata objects, it is recommended that you use values tuned for better GC performance of the JVM.</p>
<p>The following values are common server side options:</p>
<div class="source"><pre class="prettyprint">
export ATLAS_SERVER_OPTS=&quot;-server -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dumps/atlas_server.hprof -Xloggc:logs/gc-worker.log -verbose:gc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1m -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps&quot;
</pre></div>
<p>The <tt>-XX:SoftRefLRUPolicyMSPerMB</tt> option was found to be particularly helpful to regulate GC performance for query heavy workloads with many concurrent users.</p>
<p>The following values are recommended for JDK 7:</p>
<div class="source"><pre class="prettyprint">
export ATLAS_SERVER_HEAP=&quot;-Xms15360m -Xmx15360m -XX:MaxNewSize=3072m -XX:PermSize=100M -XX:MaxPermSize=512m&quot;
</pre></div>
<p>The following values are recommended for JDK 8:</p>
<div class="source"><pre class="prettyprint">
export ATLAS_SERVER_HEAP=&quot;-Xms15360m -Xmx15360m -XX:MaxNewSize=5120m -XX:MetaspaceSize=100M -XX:MaxMetaspaceSize=512m&quot;
</pre></div>
<p><b>NOTE for Mac OS users</b> If you are using a Mac OS, you will need to configure the ATLAS_SERVER_OPTS (explained above).</p>
<p>In  {package dir}/conf/atlas-env.sh uncomment the following line</p>
<div class="source"><pre class="prettyprint">
#export ATLAS_SERVER_OPTS=
</pre></div>
<p>and change it to look as below</p>
<div class="source"><pre class="prettyprint">
export ATLAS_SERVER_OPTS=&quot;-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=&quot;
</pre></div>
<p><b>Hbase as the Storage Backend for the Graph Repository</b></p>
<p>By default, Atlas uses Titan as the graph repository and is the only graph repository implementation available currently. The HBase versions currently supported are 1.1.x. For configuring ATLAS graph persistence on HBase, please see &quot;Graph persistence engine - HBase&quot; in the <a href="./Configuration.html">Configuration</a> section for more details.</p>
<p>HBase tables used by Atlas can be set using the following configurations:</p>
<div class="source"><pre class="prettyprint">
atlas.graph.storage.hbase.table=apache_atlas_titan
atlas.audit.hbase.tablename=apache_atlas_entity_audit
</pre></div>
<p><b>Configuring SOLR as the Indexing Backend for the Graph Repository</b></p>
<p>By default, Atlas uses Titan as the graph repository and is the only graph repository implementation available currently. For configuring Titan to work with Solr, please follow the instructions below</p>
<p></p>
<ul>
<li>Install solr if not already running. The version of SOLR supported is 5.2.1. Could be installed from <a class="externalLink" href="http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz">http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz</a></li></ul>
<p></p>
<ul>
<li>Start solr in cloud mode.</li></ul>SolrCloud mode uses a ZooKeeper Service as a highly available, central location for cluster management.   For a small cluster, running with an existing ZooKeeper quorum should be fine. For larger clusters, you would want to run separate multiple ZooKeeper quorum with atleast 3 servers.   Note: Atlas currently supports solr in &quot;cloud&quot; mode only. &quot;http&quot; mode is not supported. For more information, refer solr documentation - <a class="externalLink" href="https://cwiki.apache.org/confluence/display/solr/SolrCloud">https://cwiki.apache.org/confluence/display/solr/SolrCloud</a>
<p></p>
<ul>
<li>For e.g., to bring up a Solr node listening on port 8983 on a machine, you can use the command:</li></ul>
<div class="source"><pre class="prettyprint">
      $SOLR_HOME/bin/solr start -c -z &lt;zookeeper_host:port&gt; -p 8983
</pre></div>
<p></p>
<ul>
<li>Run the following commands from SOLR_BIN (e.g. $SOLR_HOME/bin) directory to create collections in Solr corresponding to the indexes that Atlas uses. In the case that the ATLAS and SOLR instance are on 2 different hosts, first copy the required configuration files from ATLAS_HOME/conf/solr on the ATLAS instance host to the Solr instance host. SOLR_CONF in the below mentioned commands refer to the directory where the solr configuration files have been copied to on Solr host:</li></ul>
<div class="source"><pre class="prettyprint">
  $SOLR_BIN/solr create -c vertex_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor
  $SOLR_BIN/solr create -c edge_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor
  $SOLR_BIN/solr create -c fulltext_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor
</pre></div>
<p>Note: If numShards and replicationFactor are not specified, they default to 1 which suffices if you are trying out solr with ATLAS on a single node instance.   Otherwise specify numShards according to the number of hosts that are in the Solr cluster and the maxShardsPerNode configuration.   The number of shards cannot exceed the total number of Solr nodes in your !SolrCloud cluster.</p>
<p>The number of replicas (replicationFactor) can be set according to the redundancy required.</p>
<p>Also note that solr will automatically be called to create the indexes when the Atlas server is started if the   SOLR_BIN and SOLR_CONF environment variables are set and the search indexing backend is set to 'solr5'.</p>
<p></p>
<ul>
<li>Change ATLAS configuration to point to the Solr instance setup. Please make sure the following configurations are set to the below values in ATLAS_HOME/conf/atlas-application.properties</li></ul>
<div class="source"><pre class="prettyprint">
 atlas.graph.index.search.backend=solr5
 atlas.graph.index.search.solr.mode=cloud
 atlas.graph.index.search.solr.zookeeper-url=&lt;the ZK quorum setup for solr as comma separated value&gt; eg: 10.1.6.4:2181,10.1.6.5:2181
 atlas.graph.index.search.solr.zookeeper-connect-timeout=&lt;SolrCloud Zookeeper Connection Timeout&gt;. Default value is 60000 ms
 atlas.graph.index.search.solr.zookeeper-session-timeout=&lt;SolrCloud Zookeeper Session Timeout&gt;. Default value is 60000 ms
</pre></div>
<p></p>
<ul>
<li>Restart Atlas</li></ul>
<p>For more information on Titan solr configuration , please refer <a class="externalLink" href="http://s3.thinkaurelius.com/docs/titan/0.5.4/solr.htm">http://s3.thinkaurelius.com/docs/titan/0.5.4/solr.htm</a></p>
<p>Pre-requisites for running Solr in cloud mode   * Memory - Solr is both memory and CPU intensive. Make sure the server running Solr has adequate memory, CPU and disk.     Solr works well with 32GB RAM. Plan to provide as much memory as possible to Solr process   * Disk - If the number of entities that need to be stored are large, plan to have at least 500 GB free space in the volume where Solr is going to store the index data   * SolrCloud has support for replication and sharding. It is highly recommended to use SolrCloud with at least two Solr nodes running on different servers with replication enabled.     If using SolrCloud, then you also need ZooKeeper installed and configured with 3 or 5 ZooKeeper nodes</p>
<p><b>Configuring Kafka Topics</b></p>
<p>Atlas uses Kafka to ingest metadata from other components at runtime. This is described in the <a href="./Architecture.html">Architecture page</a> in more detail. Depending on the configuration of Kafka, sometimes you might need to setup the topics explicitly before using Atlas. To do so, Atlas provides a script <tt>bin/atlas_kafka_setup.py</tt> which can be run from the Atlas server. In some environments, the hooks might start getting used first before Atlas server itself is setup. In such cases, the topics can be run on the hosts where hooks are installed using a similar script <tt>hook-bin/atlas_kafka_setup_hook.py</tt>. Both these use configuration in <tt>atlas-application.properties</tt> for setting up the topics. Please refer to the <a href="./Configuration.html">Configuration page</a> for these details.</p></div>
<div class="section">
<h5><a name="Setting_up_Atlas"></a>Setting up Atlas</h5>
<p>There are a few steps that setup dependencies of Atlas. One such example is setting up the Titan schema in the storage backend of choice. In a simple single server setup, these are automatically setup with default configuration when the server first accesses these dependencies.</p>
<p>However, there are scenarios when we may want to run setup steps explicitly as one time operations. For example, in a multiple server scenario using <a href="./HighAvailability.html">High Availability</a>, it is preferable to run setup steps from one of the server instances the first time, and then start the services.</p>
<p>To run these steps one time, execute the command <tt>bin/atlas_start.py -setup</tt> from a single Atlas server instance.</p>
<p>However, the Atlas server does take care of parallel executions of the setup steps. Also, running the setup steps multiple times is idempotent. Therefore, if one chooses to run the setup steps as part of server startup, for convenience, then they should enable the configuration option <tt>atlas.server.run.setup.on.start</tt> by defining it with the value <tt>true</tt> in the <tt>atlas-application.properties</tt> file.</p></div>
<div class="section">
<h5><a name="Starting_Atlas_Server"></a>Starting Atlas Server</h5>
<div class="source"><pre class="prettyprint">
bin/atlas_start.py [-port &lt;port&gt;]
</pre></div></div>
<div class="section">
<h4><a name="Using_Atlas"></a>Using Atlas</h4>
<p></p>
<ul>
<li>Verify if the server is up and running</li></ul>
<div class="source"><pre class="prettyprint">
  curl -v -u username:password http://localhost:21000/api/atlas/admin/version
  {&quot;Version&quot;:&quot;v0.1&quot;}
</pre></div>
<p></p>
<ul>
<li>Access Atlas UI using a browser: <a class="externalLink" href="http://localhost:21000">http://localhost:21000</a></li></ul>
<p></p>
<ul>
<li>Quick start model - sample model and data</li></ul>
<div class="source"><pre class="prettyprint">
  bin/quick_start.py [&lt;atlas endpoint&gt;]
</pre></div>
<p></p>
<ul>
<li>List the types in the repository</li></ul>
<div class="source"><pre class="prettyprint">
  curl -v -u username:password http://localhost:21000/api/atlas/v2/types/typedefs/headers
  [ {&quot;guid&quot;:&quot;fa421be8-c21b-4cf8-a226-fdde559ad598&quot;,&quot;name&quot;:&quot;Referenceable&quot;,&quot;category&quot;:&quot;ENTITY&quot;},
    {&quot;guid&quot;:&quot;7f3f5712-521d-450d-9bb2-ba996b6f2a4e&quot;,&quot;name&quot;:&quot;Asset&quot;,&quot;category&quot;:&quot;ENTITY&quot;},
    {&quot;guid&quot;:&quot;84b02fa0-e2f4-4cc4-8b24-d2371cd00375&quot;,&quot;name&quot;:&quot;DataSet&quot;,&quot;category&quot;:&quot;ENTITY&quot;},
    {&quot;guid&quot;:&quot;f93975d5-5a5c-41da-ad9d-eb7c4f91a093&quot;,&quot;name&quot;:&quot;Process&quot;,&quot;category&quot;:&quot;ENTITY&quot;},
    {&quot;guid&quot;:&quot;79dcd1f9-f350-4f7b-b706-5bab416f8206&quot;,&quot;name&quot;:&quot;Infrastructure&quot;,&quot;category&quot;:&quot;ENTITY&quot;}
  ]
</pre></div>
<p></p>
<ul>
<li>List the instances for a given type</li></ul>
<div class="source"><pre class="prettyprint">
  curl -v -u username:password http://localhost:21000/api/atlas/v2/search/basic?typeName=hive_db
  {
    &quot;queryType&quot;:&quot;BASIC&quot;,
    &quot;searchParameters&quot;:{
      &quot;typeName&quot;:&quot;hive_db&quot;,
      &quot;excludeDeletedEntities&quot;:false,
      &quot;includeClassificationAttributes&quot;:false,
      &quot;includeSubTypes&quot;:true,
      &quot;includeSubClassifications&quot;:true,
      &quot;limit&quot;:100,
      &quot;offset&quot;:0
    },
    &quot;entities&quot;:[
      {
        &quot;typeName&quot;:&quot;hive_db&quot;,
        &quot;guid&quot;:&quot;5d900c19-094d-4681-8a86-4eb1d6ffbe89&quot;,
        &quot;status&quot;:&quot;ACTIVE&quot;,
        &quot;displayText&quot;:&quot;default&quot;,
        &quot;classificationNames&quot;:[],
        &quot;attributes&quot;:{
          &quot;owner&quot;:&quot;public&quot;,
          &quot;createTime&quot;:null,
          &quot;qualifiedName&quot;:&quot;default@cl1&quot;,
          &quot;name&quot;:&quot;default&quot;,
          &quot;description&quot;:&quot;Default Hive database&quot;
        }
      },
      {
        &quot;typeName&quot;:&quot;hive_db&quot;,
        &quot;guid&quot;:&quot;3a0b14b0-ab85-4b65-89f2-e418f3f7f77c&quot;,
        &quot;status&quot;:&quot;ACTIVE&quot;,
        &quot;displayText&quot;:&quot;finance&quot;,
        &quot;classificationNames&quot;:[],
        &quot;attributes&quot;:{
          &quot;owner&quot;:&quot;hive&quot;,
          &quot;createTime&quot;:null,
          &quot;qualifiedName&quot;:&quot;finance@cl1&quot;,
          &quot;name&quot;:&quot;finance&quot;,
          &quot;description&quot;:null
        }
      }
    ]
  }
</pre></div>
<p></p>
<ul>
<li>Search for entities</li></ul>curl -v -u username:password <a class="externalLink" href="http://localhost:21000/api/atlas/v2/search/dsl?query=hive_db%20where%20name=&apos;default&apos;">http://localhost:21000/api/atlas/v2/search/dsl?query=hive_db%20where%20name='default'</a>     {       &quot;queryType&quot;:&quot;DSL&quot;,       &quot;queryText&quot;:&quot;hive_db where name='default'&quot;,       &quot;entities&quot;:[         {           &quot;typeName&quot;:&quot;hive_db&quot;,           &quot;guid&quot;:&quot;5d900c19-094d-4681-8a86-4eb1d6ffbe89&quot;,           &quot;status&quot;:&quot;ACTIVE&quot;,           &quot;displayText&quot;:&quot;default&quot;,           &quot;classificationNames&quot;:[],           &quot;attributes&quot;:{             &quot;owner&quot;:&quot;public&quot;,             &quot;createTime&quot;:null,             &quot;qualifiedName&quot;:&quot;default@cl1&quot;,             &quot;name&quot;:&quot;default&quot;,             &quot;description&quot;:             &quot;Default Hive database&quot;           }         }       ]     }&lt;/verbatim&gt;</div>
<div class="section">
<h4><a name="Stopping_Atlas_Server"></a>Stopping Atlas Server</h4>
<div class="source"><pre class="prettyprint">
bin/atlas_stop.py
</pre></div></div>
<div class="section">
<h4><a name="Troubleshooting"></a>Troubleshooting</h4></div>
<div class="section">
<h5><a name="Setup_issues"></a>Setup issues</h5>
<p>If the setup of Atlas service fails due to any reason, the next run of setup (either by an explicit invocation of <tt>atlas_start.py -setup</tt> or by enabling the configuration option <tt>atlas.server.run.setup.on.start</tt>) will fail with a message such as <tt>A previous setup run may not have completed cleanly.</tt>. In such cases, you would need to manually ensure the setup can run and delete the Zookeeper node at <tt>/apache_atlas/setup_in_progress</tt> before attempting to run setup again.</p>
<p>If the setup failed due to HBase Titan schema setup errors, it may be necessary to repair the HBase schema. If no data has been stored, one can also disable and drop the HBase tables used by Atlas and run setup again.</p></div>
        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
Copyright Â© 2018 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
        </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>
