安装说明
安装与运行 Apache Atlas
安装 Apache Atlas
在您希望安装 Apache Atlas 的目录中,执行以下命令:
tar -xzvf apache-atlas-{project.version}-server.tar.gz
cd apache-atlas-{project.version}使用本地 Apache HBase 和 Apache Solr 运行 Apache Atlas
若要让 Apache Atlas 使用随 Atlas 启动/停止一起启动和停止的本地 Apache HBase 和 Apache Solr 实例,请运行以下命令:
export MANAGE_LOCAL_HBASE=true
export MANAGE_LOCAL_SOLR=true
bin/atlas_start.py使用 BerkeleyDB 和 Apache Solr 运行 Apache Atlas
要使用 BerkeleyDB 以及本地的 Apache Solr 和 Apache Zookeeper 实例运行 Apache Atlas,请执行以下命令:
export MANAGE_LOCAL_SOLR=true
bin/atlas_start.py使用 Apache Atlas
- 若要验证 Apache Atlas 服务器是否已启动并正常运行,请运行如下所示的 curl 命令:
curl -u username:password http://localhost:21000/api/atlas/admin/version
{"Description":"Metadata Management and Data Governance Platform over Hadoop","Version":"2.2.0","Name":"apache-atlas"}- 运行快速入门,加载示例模型和数据
bin/quick_start.py
Enter username for atlas :-
Enter password for atlas :-- 使用浏览器访问 Apache Atlas 界面:http://localhost:21000
停止 Apache Atlas 服务
要停止 Apache Atlas,请运行以下命令:
bin/atlas_stop.py配置 Apache Atlas
默认情况下,Apache Atlas 使用的配置目录是 {package dir}/conf。若要覆盖此设置,请将环境变量 ATLAS_CONF 设置为配置目录的路径。
运行 Apache Atlas 所需的环境变量可以在配置目录下的 atlas-env.sh 文件中设置。Apache Atlas 脚本会在执行任何命令之前加载(source)该文件。可以设置以下环境变量。
# The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
#export JAVA_HOME=
any additional java opts you want to set. This will apply to both client and server operations
#export ATLAS_OPTS=
any additional java opts that you want to set for client only
#export ATLAS_CLIENT_OPTS=
java heap size we want to set for the client. Default is 1024 MB
#export ATLAS_CLIENT_HEAP=
any additional opts you want to set for atlas service.
#export ATLAS_SERVER_OPTS=
java heap size we want to set for the atlas server. Default is 1024 MB
#export ATLAS_SERVER_HEAP=
What is considered as atlas home dir. Default is the base location of the installed software
#export ATLAS_HOME_DIR=
Where log files are stored. Default is logs directory under the base install location
#export ATLAS_LOG_DIR=
Where pid files are stored. Default is logs directory under the base install location
#export ATLAS_PID_DIR=
Where do you want to expand the war file. By Default, it is in /server/webapp dir under the base install dir.
#export ATLAS_EXPANDED_WEBAPP_DIR=支持大量元数据对象的设置
如果你计划存储大量元数据对象,建议使用经过调优的值,以获得更好的 JVM GC 性能。
以下是常见的服务端配置选项:
export ATLAS_SERVER_OPTS="-server -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dumps/atlas_server.hprof -Xloggc:logs/gc-worker.log -verbose:gc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1m -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps"-XX:SoftRefLRUPolicyMSPerMB 选项被发现对于在大量并发用户的查询密集型工作负载中调节 GC 性能尤其有帮助。
以下值推荐用于 JDK 8:
export ATLAS_SERVER_HEAP="-Xms15360m -Xmx15360m -XX:MaxNewSize=5120m -XX:MetaspaceSize=100M -XX:MaxMetaspaceSize=512m"macOS 用户注意 如果你使用的是 macOS,你需要配置 ATLAS_SERVER_OPTS(上文已作说明)。
在 {package dir}/conf/atlas-env.sh 中取消以下行的注释
export ATLAS_SERVER_OPTS=并将其修改为如下所示
export ATLAS_SERVER_OPTS="-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="将 Apache HBase 配置为图存储库的存储后端
默认情况下,Apache Atlas 使用 JanusGraph 作为图存储库,这也是目前唯一可用的图存储库实现。当前支持的 Apache HBase 版本为 1.1.x。有关如何将 Apache Atlas 的图持久化配置到 Apache HBase 上的详细信息,请参阅配置部分中的「图持久化引擎 - HBase」。
Apache Atlas 使用的 Apache HBase 表可以通过以下配置进行设置:
atlas.graph.storage.hbase.table=atlas
atlas.audit.hbase.tablename=apache_atlas_entity_audit配置 Apache Hbase 压缩算法
默认情况下,Atlas 使用 GZ(Gzip)作为 Hbase 的压缩方式。其他压缩算法可通过以下配置进行设置:
atlas.graph.storage.hbase.compression-algorithm=SNAPPY将 Apache Solr 配置为图库的索引后端
默认情况下,Apache Atlas 使用 JanusGraph 作为图库,这也是目前唯一可用的图库实现。要将 JanusGraph 配置为与 Apache Solr 配合使用,请遵循以下说明
- 如果 Apache Solr 尚未运行,请先安装。所支持的 Apache Solr 版本为 5.5.1,可从 http://archive.apache.org/dist/lucene/solr/5.5.1/solr-5.5.1.tgz 下载安装
- 以云模式启动 Apache Solr。
SolrCloud 模式使用 ZooKeeper 服务作为集群管理的高可用、集中式位置。对于小型集群,使用现有的 ZooKeeper 仲裁组即可。对于较大的集群,建议单独运行多个 ZooKeeper 仲裁组,且至少包含 3 台服务器。更多信息请参阅 Apache Solr 文档:https://cwiki.apache.org/confluence/display/solr/SolrCloud
- 例如,要在某台机器上启动一个监听 8983 端口的 Apache Solr 节点,可以使用如下命令:
$SOLR_HOME/bin/solr start -c -z <zookeeper_host:port> -p 8983- 在 SOLR_BIN 目录(例如 $SOLR_HOME/bin)下运行以下命令,为 Apache Atlas 所使用的各个索引在 Apache Solr 中创建对应的 collection。如果 Apache Atlas 与 Apache Solr 实例位于两台不同的主机上,请先将 ATLAS_HOME/conf/solr 目录下所需的配置文件从 Apache Atlas 实例所在主机复制到 Apache Solr 实例所在主机。下述命令中的 SOLR_CONF 指的是 Apache Solr 主机上已复制配置文件的目标目录:
$SOLR_BIN/solr create -c vertex_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor
$SOLR_BIN/solr create -c edge_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor
$SOLR_BIN/solr create -c fulltext_index -d SOLR_CONF -shards #numShards -replicationFactor #replicationFactor注意:如果未指定 numShards 和 replicationFactor,它们的默认值为 1,这对于在单节点实例上试用 ATLAS 与 Solr 的场景已经足够。否则,请根据 Solr 集群中的主机数量以及 maxShardsPerNode 配置来指定 numShards。分片数不能超过 SolrCloud 集群中 Solr 节点的总数。
副本数(replicationFactor)可根据所需的冗余度进行设置。
另请注意:如果设置了 SOLR_BIN 和 SOLR_CONF 环境变量,并且搜索索引后端设置为 'solr5',那么在 Apache Atlas 服务器启动时,会自动调用 Apache Solr 来创建索引。
- 修改 ATLAS 配置,使其指向所搭建的 Apache Solr 实例。请确保在 ATLAS_HOME/conf/atlas-application.properties 中将以下配置项设置为如下值
atlas.graph.index.search.backend=solr
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=<the ZK quorum setup for solr as comma separated value> eg: 10.1.6.4:2181,10.1.6.5:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=<SolrCloud Zookeeper Connection Timeout>. Default value is 60000 ms
atlas.graph.index.search.solr.zookeeper-session-timeout=<SolrCloud Zookeeper Session Timeout>. Default value is 60000 ms有关 JanusGraph Solr 配置的更多信息,请参阅 http://docs.janusgraph.org/0.2.0/solr.html
在云模式下运行 Apache Solr 的前提条件
内存 - Apache Solr 同时占用大量内存和 CPU 资源。请确保运行 Apache Solr 的服务器具备足够的内存、CPU 和磁盘。Apache Solr 在 32 GB RAM 下运行良好。请计划为 Apache Solr 进程分配尽可能多的内存
磁盘 - 如果需要存储的实体数量较多,请计划在 Apache Solr 存储索引数据的卷上至少保留 500 GB 可用空间
SolrCloud 支持复制和分片。强烈建议使用 SolrCloud,并在不同服务器上至少运行两个 Apache Solr 节点且启用复制。如果使用 SolrCloud,则还需要安装 ZooKeeper 并配置由 3 个或 5 个 ZooKeeper 节点组成的集群
以 http 模式启动 Apache Solr - 云模式下 Solr 的替代设置方案。
Solr 独立模式(Solr Standalone)用于单实例部署,其配置信息保存在文件系统中。它不需要 zookeeper,并且对中等规模的索引能提供高性能。可将其视为快速原型设计的良好选项,同时也是适用于开发环境的有效配置。在某些情况下,它在 Atlas 的生产级部署中表现出比 solr 云模式更好的性能。
更改 ATLAS 配置以指向独立的 Apache Solr 实例设置。请确保以下配置项在 ATLAS_HOME/conf/atlas-application.properties 中设置为如下值
atlas.graph.index.search.backend=solr
atlas.graph.index.search.solr.mode=http
atlas.graph.index.search.solr.http-urls=<a single or list of URLs for the Solr instances must be provided.> eg: localhost:2181,10.1.6.5:2181注意:使用 embedded-hbase-solr profile 时,Solr 独立模式可以以内嵌方式运行。
将 Elasticsearch 配置为图库(Graph Repository)的索引后端(技术预览)
默认情况下,Apache Atlas 使用 JanusGraph 作为图库,这也是目前唯一可用的图库实现。要配置 JanusGraph 与 Elasticsearch 协同工作,请遵循以下说明
- 安装 Elasticsearch 集群。目前支持的版本为 5.6.4,可从以下地址获取:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz
- 若只是进行简单测试,可以在 Elasticsearch 发行版的 bin 目录下使用 'elasticsearch' 命令启动单个 Elasticsearch 节点。
- 修改 Apache Atlas 的配置,使其指向所搭建的 Elasticsearch 实例。请确保以下配置项在 ATLAS_HOME/conf/atlas-application.properties 中被设置为如下值
atlas.graph.index.search.backend=elasticsearch
atlas.graph.index.search.hostname={the hostname(s) of the Elasticsearch master nodes comma separated}
atlas.graph.index.search.elasticsearch.client-only=true有关 JanusGraph 针对 elasticsearch 的配置的更多信息,请参阅 http://docs.janusgraph.org/0.2.0/elasticsearch.html
配置 Kafka 主题
Apache Atlas 使用 Apache Kafka 在运行时从其他组件采集元数据。这一点在架构中有更详细的说明。根据 Apache Kafka 的配置情况,有时你可能需要在使用 Apache Atlas 之前显式地创建这些主题。为此,Apache Atlas 提供了脚本 =bin/atlas_kafka_setup.py=,可以在 Apache Atlas 服务器上运行。在某些环境中,钩子(hook)可能会在 Apache Atlas 服务器本身完成设置之前就开始被使用。在这种情况下,可以在安装了钩子的主机上运行一个类似的脚本 hook-bin/atlas_kafka_setup_hook.py 来创建主题。这两个脚本都使用 atlas-application.properties 中的配置来创建主题。详细信息请参阅配置。
设置 Apache Atlas
有几个步骤用于设置 Apache Atlas 的依赖项。其中一例是为所选的存储后端设置 JanusGraph 的 schema。在简单的单服务器部署中,当服务器首次访问这些依赖项时,会使用默认配置自动完成这些设置。
不过,在某些场景下,我们可能希望将这些设置步骤作为一次性操作显式运行。例如,在使用高可用的多服务器场景中,最好先在其中一个服务器实例上运行设置步骤,然后再启动各项服务。
要一次性运行这些步骤,请在单个 Apache Atlas 服务器实例上执行命令 =bin/atlas_start.py -setup=。
不过,Apache Atlas 服务器本身能够处理设置步骤的并行执行。此外,多次运行这些设置步骤是幂等的。因此,如果为了方便而选择在服务器启动过程中运行设置步骤,那么应该在 atlas-application.properties 文件中将配置项 atlas.server.run.setup.on.start 的值定义为 true,以启用该选项。
示例:调用 Apache Atlas REST API
以下是通过 curl 命令调用 Apache Atlas REST API 的几个示例。
- 列出元数据仓库中的类型
curl -u username:password http://localhost:21000/api/atlas/v2/types/typedefs/headers
[ {"guid":"fa421be8-c21b-4cf8-a226-fdde559ad598","name":"Referenceable","category":"ENTITY"},
{"guid":"7f3f5712-521d-450d-9bb2-ba996b6f2a4e","name":"Asset","category":"ENTITY"},
{"guid":"84b02fa0-e2f4-4cc4-8b24-d2371cd00375","name":"DataSet","category":"ENTITY"},
{"guid":"f93975d5-5a5c-41da-ad9d-eb7c4f91a093","name":"Process","category":"ENTITY"},
{"guid":"79dcd1f9-f350-4f7b-b706-5bab416f8206","name":"Infrastructure","category":"ENTITY"}
]- 列出给定类型的所有实例
curl -u username:password http://localhost:21000/api/atlas/v2/search/basic?typeName=hive_db
{
"queryType":"BASIC",
"searchParameters":{
"typeName":"hive_db",
"excludeDeletedEntities":false,
"includeClassificationAttributes":false,
"includeSubTypes":true,
"includeSubClassifications":true,
"limit":100,
"offset":0
},
"entities":[
{
"typeName":"hive_db",
"guid":"5d900c19-094d-4681-8a86-4eb1d6ffbe89",
"status":"ACTIVE",
"displayText":"default",
"classificationNames":[],
"attributes":{
"owner":"public",
"createTime":null,
"qualifiedName":"default@cl1",
"name":"default",
"description":"Default Hive database"
}
},
{
"typeName":"hive_db",
"guid":"3a0b14b0-ab85-4b65-89f2-e418f3f7f77c",
"status":"ACTIVE",
"displayText":"finance",
"classificationNames":[],
"attributes":{
"owner":"hive",
"createTime":null,
"qualifiedName":"finance@cl1",
"name":"finance",
"description":null
}
}
]
}- 搜索实体
curl -u username:password http://localhost:21000/api/atlas/v2/search/dsl?query=hive_db%20where%20name='default'
{
"queryType":"DSL",
"queryText":"hive_db where name='default'",
"entities":[
{
"typeName":"hive_db",
"guid":"5d900c19-094d-4681-8a86-4eb1d6ffbe89",
"status":"ACTIVE",
"displayText":"default",
"classificationNames":[],
"attributes":{
"owner":"public",
"createTime":null,
"qualifiedName":"default@cl1",
"name":"default",
"description":
"Default Hive database"
}
}
]
}故障排除
安装问题
如果 Apache Atlas 服务的安装因任何原因失败,则下次运行安装(无论是通过显式调用 atlas_start.py -setup,还是通过启用配置选项 atlas.server.run.setup.on.start)时都会失败,并显示类似 A previous setup run may not have completed cleanly. 的消息。在这种情况下,您需要手动确保安装可以运行,并在尝试再次运行安装之前删除 Zookeeper 中位于 /apache_atlas/setup_in_progress 的节点。
如果安装是由于 Apache HBase 模式设置错误而失败的,可能需要修复 Apache HBase 模式。如果尚未存储任何数据,也可以禁用并删除 Apache Atlas 所使用的 Apache HBase 表,然后重新运行安装。
配置 SNAPPY 压缩时的启动问题
如果您在将 SNAPPY 设置为压缩算法后遇到 Atlas 服务器无法启动的问题,这可能是由于缺少 SNAPPY 压缩所需的库或库不兼容导致的。
解决方案:确保 Snappy 压缩库可用。如果尚未安装,请在系统上下载并配置 Snappy 库。
下载并安装 Snappy:该库可以在 GitHub 或操作系统的官方分发仓库等平台上找到。
在 Linux 上: sudo apt-get install libsnappy-dev根据 HBase 版本下载并解压 Hadoop:Hadoop 3.2.4
更新 HBase 配置:将以下几行添加到
hbase-env.sh文件中:export HADOOP_HOME={path-to-hadoop} export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native重启 Atlas 服务器
评论
登录后参与评论
KnowForge