blob: efca665999c346998f5fd7ee44718573c06d3b33 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/twiki/Configuration.twiki at 2019-06-28
| 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="20190628" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Atlas &#x2013; Configuring Apache Atlas - Application Properties</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://gitbox.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">Download <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="http://atlas.apache.org/#/Downloads" target="_blank" title="All Releases">All Releases</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.4/index.html" title="0.8.4">0.8.4</a></li>
<li><a href="../0.8.3/index.html" title="0.8.3">0.8.3</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 ">Configuring Apache Atlas - Application Properties</li>
<li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2019-06-28</li>
<li id="projectVersion" class="pull-right">Version: 0.8.4</li>
</ul>
</div>
<div id="bodyColumn" >
<div class="section">
<h2><a name="Configuring_Apache_Atlas_-_Application_Properties"></a>Configuring Apache Atlas - Application Properties</h2>
<p>All configuration in Atlas uses java properties style configuration. The main configuration file is atlas-application.properties which is in the <b>conf</b> dir at the deployed location. It consists of the following sections:</p></div>
<div class="section">
<h3><a name="Graph_Configs"></a>Graph Configs</h3></div>
<div class="section">
<h4><a name="Graph_Persistence_engine_-_HBase"></a>Graph Persistence engine - HBase</h4>
<p>Set the following properties to configure Atlas to use HBase as the persistence engine. Please refer to <a href="http://s3.thinkaurelius.com/docs/titan/0.5.4/titan-config-ref.html">link</a> for more details.</p>
<div class="source"><pre class="prettyprint">
atlas.graph.storage.backend=hbase
atlas.graph.storage.hostname=&lt;ZooKeeper Quorum&gt;
atlas.graph.storage.hbase.table=atlas
</pre></div>
<p>If any further Titan configuration needs to be setup, please prefix the property name with &quot;atlas.graph.&quot;.</p>
<p>In addition to setting up configurations, please ensure that environment variable HBASE_CONF_DIR is setup to point to the directory containing HBase configuration file hbase-site.xml.</p></div>
<div class="section">
<h4><a name="Graph_Search_Index_-_Solr"></a>Graph Search Index - Solr</h4>
<p>Solr installation in Cloud mode is a prerequisite for Apache Atlas use. Set the following properties to configure Titan to use Solr as the index search engine.</p>
<div class="source"><pre class="prettyprint">
atlas.graph.index.search.backend=solr5
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.wait-searcher=true
# ZK quorum setup for solr as comma separated value. Example: 10.1.6.4:2181,10.1.6.5:2181
atlas.graph.index.search.solr.zookeeper-url=
# SolrCloud Zookeeper Connection Timeout. Default value is 60000 ms
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
# SolrCloud Zookeeper Session Timeout. Default value is 60000 ms
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
</pre></div></div>
<div class="section">
<h3><a name="Search_Configs"></a>Search Configs</h3>
<p>Search APIs (DSL, basic search, full-text search) support pagination and have optional limit and offset arguments. Following configs are related to search pagination</p>
<div class="source"><pre class="prettyprint">
# Default limit used when limit is not specified in API
atlas.search.defaultlimit=100
# Maximum limit allowed in API. Limits maximum results that can be fetched to make sure the atlas server doesn't run out of memory
atlas.search.maxlimit=10000
</pre></div></div>
<div class="section">
<h3><a name="Notification_Configs"></a>Notification Configs</h3>
<p>Refer <a class="externalLink" href="http://kafka.apache.org/documentation.html#configuration">http://kafka.apache.org/documentation.html#configuration</a> for Kafka configuration. All Kafka configs should be prefixed with 'atlas.kafka.'</p>
<div class="source"><pre class="prettyprint">
atlas.kafka.auto.commit.enable=false
# Kafka servers. Example: localhost:6667
atlas.kafka.bootstrap.servers=
atlas.kafka.hook.group.id=atlas
# Zookeeper connect URL for Kafka. Example: localhost:2181
atlas.kafka.zookeeper.connect=
atlas.kafka.zookeeper.connection.timeout.ms=30000
atlas.kafka.zookeeper.session.timeout.ms=60000
atlas.kafka.zookeeper.sync.time.ms=20
# Setup the following configurations only in test deployments where Kafka is started within Atlas in embedded mode
# atlas.notification.embedded=true
# atlas.kafka.data=${sys:atlas.home}/data/kafka
# Setup the following two properties if Kafka is running in Kerberized mode.
# atlas.notification.kafka.service.principal=kafka/_HOST@EXAMPLE.COM
# atlas.notification.kafka.keytab.location=/etc/security/keytabs/kafka.service.keytab
</pre></div></div>
<div class="section">
<h3><a name="Client_Configs"></a>Client Configs</h3>
<div class="source"><pre class="prettyprint">
atlas.client.readTimeoutMSecs=60000
atlas.client.connectTimeoutMSecs=60000
atlas.rest.address=&lt;http/https&gt;://&lt;atlas-fqdn&gt;:&lt;atlas port&gt; - default http://localhost:21000
</pre></div></div>
<div class="section">
<h3><a name="Security_Properties"></a>Security Properties</h3></div>
<div class="section">
<h4><a name="SSL_config"></a>SSL config</h4>
<p>The following property is used to toggle the SSL feature.</p>
<div class="source"><pre class="prettyprint">
atlas.enableTLS=false
</pre></div></div>
<div class="section">
<h3><a name="High_Availability_Properties"></a>High Availability Properties</h3>
<p>The following properties describe High Availability related configuration options:</p>
<div class="source"><pre class="prettyprint">
# Set the following property to true, to enable High Availability. Default = false.
atlas.server.ha.enabled=true
# Specify the list of Atlas instances
atlas.server.ids=id1,id2
# For each instance defined above, define the host and port on which Atlas server listens.
atlas.server.address.id1=host1.company.com:21000
atlas.server.address.id2=host2.company.com:31000
# Specify Zookeeper properties needed for HA.
# Specify the list of services running Zookeeper servers as a comma separated list.
atlas.server.ha.zookeeper.connect=zk1.company.com:2181,zk2.company.com:2181,zk3.company.com:2181
# Specify how many times should connection try to be established with a Zookeeper cluster, in case of any connection issues.
atlas.server.ha.zookeeper.num.retries=3
# Specify how much time should the server wait before attempting connections to Zookeeper, in case of any connection issues.
atlas.server.ha.zookeeper.retry.sleeptime.ms=1000
# Specify how long a session to Zookeeper should last without inactiviy to be deemed as unreachable.
atlas.server.ha.zookeeper.session.timeout.ms=20000
# Specify the scheme and the identity to be used for setting up ACLs on nodes created in Zookeeper for HA.
# The format of these options is &lt;scheme&gt;:&lt;identity&gt;. For more information refer to http://zookeeper.apache.org/doc/r3.2.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl.
# The 'acl' option allows to specify a scheme, identity pair to setup an ACL for.
atlas.server.ha.zookeeper.acl=sasl:client@comany.com
# The 'auth' option specifies the authentication that should be used for connecting to Zookeeper.
atlas.server.ha.zookeeper.auth=sasl:client@company.com
# Since Zookeeper is a shared service that is typically used by many components,
# it is preferable for each component to set its znodes under a namespace.
# Specify the namespace under which the znodes should be written. Default = /apache_atlas
atlas.server.ha.zookeeper.zkroot=/apache_atlas
# Specify number of times a client should retry with an instance before selecting another active instance, or failing an operation.
atlas.client.ha.retries=4
# Specify interval between retries for a client.
atlas.client.ha.sleep.interval.ms=5000
</pre></div></div>
<div class="section">
<h3><a name="Server_Properties"></a>Server Properties</h3>
<div class="source"><pre class="prettyprint">
# Set the following property to true, to enable the setup steps to run on each server start. Default = false.
atlas.server.run.setup.on.start=false
</pre></div></div>
<div class="section">
<h3><a name="Performance_configuration_items"></a>Performance configuration items</h3>
<p>The following properties can be used to tune performance of Atlas under specific circumstances:</p>
<div class="source"><pre class="prettyprint">
# The number of times Atlas code tries to acquire a lock (to ensure consistency) while committing a transaction.
# This should be related to the amount of concurrency expected to be supported by the server. For e.g. with retries set to 10, upto 100 threads can concurrently create types in the Atlas system.
# If this is set to a low value (default is 3), concurrent operations might fail with a PermanentLockingException.
atlas.graph.storage.lock.retries=10
# Milliseconds to wait before evicting a cached entry. This should be &gt; atlas.graph.storage.lock.wait-time x atlas.graph.storage.lock.retries
# If this is set to a low value (default is 10000), warnings on transactions taking too long will occur in the Atlas application log.
atlas.graph.storage.cache.db-cache-time=120000
# Minimum number of threads in the atlas web server
atlas.webserver.minthreads=10
# Maximum number of threads in the atlas web server
atlas.webserver.maxthreads=100
# Keepalive time in secs for the thread pool of the atlas web server
atlas.webserver.keepalivetimesecs=60
# Queue size for the requests(when max threads are busy) for the atlas web server
atlas.webserver.queuesize=100
</pre></div></div>
<div class="section">
<h4><a name="Recording_performance_metrics"></a>Recording performance metrics</h4>
<p>To enable performance logs for various Atlas operations (like REST API calls, notification processing), setup the following in atlas-log4j.xml:</p>
<div class="source"><pre class="prettyprint">
&lt;appender name=&quot;perf_appender&quot; class=&quot;org.apache.log4j.DailyRollingFileAppender&quot;&gt;
&lt;param name=&quot;File&quot; value=&quot;/var/log/atlas/atlas_perf.log&quot;/&gt;
&lt;param name=&quot;datePattern&quot; value=&quot;'.'yyyy-MM-dd&quot;/&gt;
&lt;param name=&quot;append&quot; value=&quot;true&quot;/&gt;
&lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
&lt;param name=&quot;ConversionPattern&quot; value=&quot;%d|%t|%m%n&quot;/&gt;
&lt;/layout&gt;
&lt;/appender&gt;
&lt;logger name=&quot;org.apache.atlas.perf&quot; additivity=&quot;false&quot;&gt;
&lt;level value=&quot;debug&quot;/&gt;
&lt;appender-ref ref=&quot;perf_appender&quot;/&gt;
&lt;/logger&gt;
</pre></div></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>