http://git-wip-us.apache.org/repos/asf/atlas-website/blob/af60ed7f/1.0.0-rc0/Export-API.html ---------------------------------------------------------------------- diff --git a/1.0.0-rc0/Export-API.html b/1.0.0-rc0/Export-API.html deleted file mode 100644 index d1d16df..0000000 --- a/1.0.0-rc0/Export-API.html +++ /dev/null @@ -1,304 +0,0 @@ -<!DOCTYPE html> -<!-- - | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/twiki/Export-API.twiki at 2018-05-26 - | 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="20180526" /> - <meta http-equiv="Content-Language" content="en" /> - <title>Apache Atlas – Export API</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/1.0.0-alpha/" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="http://www.apache.org/dyn/closer.cgi/atlas/1.0.0-rc0/" title="1.0.0-rc0">1.0.0-rc0</a></li> - <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://www.apache.org/dyn/closer.cgi/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="../1.0.0-alpha/index.html" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="../1.0.0-rc0/index.html" title="1.0.0-rc0">1.0.0-rc0</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="https://www.apache.org/events/current-event" title="Events">Events</a></li> - <li><a href="https://www.apache.org/licenses/" title="License">License</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 ">Export API</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-05-26</li> - <li id="projectVersion" class="pull-right">Version: 1.0.0-rc0</li> - </ul> - </div> - <div id="bodyColumn" > -<div class="section"> -<h2><a name="Export_API"></a>Export API</h2> -<p>The general approach is:</p> -<ul> -<li>Consumer specifies the scope of data to be exported (details below).</li> -<li>The API if successful, will return the stream in the format specified.</li> -<li>Error will be returned on failure of the call.</li></ul> -<p>See <a href="./Export-HDFS-API.html">here</a> for details on exporting <b>hdfs_path</b> entities.</p> -<p></p> -<table border="0" class="table table-striped"> -<tr class="a"> -<th>Title</th> -<th>Export API</th></tr> -<tr class="b"> -<td><i>Example</i></td> -<td>See Examples sections below.</td></tr> -<tr class="a"> -<td><i>URL</i></td> -<td><i>api/atlas/admin/export</i></td></tr> -<tr class="b"> -<td><i>Method</i></td> -<td><i>POST</i></td></tr> -<tr class="a"> -<td><i>URL Parameters</i></td> -<td><i>None</i></td></tr> -<tr class="b"> -<td><i>Data Parameters</i></td> -<td>The class <i>AtlasExportRequest</i> is used to specify the items to export. The list of <i>AtlasObjectId</i>(s) allow for specifying the multiple items to export in a session. The <i>AtlasObjectId</i> is a tuple of entity type, name of unique attribute, value of unique attribute. Several items can be specified. See examples below.</td></tr> -<tr class="a"> -<td><i>Success Response</i></td> -<td>File stream as <i>application/zip</i>.</td></tr> -<tr class="b"> -<td><i>Error Response</i></td> -<td>Errors that are handled within the system will be returned as <i>AtlasBaseException</i>.</td></tr> -<tr class="a"> -<td><i>Notes</i></td> -<td>Consumer could choose to consume the output of the API by programmatically using <i>java.io.ByteOutputStream</i> or by manually, save the contents of the stream to a file on the disk.</td></tr></table><b><i>Method Signature</i></b> -<div class="source"><pre class="prettyprint"> -@POST -@Path("/export") -@Consumes("application/json;charset=UTF-8") - -</pre></div></div> -<div class="section"> -<h4><a name="Additional_Options"></a>Additional Options</h4> -<p>It is possible to specify additional parameters for the <i>Export</i> operation.</p> -<p>Current implementation has 2 options. Both are optional:</p> -<ul> -<li><i>matchType</i> This option configures the approach used for fetching the starting entity. It has follow values: -<ul> -<li><i>startsWith</i> Search for an entity that is prefixed with the specified criteria.</li> -<li><i>endsWith</i> Search for an entity that is suffixed with the specified criteria.</li> -<li><i>contains</i> Search for an entity that has the specified criteria as a sub-string.</li> -<li><i>matches</i> Search for an entity that is a regular expression match with the specified criteria.</li></ul></li></ul> -<p></p> -<ul> -<li><i>fetchType</i> This option configures the approach used for fetching entities. It has following values: -<ul> -<li><i>FULL</i>: This fetches all the entities that are connected directly and indirectly to the starting entity. E.g. If a starting entity specified is a table, then this option will fetch the table, database and all the other tables within the database.</li> -<li><i>CONNECTED</i>: This fetches all the etnties that are connected directly to the starting entity. E.g. If a starting entity specified is a table, then this option will fetch the table and the database entity only.</li></ul></li></ul> -<p>If no <i>matchType</i> is specified, exact match is used. Which means, that the entire string is used in the search criteria.</p> -<p>Searching using <i>matchType</i> applies for all types of entities. It is particularly useful for matching entities of type hdfs_path (see <a href="./Export-HDFS-API.html">here</a>).</p> -<p>The <i>fetchType</i> option defaults to <i>FULL</i>.</p> -<p>For complete example see section below.</p></div> -<div class="section"> -<h4><a name="Contents_of_Exported_ZIP_File"></a>Contents of Exported ZIP File</h4> -<p>The exported ZIP file has the following entries within it:</p> -<ul> -<li><i>atlas-export-result.json</i>: -<ul> -<li>Input filters: The scope of export.</li> -<li>File format: The format chosen for the export operation.</li> -<li>Metrics: The number of entity definitions, classifications and entities exported.</li></ul></li> -<li><i>atlas-typesdef.json</i>: Type definitions for the entities exported.</li> -<li><i>atlas-export-order.json</i>: Order in which entities should be exported.</li> -<li><i>{guid}.json</i>: Individual entities are exported with file names that correspond to their id.</li></ul></div> -<div class="section"> -<h4><a name="Examples"></a>Examples</h4> -<p>The <i>AtlasExportRequest</i> below shows filters that attempt to export 2 databases in cluster cl1:</p> -<div class="source"><pre class="prettyprint"> -{ - "itemsToExport": [ - { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "accounts@cl1" } }, - { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "hr@cl1" } } - ] -} - -</pre></div> -<p>The <i>AtlasExportRequest</i> below specifies the <i>fetchType</i> as <i>FULL</i>. The <i>matchType</i> option will fetch <i>accounts@cl1</i>.</p> -<div class="source"><pre class="prettyprint"> -{ - "itemsToExport": [ - { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "accounts@" } }, - ], - "options" { - "fetchType": "FULL", - "matchType": "startsWith" - } -} - -</pre></div> -<p>The <i>AtlasExportRequest</i> below specifies the <i>fetchType</i> as <i>connected</i>. The <i>matchType</i> option will fetch <i>accountsReceivable</i>, <i>accountsPayable</i>, etc present in the database.</p> -<div class="source"><pre class="prettyprint"> -{ - "itemsToExport": [ - { "typeName": "hive_db", "uniqueAttributes": { "name": "accounts" } }, - ], - "options" { - "fetchType": "CONNECTED", - "matchType": "startsWith" - } -} - -</pre></div> -<p>Below is the <i>AtlasExportResult</i> JSON for the export of the <i>Sales</i> DB present in the <i>QuickStart</i>.</p> -<p>The <i>metrics</i> contains the number of types and entities exported as part of the operation.</p> -<div class="source"><pre class="prettyprint"> -{ - "clientIpAddress": "10.0.2.15", - "hostName": "10.0.2.2", - "metrics": { - "duration": 1415, - "entitiesWithExtInfo": 12, - "entity:DB_v1": 2, - "entity:LoadProcess_v1": 2, - "entity:Table_v1": 6, - "entity:View_v1": 2, - "typedef:Column_v1": 1, - "typedef:DB_v1": 1, - "typedef:LoadProcess_v1": 1, - "typedef:StorageDesc_v1": 1, - "typedef:Table_v1": 1, - "typedef:View_v1": 1, - "typedef:classification": 6 - }, - "operationStatus": "SUCCESS", - "request": { - "itemsToExport": [ - { - "typeName": "DB_v1", - "uniqueAttributes": { - "name": "Sales" - } - } - ], - "options": { - "fetchType": "full" - } - }, - "userName": "admin" -} - -</pre></div></div> -<div class="section"> -<h4><a name="CURL_Calls"></a>CURL Calls</h4> -<p>Below are sample CURL calls that demonstrate Export of <i>QuickStart</i> database.</p> -<div class="source"><pre class="prettyprint"> -curl -X POST -u adminuser:password -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{ - "itemsToExport": [ - { "typeName": "DB", "uniqueAttributes": { "name": "Sales" } - { "typeName": "DB", "uniqueAttributes": { "name": "Reporting" } - { "typeName": "DB", "uniqueAttributes": { "name": "Logging" } - } - ], - "options": "full" -}' "http://localhost:21000/api/atlas/admin/export" > quickStartDB.zip - -</pre></div></div> - </div> - </div> - <hr/> - <footer> - <div class="container"> - <div class="row"> -<p><a href="https://www.apache.org/foundation/contributing"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support the ASF" id="asf-logo" height="20" width="20" /></a>Copyright © 2011-2018 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/> -Apache Atlas, Atlas, Apache, the Apache feather logo are trademarks of the <a href="https://www.apache.org">Apache Software Foundation</a>.<br/> -All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </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>
http://git-wip-us.apache.org/repos/asf/atlas-website/blob/af60ed7f/1.0.0-rc0/Export-HDFS-API.html ---------------------------------------------------------------------- diff --git a/1.0.0-rc0/Export-HDFS-API.html b/1.0.0-rc0/Export-HDFS-API.html deleted file mode 100644 index 4871cbd..0000000 --- a/1.0.0-rc0/Export-HDFS-API.html +++ /dev/null @@ -1,164 +0,0 @@ -<!DOCTYPE html> -<!-- - | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/twiki/Export-HDFS-API.twiki at 2018-05-26 - | 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="20180526" /> - <meta http-equiv="Content-Language" content="en" /> - <title>Apache Atlas – Export & Import APIs for HDFS Path</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/1.0.0-alpha/" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="http://www.apache.org/dyn/closer.cgi/atlas/1.0.0-rc0/" title="1.0.0-rc0">1.0.0-rc0</a></li> - <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://www.apache.org/dyn/closer.cgi/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="../1.0.0-alpha/index.html" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="../1.0.0-rc0/index.html" title="1.0.0-rc0">1.0.0-rc0</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="https://www.apache.org/events/current-event" title="Events">Events</a></li> - <li><a href="https://www.apache.org/licenses/" title="License">License</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 ">Export & Import APIs for HDFS Path</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-05-26</li> - <li id="projectVersion" class="pull-right">Version: 1.0.0-rc0</li> - </ul> - </div> - <div id="bodyColumn" > -<div class="section"> -<h2><a name="Export_.26_Import_APIs_for_HDFS_Path"></a>Export & Import APIs for HDFS Path</h2></div> -<div class="section"> -<h4><a name="Introduction"></a>Introduction</h4> -<p>The general approach for using the Import-Export APIs for HDFS Paths remain the same. There are minor variations caused how HDFS paths are handled within Atlas.</p> -<p>Unlike HIVE entities, HDFS entities within Atlas are created manually using the <i>Create Entity</i> link within the Atlas Web UI.</p> -<p>Also, HDFS paths tend to be hierarchical, in the sense that users tend to model the same HDFS storage structure within Atlas.</p> -<p><b><i>Sample HDFS Setup</i></b></p> -<p><table border="1" cellpadding="pixels" cellspacing="pixels"> <tr> <th><strong>HDFS Path</strong></th> <th><strong>Atlas Entity</strong></th> </tr> <tr> <td style="padding:0 15px 0 15px;"> <em>/apps/warehouse/finance</em> </td> <td style="padding:0 15px 0 15px;"> <strong>Entity type: </strong><em>hdfs_path</em> <br/> <strong>Name: </strong><em>Finance</em> <br/> <strong>QualifiedName: </strong><em>FinanceAll</em> </td> </tr> <tr> <td style="padding:0 15px 0 15px;"> <em>/apps/warehouse/finance/accounts-receivable</em> </td> <td style="padding:0 15px 0 15px;"> <strong>Entity type: </strong><em>hdfs_path</em> <br/> <strong>Name: </strong><em>FinanceReceivable</em> <br/> <strong>QualifiedName: </strong><em>FinanceReceivable</em> <br/> <strong>Path: </strong><em>/apps/warehouse/finance</em> </td> </tr> <td style="padding:0 15px 0 15px;"> <em>/apps/wareho use/finance/accounts-payable</em> </td> <td style="padding:0 15px 0 15px;"> <strong>Entity type: </strong><em>hdfs_path</em> <br/> <strong>Name: </strong><em>Finance-Payable</em> <br/> <strong>QualifiedName: </strong><em>FinancePayable</em> <br/> <strong>Path: </strong><em>/apps/warehouse/finance/accounts-payable</em> </td> </tr> </tr> <td style="padding:0 15px 0 15px;"> <em>/apps/warehouse/finance/billing</em> </td> <td style="padding:0 15px 0 15px;"> <strong>Entity type: </strong><em>hdfs_path</em> <br/> <strong>Name: </strong><em>FinanceBilling</em> <br/> <strong>QualifiedName: </strong><em>FinanceBilling</em> <br/> <strong>Path: </strong><em>/apps/warehouse/finance/billing</em> </td> </tr> </table></p></div> -<div class="section"> -<h4><a name="Export_API_Using_matchType"></a>Export API Using matchType</h4> -<p>To export entities that represent HDFS path, use the Export API using the <i>matchType</i> option. Details can be found <a href="./Export-API.html">here</a>.</p></div> -<div class="section"> -<h4><a name="Example_Using_CURL_Calls"></a>Example Using CURL Calls</h4> -<p>Below are sample CURL calls that performs export operation on the <i>Sample HDFS Setup</i> shown above.</p> -<div class="source"><pre class="prettyprint"> -curl -X POST -u adminuser:password -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{ - "itemsToExport": [ - { "typeName": "hdfs_path", "uniqueAttributes": { "name": "FinanceAll" } - } - ], - "options": { - "fetchType": "full", - "matchType": "startsWith" - } -}' "http://localhost:21000/api/atlas/admin/export" > financeAll.zip - -</pre></div></div> - </div> - </div> - <hr/> - <footer> - <div class="container"> - <div class="row"> -<p><a href="https://www.apache.org/foundation/contributing"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support the ASF" id="asf-logo" height="20" width="20" /></a>Copyright © 2011-2018 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/> -Apache Atlas, Atlas, Apache, the Apache feather logo are trademarks of the <a href="https://www.apache.org">Apache Software Foundation</a>.<br/> -All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </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> http://git-wip-us.apache.org/repos/asf/atlas-website/blob/af60ed7f/1.0.0-rc0/Glossary.html ---------------------------------------------------------------------- diff --git a/1.0.0-rc0/Glossary.html b/1.0.0-rc0/Glossary.html deleted file mode 100644 index 669aecf..0000000 --- a/1.0.0-rc0/Glossary.html +++ /dev/null @@ -1,519 +0,0 @@ -<!DOCTYPE html> -<!-- - | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/Glossary.md at 2018-05-26 - | 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="20180526" /> - <meta http-equiv="Content-Language" content="en" /> - <title>Apache Atlas – Glossary</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/1.0.0-alpha/" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="http://www.apache.org/dyn/closer.cgi/atlas/1.0.0-rc0/" title="1.0.0-rc0">1.0.0-rc0</a></li> - <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://www.apache.org/dyn/closer.cgi/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="../1.0.0-alpha/index.html" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="../1.0.0-rc0/index.html" title="1.0.0-rc0">1.0.0-rc0</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="https://www.apache.org/events/current-event" title="Events">Events</a></li> - <li><a href="https://www.apache.org/licenses/" title="License">License</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 ">Glossary</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-05-26</li> - <li id="projectVersion" class="pull-right">Version: 1.0.0-rc0</li> - </ul> - </div> - <div id="bodyColumn" > -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - --> -<h1>Glossary</h1> -<p>A Glossary provides appropriate vocabularies for business users and it allows the terms (words) to be related to each other and categorized so that they can be understood in different contexts. These terms can be then mapped to assets like a Database, tables, columns etc. This helps abstract the technical jargon associated with the repositories and allows the user to discover/work with data in the vocabulary that is more familiar to them.</p> -<div class="section"> -<div class="section"> -<h3><a name="Use_cases"></a>Use cases</h3> -<ul> - -<li>Ability to define rich glossary vocabularies using the natural terminology (technical terms and/or business terms).</li> -<li>Ability to semantically relate the term(s) to each other.</li> -<li>Ability to map assets to glossary terms(s).</li> -<li>Ability to organize these terms by categories. This adds more context to the term(s).</li> -<li>Allow categories to be arranged in hierarchy - to express broader and finer scopes.</li> -<li>Separate management of glossary term(s) from the metadata.</li> -</ul></div> -<div class="section"> -<h3><a name="What_is_a_Glossary_term_.3F"></a>What is a Glossary term ?</h3> -<p>A term is a useful word for an enterprise. For the term(s) to be useful and meaningful, they need to grouped around their use and context. A term in Apache Atlas must have a unique qualifiedName, there can be term(s) with same name but they cannot belong to the same glossary. Term(s) with same name can exist only across different glossaries. A term name can contain spaces, underscores and dashes (as natural ways of referring to words) but no “.” or “@”, as the qualifiedName takes the following form <tt>term name</tt>@<tt>glossary qualified name</tt>. The fully qualified name makes it easier to work with a specific term.</p> -<p>A term can only belong to single glossary and it’s lifecycle is bound to the same i.e. if the Glossary is deleted then the term gets deleted as well. A term can belong to zero or more categories, which allows scoping them into narrower or wider contexts. A term can be assigned/linked to zero or more entities in Apache Atlas. A term can be classified using classifications (tags) and the same classification gets applied to the entities that the term is assigned to.</p></div> -<div class="section"> -<h3><a name="What_is_a_Glossary_category_.3F"></a>What is a Glossary category ?</h3> -<p>A category is a way of organizing the term(s) so that the term’s context can be enriched. A category may or may not have contained hierarchies i.e. child category hierarchy. A category’s qualifiedName is derived using it’s hierarchical location within the glossary e.g. <tt>Category name</tt>.<tt>parent category qualifiedName</tt>. This qualified name gets updated when any hierarchical change happens, e.g. addition of a parent category, removal of parent category or change of parent category.</p></div> -<div class="section"> -<h3><a name="UI_interactions"></a>UI interactions</h3> -<p>Apache Atlas UI has been updated to provide user-friendly interface to work with various aspects of glossary, including:</p> -<ul> - -<li>create glossaries, terms and categories</li> -<li>create various relationships between terms - like synonymns, antonymns, seeAlso</li> -<li>organize categories in hierarchies</li> -<li>assign terms to entities</li> -<li>search for entities using associated terms</li> -</ul> -<p>Most of glossary related UI can be found under a new tab named GLOSSARY, which is present right next to existing familiar tabs SEARCH and CLASSIFICATION.</p> -<div class="section"> -<h4><a name="Glossary_tab"></a><b>Glossary tab</b></h4> -<p>Apache Atlas UI provides two ways to work with a glossary - term view and category view.</p> -<p>Term view allows an user to perform the following operations:</p> -<ul> - -<li>create, update and delete terms</li> -<li>add, remove and update classifications associated with a term</li> -<li>add, remove and update categorization of a term</li> -<li>create various relationships between terms</li> -<li>view entities associated with a term</li> -</ul> -<p>Category view allows an user to perform the following operations:</p> -<ul> - -<li>create, update and delete categories and sub-categories</li> -<li>associate terms to categories</li> -</ul> -<p>Users can switch between term view and category view using toggle provided in GLOSSARY tab.</p> -<img src="images/markdown/terms_view.png" width="250" style="border:2px solid black; margin-left:50px" alt="" /> - -<p></p> -<img src="images/markdown/category_view_1.png" width="250" style="border:2px solid black; margin-left:50px" alt="" /> - -<div class="section"> -<h5><a name="Term_context_menu"></a>Term context menu</h5> -<ul> - -<li>Create a new term<br /> -Clicking on the <b>ellipsis (…)</b> next to a glossary name shows a pop-over menu that allows users to create a term in the glossary or delete the glossary - as shown below.</li> -</ul> -<img src="images/markdown/term_view_context.png" width="400" style="border:2px solid black; margin-left:50px" alt="" /> - -<ul> - -<li>To delete a term<br /> -Clicking on the <b>ellipsis (…)</b> next to a term name shows a pop-over menu that allows users to delete the term - as shown below.</li> -</ul> -<img src="images/markdown/term_delete_context.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Term_detail_page"></a>Term detail page</h5> -<p>Various details of a term can be viewed by clicking on the term name in the glossary UI. Each tabs under the details page provides different details of the term.</p> -<ul> - -<li>Entities tab shows the entities that are assigned to the selected term</li> -<li>Classifications tab shows the classification(s) associated with the selected term</li> -<li>Related terms tab shows the terms that are related to the selected term</li> -</ul> -<img src="images/markdown/term_details.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Add_classification_to_Term"></a>Add classification to Term</h5> -<p>Clicking on <b>+</b> next to classification label to add a classification to the term.</p> -<img src="images/markdown/term_add_classification_1.png" width="400" style="border:2px solid black; margin-left:50px" alt="Add classification" /> - -<p></p> -<img src="images/markdown/term_add_classification_2.png" width="400" style="border:2px solid black; margin-left:50px" alt="Add classification - details" /> - -<p></p> -<img src="images/markdown/term_with_classification.png" width="400" style="border:2px solid black; margin-left:50px" alt="Classifications associated with term" /> -</div> -<div class="section"> -<h5><a name="Create_term_relationship_with_other_term"></a>Create term relationship with other term</h5> -<p>Click on “Related Terms” tab when viewing term details. Clicking on <b>+</b> will allow linking a term with the current term.</p> -<img src="images/markdown/terms_related_terms.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Categorize_a_term"></a>Categorize a term</h5> -<p>Click on <b>+</b> next to categories label to categorize a term. A modal dialog will be presented for choosing a category.</p> -<img src="images/markdown/term_add_category.png" width="500" style="border:2px solid black; margin-left:50px" alt="" /> -</div></div> -<div class="section"> -<h4><a name="Category_view"></a><b>Category view</b></h4> -<p>When the toggle switch is on category, the panel will list down all glossaries along-with the category hierarchy. Here’s a list of possible interactions under this view.</p> -<ul> - -<li>Expanded view</li> -</ul> -<img src="images/markdown/category_view_2.png" width="250" style="border:2px solid black; margin-left:50px" alt="" /> - -<div class="section"> -<h5><a name="Category_context_menu"></a>Category context menu</h5> -<p>Clicking on <b>ellipsis (…)</b> next to the category name will present a category context menu.</p> -<ul> - -<li>To create a new category</li> -</ul> -<img src="images/markdown/category_view_glossary_context.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> - -<ul> - -<li>To create a sub-category or delete a category</li> -</ul> -<img src="images/markdown/category_view_category_context_1.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Category_detail_page"></a>Category detail page</h5> -<p>Once a category is selected, the details will be presented in the right pane.</p> -<img src="images/markdown/category_details_with_terms.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Categorize_term"></a>Categorize term</h5> -<p>Click on <b>+</b> next to the terms label to link a term under selected category.</p> -<img src="images/markdown/category_add_term.png" width="600" style="border:2px solid black; margin-left:50px" alt="" /> - -<p></p> -<img src="images/markdown/category_add_term_1.png" width="500" style="border:2px solid black; margin-left:50px" alt="" /> - -<p></p> -<img src="images/markdown/category_add_term_2.png" width="500" style="border:2px solid black; margin-left:50px" alt="" /> -</div></div> -<div class="section"> -<h4><a name="Term_assignment_flow"></a><b>Term assignment flow</b></h4> -<p>Terms can be assigned to an entity either from the results page or entity details page.</p> -<div class="section"> -<h5><a name="Assign_term"></a>Assign term</h5> -<p>Click on <b>+</b> under “terms” column (if associating term from search page)</p> -<img src="images/markdown/entity_search_add_term.png" width="" style="border:2px solid black; margin-left:50px" alt="" /> - -<p>Click on <b>+</b> next to “terms” label (if viewing a specific entity details)</p> -<img src="images/markdown/entity_details_add_term.png" width="" style="border:2px solid black; margin-left:50px" alt="" /> - -<p>Both the actions will present the following modal, follow prompts on screen to complete term assignment.</p> -<img src="images/markdown/entity_add_term_modal.png" width="500" style="border:2px solid black; margin-left:50px" alt="" /> -</div> -<div class="section"> -<h5><a name="Propagated_classification"></a>Propagated classification</h5> -<p>If a term has classification then the entity is has been assigned inherits the same.</p> -<img src="images/markdown/term_details_with_classification.png" width="" style="border:2px solid black; margin-left:50px" alt="" /> - -<p></p> -<img src="images/markdown/entity_assigned_term_with_tag.png" width="500" style="border:2px solid black; margin-left:50px" alt="" /> -</div></div> -<div class="section"> -<h4><a name="Search_using_a_term"></a><b>Search using a term</b></h4> -<p>Apache Atlas basic-search API and UI have been updated to support term as a search criteria. This allows users to find entities associated with a given term. Basic search UI now includes a new input drop-down for term based searches.</p> -<img src="images/markdown/term_search.png" width="250" style="border:2px solid black; margin-left:50px" alt="" /> -<hr /></div> -<div class="section"> -<h4><a name="Summary_of_REST_interactions"></a>Summary of REST interactions</h4> -<p>Following operations are supported by Atlas, the details of REST interface can be found <a href="api/v2/index.html">here</a></p> -<div class="section"> -<h5><a name="JSON_structure"></a>JSON structure</h5> -<ul> - -<li>Glossary</li> -</ul> - -<div> -<div> -<pre class="source">{ - "guid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85", - "qualifiedName": "SampleBank", - "displayName": "Banking", - "shortDescription": "Glossary of bank", - "longDescription": "Glossary of bank - long description", - "language": "English", - "usage": "N/A", - "terms": [ - { - "termGuid": "502d34f1-b85f-4ad9-9d9f-fe7020ff0acb", - "relationGuid": "6bb803e4-3af6-4924-aad6-6ad9f95ecd14", - "displayText": "A savings account" - }, { - "termGuid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c", - "relationGuid": "dbc46795-76ff-4f68-9043-be0eff0bc0f3", - "displayText": "15-30 yr mortgage" - }, { - "termGuid": "998e3692-51a8-47fe-b3a0-0d9f794437eb", - "relationGuid": "0dcd31b9-a81c-4185-ad4b-9209a97c305b", - "displayText": "A checking account" - }, { - "termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44", - "relationGuid": "e71c4a5d-694b-47a5-a41e-126ade857279", - "displayText": "ARM loans" - }], - "categories": [{ - "categoryGuid": "dd94859e-7453-4bc9-b634-a17fc14590f8", - "parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3", - "relationGuid": "a0b7da02-1ccd-4415-bc54-3d0cdb8857e7", - "displayText": "Accounts" - }, { - "categoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3", - "relationGuid": "0e84a358-a4aa-4bd3-b806-497a6962ae1d", - "displayText": "Customer" - }, { - "categoryGuid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f", - "parentCategoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3", - "relationGuid": "7757b031-4e25-43a8-bf77-946f7f06c67a", - "displayText": "Loans" - }] -} -</pre></div></div> - -<ul> - -<li>Term</li> -</ul> - -<div> -<div> -<pre class="source">{ - "guid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c", - "qualifiedName": "fixed_mtg@SampleBank", - "displayName": "15-30 yr mortgage", - "shortDescription": "Short description", - "longDescription": "Long description", - "examples": ["N/A"], - "abbreviation": "FMTG", - "anchor": { - "glossaryGuid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85", - "relationGuid": "dbc46795-76ff-4f68-9043-be0eff0bc0f3" - }, - "categories": [{ - "categoryGuid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f", - "relationGuid": "b4cddd33-7b0c-41e2-9324-afe549ec6ada", - "displayText": "Loans" - }], - "seeAlso" : [], - "synonyms" : [], - "antonyms" : [], - "replacedBy" : [], - "replacementTerms" : [], - "translationTerms" : [], - "translatedTerms" : [], - "isA" : [], - "classifies" : [], - "preferredTerms" : [], - "preferredToTerms": [ { - "termGuid" : "c4e2b956-2589-4648-8596-240d3bea5e44", - "displayText": "ARM Loans" - }] -} -</pre></div></div> - -<ul> - -<li>Category</li> -</ul> - -<div> -<div> -<pre class="source">{ - "guid": "7f041401-de8c-443f-a3b7-7bf5a910ff6f", - "qualifiedName": "Loans.Customer@HortoniaBank", - "displayName": "Loans", - "shortDescription": "Loan categorization", - "anchor": { - "glossaryGuid": "2f341934-f18c-48b3-aa12-eaa0a2bfce85", - "relationGuid": "7757b031-4e25-43a8-bf77-946f7f06c67a" - }, - "parentCategory": { - "categoryGuid": "e6a3df1f-5670-4f9e-84da-91f77d008ce3", - "relationGuid": "8a0a8e11-0bb5-483b-b7d6-cfe0b1d55ef6" - }, - "childrenCategories" : [], - "terms": [{ - "termGuid": "e441a540-ee55-4fc8-8eaf-4b9943d8929c", - "relationGuid": "b4cddd33-7b0c-41e2-9324-afe549ec6ada", - "displayText": "15-30 yr mortgage" - }, { - "termGuid": "c4e2b956-2589-4648-8596-240d3bea5e44", - "relationGuid": "8db1e784-4f04-4eda-9a58-6c9535a95451", - "displayText": "ARM loans" - }] -} -</pre></div></div> -</div> -<div class="section"> -<h5><a name="CREATE_operations"></a>CREATE operations</h5> -<ol style="list-style-type: decimal"> - -<li>Create a glossary</li> -<li>Create a term</li> -<li>Create a categorized term</li> -<li>Create term with relations</li> -<li>Create a category</li> -<li>Create a category with hierarchy</li> -<li>Create category and categorize term(s)</li> -<li>Assign term to entities</li> -</ol> -<p><b>NOTE:</b></p> -<ul> - -<li>During create operations glossary, term and category get an auto assigned GUID and qualifiedName.</li> -<li>To create a category with children, the children MUST be created beforehand.</li> -<li>To create a term belonging to a category, the category MUST be created beforehand.</li> -<li>To create term with relations, related term(s) MUST be created beforehand.</li> -</ul><hr /></div> -<div class="section"> -<h5><a name="READ_operations"></a>READ operations</h5> -<ol style="list-style-type: decimal"> - -<li>Get glossary by GUID - Gives all terms and categories (headers) belonging to the glossary.</li> -<li>Get all Glossaries - Gives all glossaries with terms and categories (headers) belonging to the respective glossary.</li> -<li>Get a term by GUID - Gives details about the term, categories it belongs to (if any) and any related term(s).</li> -<li>Get a category by GUID - Gives details about the category, category hierarchy (if any) and term(s) belonging to the category.</li> -<li>Get all terms of a given glossary - Gives all terms (with details as mentioned in #3) belonging to given glossary.</li> -<li>Get all categories of a given glossary - Gives all categories (with details as mentioned in #4) belonging to given glossary.</li> -<li>Get all terms related to given term - Gives all terms related/linked to the given term.</li> -<li>Get all categories related to a given category (parent and children)</li> -<li>Get all terms for a given category</li> -</ol><hr /></div> -<div class="section"> -<h5><a name="UPDATE_operations"></a>UPDATE operations</h5> -<ol style="list-style-type: decimal"> - -<li>Partial update of glossary</li> -<li>Partial update of term</li> -<li>Partial update of category</li> -<li>Update a given glossary</li> -<li>Update a given term</li> -<li>Update a given category</li> -</ol> -<p><b>NOTE:</b></p> -<ul> - -<li>Partial update only deals with the <b><i>primitive attributes</i></b> defined in the Glossary model file.</li> -<li>GUID and qualifiedName can’t be changed once assigned. Only way to this is to delete and recreate the required object.</li> -<li>Anchors <b>can’t</b> be removed in any updates</li> -<li>Update APIs expect the JSON to be modified <b>in-place</b> after the <b>GET</b> call. Any <b><i>missing</i></b> attributes/relations will be <b><i>deleted</i></b>.</li> -<li>Any update to category’s hierarchy leads to a cascaded update of the hierarchy under it e.g. anchor change would affect all children, parent change would affect the qualifiedName of self and children.</li> -</ul><hr /></div> -<div class="section"> -<h5><a name="DELETE_operations"></a>DELETE operations</h5> -<ol style="list-style-type: decimal"> - -<li>Delete glossary - Also deletes all categories and terms anchored to given glossary. This delete is <b><i>blocked</i></b> if any term has been <b><i>assigned</i></b> to an entity.</li> -<li>Delete term - Only deletes the term <b><i>if</i></b> it’s not associated/assigned to any entity.</li> -<li>Delete category - <b><i>Only</i></b> deletes the given category, all children become top-level categories.</li> -<li>Remove term assignment from entity</li> -</ol></div></div></div></div> - </div> - </div> - <hr/> - <footer> - <div class="container"> - <div class="row"> -<p><a href="https://www.apache.org/foundation/contributing"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support the ASF" id="asf-logo" height="20" width="20" /></a>Copyright © 2011-2018 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/> -Apache Atlas, Atlas, Apache, the Apache feather logo are trademarks of the <a href="https://www.apache.org">Apache Software Foundation</a>.<br/> -All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </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> http://git-wip-us.apache.org/repos/asf/atlas-website/blob/af60ed7f/1.0.0-rc0/HighAvailability.html ---------------------------------------------------------------------- diff --git a/1.0.0-rc0/HighAvailability.html b/1.0.0-rc0/HighAvailability.html deleted file mode 100644 index 827141d..0000000 --- a/1.0.0-rc0/HighAvailability.html +++ /dev/null @@ -1,317 +0,0 @@ -<!DOCTYPE html> -<!-- - | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/twiki/HighAvailability.twiki at 2018-05-26 - | 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="20180526" /> - <meta http-equiv="Content-Language" content="en" /> - <title>Apache Atlas – Fault Tolerance and High Availability Options</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/1.0.0-alpha/" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="http://www.apache.org/dyn/closer.cgi/atlas/1.0.0-rc0/" title="1.0.0-rc0">1.0.0-rc0</a></li> - <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://www.apache.org/dyn/closer.cgi/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="../1.0.0-alpha/index.html" title="1.0.0-alpha">1.0.0-alpha</a></li> - <li><a href="../1.0.0-rc0/index.html" title="1.0.0-rc0">1.0.0-rc0</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="https://www.apache.org/events/current-event" title="Events">Events</a></li> - <li><a href="https://www.apache.org/licenses/" title="License">License</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 ">Fault Tolerance and High Availability Options</li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2018-05-26</li> - <li id="projectVersion" class="pull-right">Version: 1.0.0-rc0</li> - </ul> - </div> - <div id="bodyColumn" > -<div class="section"> -<h2><a name="Fault_Tolerance_and_High_Availability_Options"></a>Fault Tolerance and High Availability Options</h2></div> -<div class="section"> -<h3><a name="Introduction"></a>Introduction</h3> -<p>Apache Atlas uses and interacts with a variety of systems to provide metadata management and data lineage to data administrators. By choosing and configuring these dependencies appropriately, it is possible to achieve a high degree of service availability with Atlas. This document describes the state of high availability support in Atlas, including its capabilities and current limitations, and also the configuration required for achieving this level of high availability.</p> -<p><a href="./Architecture.html">The architecture page</a> in the wiki gives an overview of the various components that make up Atlas. The options mentioned below for various components derive context from the above page, and would be worthwhile to review before proceeding to read this page.</p></div> -<div class="section"> -<h3><a name="Atlas_Web_Service"></a>Atlas Web Service</h3> -<p>Currently, the Atlas Web Service has a limitation that it can only have one active instance at a time. In earlier releases of Atlas, a backup instance could be provisioned and kept available. However, a manual failover was required to make this backup instance active.</p> -<p>From this release, Atlas will support multiple instances of the Atlas Web service in an active/passive configuration with automated failover. This means that users can deploy and start multiple instances of the Atlas Web Service on different physical hosts at the same time. One of these instances will be automatically selected as an 'active' instance to service user requests. The others will automatically be deemed 'passive'. If the 'active' instance becomes unavailable either because it is deliberately stopped, or due to unexpected failures, one of the other instances will automatically be elected as an 'active' instance and start to service user requests.</p> -<p>An 'active' instance is the only instance that can respond to user requests correctly. It can create, delete, modify or respond to queries on metadata objects. A 'passive' instance will accept user requests, but will redirect them using HTTP redirect to the currently known 'active' instance. Specifically, a passive instance will not itself respond to any queries on metadata objects. However, all instances (both active and passive), will respond to admin requests that return information about that instance.</p> -<p>When configured in a High Availability mode, users can get the following operational benefits:</p> -<p></p> -<ul> -<li><b>Uninterrupted service during maintenance intervals</b>: If an active instance of the Atlas Web Service needs to be brought down for maintenance, another instance would automatically become active and can service requests.</li> -<li><b>Uninterrupted service in event of unexpected failures</b>: If an active instance of the Atlas Web Service fails due to software or hardware errors, another instance would automatically become active and can service requests.</li></ul> -<p>In the following sub-sections, we describe the steps required to setup High Availability for the Atlas Web Service. We also describe how the deployment and client can be designed to take advantage of this capability. Finally, we describe a few details of the underlying implementation.</p></div> -<div class="section"> -<h4><a name="Setting_up_the_High_Availability_feature_in_Atlas"></a>Setting up the High Availability feature in Atlas</h4> -<p>The following pre-requisites must be met for setting up the High Availability feature.</p> -<p></p> -<ul> -<li>Ensure that you install Apache Zookeeper on a cluster of machines (a minimum of 3 servers is recommended for production).</li> -<li>Select 2 or more physical machines to run the Atlas Web Service instances on. These machines define what we refer to as a 'server ensemble' for Atlas.</li></ul> -<p>To setup High Availability in Atlas, a few configuration options must be defined in the <tt>atlas-application.properties</tt> file. While the complete list of configuration items are defined in the <a href="./Configuration.html">Configuration Page</a>, this section lists a few of the main options.</p> -<p></p> -<ul> -<li>High Availability is an optional feature in Atlas. Hence, it must be enabled by setting the configuration option <tt>atlas.server.ha.enabled</tt> to true.</li> -<li>Next, define a list of identifiers, one for each physical machine you have selected for the Atlas Web Service instance. These identifiers can be simple strings like <tt>id1</tt>, <tt>id2</tt> etc. They should be unique and should not contain a comma.</li> -<li>Define a comma separated list of these identifiers as the value of the option <tt>atlas.server.ids</tt>.</li> -<li>For each physical machine, list the IP Address/hostname and port as the value of the configuration <tt>atlas.server.address.id</tt>, where <tt>id</tt> refers to the identifier string for this physical machine. -<ul> -<li>For e.g., if you have selected 2 machines with hostnames <tt>host1.company.com</tt> and <tt>host2.company.com</tt>, you can define the configuration options as below:</li></ul></li></ul> -<div class="source"><pre class="prettyprint"> - atlas.server.ids=id1,id2 - atlas.server.address.id1=host1.company.com:21000 - atlas.server.address.id2=host2.company.com:21000 - -</pre></div> -<p></p> -<ul> -<li>Define the Zookeeper quorum which will be used by the Atlas High Availability feature.</li></ul> -<div class="source"><pre class="prettyprint"> - atlas.server.ha.zookeeper.connect=zk1.company.com:2181,zk2.company.com:2181,zk3.company.com:2181 - -</pre></div> -<p></p> -<ul> -<li>You can review other configuration options that are defined for the High Availability feature, and set them up as desired in the <tt>atlas-application.properties</tt> file.</li> -<li>For production environments, the components that Atlas depends on must also be set up in High Availability mode. This is described in detail in the following sections. Follow those instructions to setup and configure them.</li> -<li>Install the Atlas software on the selected physical machines.</li> -<li>Copy the <tt>atlas-application.properties</tt> file created using the steps above to the configuration directory of all the machines.</li> -<li>Start the dependent components.</li> -<li>Start each instance of the Atlas Web Service.</li></ul> -<p>To verify that High Availability is working, run the following script on each of the instances where Atlas Web Service is installed.</p> -<div class="source"><pre class="prettyprint"> -$ATLAS_HOME/bin/atlas_admin.py -status - -</pre></div> -<p>This script can print one of the values below as response:</p> -<p></p> -<ul> -<li><b>ACTIVE</b>: This instance is active and can respond to user requests.</li> -<li><b>PASSIVE</b>: This instance is PASSIVE. It will redirect any user requests it receives to the current active instance.</li> -<li><b>BECOMING_ACTIVE</b>: This would be printed if the server is transitioning to become an ACTIVE instance. The server cannot service any metadata user requests in this state.</li> -<li><b>BECOMING_PASSIVE</b>: This would be printed if the server is transitioning to become a PASSIVE instance. The server cannot service any metadata user requests in this state.</li></ul> -<p>Under normal operating circumstances, only one of these instances should print the value <b>ACTIVE</b> as response to the script, and the others would print <b>PASSIVE</b>.</p></div> -<div class="section"> -<h4><a name="Configuring_clients_to_use_the_High_Availability_feature"></a>Configuring clients to use the High Availability feature</h4> -<p>The Atlas Web Service can be accessed in two ways:</p> -<p></p> -<ul> -<li><b>Using the Atlas Web UI</b>: This is a browser based client that can be used to query the metadata stored in Atlas.</li> -<li><b>Using the Atlas REST API</b>: As Atlas exposes a RESTful API, one can use any standard REST client including libraries in other applications. In fact, Atlas ships with a client called AtlasClient that can be used as an example to build REST client access.</li></ul> -<p>In order to take advantage of the High Availability feature in the clients, there are two options possible.</p></div> -<div class="section"> -<h5><a name="Using_an_intermediate_proxy"></a>Using an intermediate proxy</h5> -<p>The simplest solution to enable highly available access to Atlas is to install and configure some intermediate proxy that has a capability to transparently switch services based on status. One such proxy solution is <a class="externalLink" href="http://www.haproxy.org/">HAProxy</a>.</p> -<p>Here is an example HAProxy configuration that can be used. Note this is provided for illustration only, and not as a recommended production configuration. For that, please refer to the HAProxy documentation for appropriate instructions.</p> -<div class="source"><pre class="prettyprint"> -frontend atlas_fe - bind *:41000 - default_backend atlas_be - -backend atlas_be - mode http - option httpchk get /api/atlas/admin/status - http-check expect string ACTIVE - balance roundrobin - server host1_21000 host1:21000 check - server host2_21000 host2:21000 check backup - -listen atlas - bind localhost:42000 - -</pre></div> -<p>The above configuration binds HAProxy to listen on port 41000 for incoming client connections. It then routes the connections to either of the hosts host1 or host2 depending on a HTTP status check. The status check is done using a HTTP GET on the REST URL <tt>/api/atlas/admin/status</tt>, and is deemed successful only if the HTTP response contains the string ACTIVE.</p></div> -<div class="section"> -<h5><a name="Using_automatic_detection_of_active_instance"></a>Using automatic detection of active instance</h5> -<p>If one does not want to setup and manage a separate proxy, then the other option to use the High Availability feature is to build a client application that is capable of detecting status and retrying operations. In such a setting, the client application can be launched with the URLs of all Atlas Web Service instances that form the ensemble. The client should then call the REST URL <tt>/api/atlas/admin/status</tt> on each of these to determine which is the active instance. The response from the Active instance would be of the form <tt>{Status:ACTIVE}</tt>. Also, when the client faces any exceptions in the course of an operation, it should again determine which of the remaining URLs is active and retry the operation.</p> -<p>The AtlasClient class that ships with Atlas can be used as an example client library that implements the logic for working with an ensemble and selecting the right Active server instance.</p> -<p>Utilities in Atlas, like <tt>quick_start.py</tt> and <tt>import-hive.sh</tt> can be configured to run with multiple server URLs. When launched in this mode, the AtlasClient automatically selects and works with the current active instance. If a proxy is set up in between, then its address can be used when running quick_start.py or import-hive.sh.</p></div> -<div class="section"> -<h4><a name="Implementation_Details_of_Atlas_High_Availability"></a>Implementation Details of Atlas High Availability</h4> -<p>The Atlas High Availability work is tracked under the master JIRA <a class="externalLink" href="https://issues.apache.org/jira/browse/ATLAS-510">ATLAS-510</a>. The JIRAs filed under it have detailed information about how the High Availability feature has been implemented. At a high level the following points can be called out:</p> -<p></p> -<ul> -<li>The automatic selection of an Active instance, as well as automatic failover to a new Active instance happen through a leader election algorithm.</li> -<li>For leader election, we use the <a class="externalLink" href="http://curator.apache.org/curator-recipes/leader-latch.html">Leader Latch Recipe</a> of <a class="externalLink" href="http://curator.apache.org">Apache Curator</a>.</li> -<li>The Active instance is the only one which initializes, modifies or reads state in the backend stores to keep them consistent.</li> -<li>Also, when an instance is elected as Active, it refreshes any cached information from the backend stores to get up to date.</li> -<li>A servlet filter ensures that only the active instance services user requests. If a passive instance receives these requests, it automatically redirects them to the current active instance.</li></ul></div> -<div class="section"> -<h3><a name="Metadata_Store"></a>Metadata Store</h3> -<p>As described above, Atlas uses <a href="./JanusGraph.html">JanusGraph</a> to store the metadata it manages. By default, Atlas uses a standalone HBase instance as the backing store for <a href="./JanusGraph.html">JanusGraph</a>. In order to provide HA for the metadata store, we recommend that Atlas be configured to use distributed HBase as the backing store for <a href="./JanusGraph.html">JanusGraph</a>. Doing this implies that you could benefit from the HA guarantees HBase provides. In order to configure Atlas to use HBase in HA mode, do the following:</p> -<p></p> -<ul> -<li>Choose an existing HBase cluster that is set up in HA mode to configure in Atlas (OR) Set up a new HBase cluster in <a class="externalLink" href="http://hbase.apache.org/book.html#quickstart_fully_distributed">HA mode</a>. -<ul> -<li>If setting up HBase for Atlas, please following instructions listed for setting up HBase in the <a href="./InstallationSteps.html">Installation Steps</a>.</li></ul></li> -<li>We recommend using more than one HBase masters (at least 2) in the cluster on different physical hosts that use Zookeeper for coordination to provide redundancy and high availability of HBase. -<ul> -<li>Refer to the <a href="./Configuration.html">Configuration page</a> for the options to configure in atlas.properties to setup Atlas with HBase.</li></ul></li></ul></div> -<div class="section"> -<h3><a name="Index_Store"></a>Index Store</h3> -<p>As described above, Atlas indexes metadata through <a href="./JanusGraph.html">JanusGraph</a> to support full text search queries. In order to provide HA for the index store, we recommend that Atlas be configured to use Solr or Elasticsearch as the backing index store for <a href="./JanusGraph.html">JanusGraph</a>.</p></div> -<div class="section"> -<h4><a name="Solr"></a>Solr</h4> -<p>In order to configure Atlas to use Solr in HA mode, do the following:</p> -<p></p> -<ul> -<li>Choose an existing SolrCloud cluster setup in HA mode to configure in Atlas (OR) Set up a new <a class="externalLink" href="https://cwiki.apache.org/confluence/display/solr/SolrCloud">SolrCloud cluster</a>. -<ul> -<li>Ensure Solr is brought up on at least 2 physical hosts for redundancy, and each host runs a Solr node.</li> -<li>We recommend the number of replicas to be set to at least 2 for redundancy.</li></ul></li> -<li>Create the SolrCloud collections required by Atlas, as described in <a href="./InstallationSteps.html">Installation Steps</a></li> -<li>Refer to the <a href="./Configuration.html">Configuration page</a> for the options to configure in atlas.properties to setup Atlas with Solr.</li></ul></div> -<div class="section"> -<h4><a name="Elasticsearch__.28Tech_Preview.29"></a>Elasticsearch (Tech Preview)</h4> -<p>In order to configure Atlas to use Elasticsearch in HA mode, do the following:</p> -<p></p> -<ul> -<li>Choose an existing Elasticsearch cluster setup, (OR) setup a new cluster <a class="externalLink" href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/setup.html">Elasticsearch cluster</a>. -<ul> -<li>Ensure that Elasticsearch is brought up on at least five physical hosts for redundancy.</li> -<li>A replica count of 3 is recommended</li></ul></li> -<li>Refer to the <a href="./Configuration.html">Configuration page</a> for the options to configure in atlas.properties to setup Atlas with Elasticsearch.</li></ul></div> -<div class="section"> -<h3><a name="Notification_Server"></a>Notification Server</h3> -<p>Metadata notification events from Hooks are sent to Atlas by writing them to a Kafka topic called <b>ATLAS_HOOK</b>. Similarly, events from Atlas to other integrating components like Ranger, are written to a Kafka topic called <b>ATLAS_ENTITIES</b>. Since Kafka persists these messages, the events will not be lost even if the consumers are down as the events are being sent. In addition, we recommend Kafka is also setup for fault tolerance so that it has higher availability guarantees. In order to configure Atlas to use Kafka in HA mode, do the following:</p> -<p></p> -<ul> -<li>Choose an existing Kafka cluster set up in HA mode to configure in Atlas (OR) Set up a new Kafka cluster.</li> -<li>We recommend that there are more than one Kafka brokers in the cluster on different physical hosts that use Zookeeper for coordination to provide redundancy and high availability of Kafka. -<ul> -<li>Setup at least 2 physical hosts for redundancy, each hosting a Kafka broker.</li></ul></li> -<li>Set up Kafka topics for Atlas usage: -<ul> -<li>The number of partitions for the ATLAS topics should be set to 1 (numPartitions)</li> -<li>Decide number of replicas for Kafka topic: Set this to at least 2 for redundancy.</li> -<li>Run the following commands:</li></ul></li></ul> -<div class="source"><pre class="prettyprint"> - $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper <list of zookeeper host:port entries> --topic ATLAS_HOOK --replication-factor <numReplicas> --partitions 1 - $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper <list of zookeeper host:port entries> --topic ATLAS_ENTITIES --replication-factor <numReplicas> --partitions 1 - Here KAFKA_HOME points to the Kafka installation directory. - -</pre></div> -<p></p> -<ul> -<li>In atlas-application.properties, set the following configuration:</li></ul> -<div class="source"><pre class="prettyprint"> - atlas.notification.embedded=false - atlas.kafka.zookeeper.connect=<comma separated list of servers forming Zookeeper quorum used by Kafka> - atlas.kafka.bootstrap.servers=<comma separated list of Kafka broker endpoints in host:port form> - Give at least 2 for redundancy. - -</pre></div></div> -<div class="section"> -<h3><a name="Known_Issues"></a>Known Issues</h3> -<p></p> -<ul> -<li>If the HBase region servers hosting the Atlas table are down, Atlas would not be able to store or retrieve metadata from HBase until they are brought back online.</li></ul></div> - </div> - </div> - <hr/> - <footer> - <div class="container"> - <div class="row"> -<p><a href="https://www.apache.org/foundation/contributing"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support the ASF" id="asf-logo" height="20" width="20" /></a>Copyright © 2011-2018 The Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/> -Apache Atlas, Atlas, Apache, the Apache feather logo are trademarks of the <a href="https://www.apache.org">Apache Software Foundation</a>.<br/> -All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p> - </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>