APACHE-ATLAS-2.1.0 - 【安装部署】基于CENTOS7.6.18安装APACHE-ATLAS-2.1.0

apache atlas 2.1.0的安装 阅读详情

官网

APACHE-ATLAS官网地址
APACHE-ATLAS安装指南

说明

官网说明使用:bin/atlas_start.py 即可启动HBASE、SOLR和ATLAS,实际验证不是的;
需要分别启动HBASE、SOLR和ATLAS,见下面的操作步骤;
HBASE启动时,同时也启动了内置的ZK,由于SOLR也依赖ZK, 所以需要先启动HBASE。

安装准备

A. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

B. 禁用Selinux(安全权限管理模块)

vi /etc/sysconfig/selinux
设置如下:
SELINUX=disabled

操作步骤

使用内嵌sorl和hbase方式进行编译和安装:

解压:tar -xzvf apache-atlas-2.1.0-server.tar.gz
进入:cd apache-atlas-2.1.0
启动:
1-HBASE:hbase/bin/start-hbase.sh
2-SOLR:solr/bin/solr start -c -z localhost:2181 -p 8983 -force
第一次启动成功后需要执行以下,用来创建solr collection:
# 点索引
solr/bin/solr  create -c vertex_index -force -d conf/solr/

# 线索引
solr/bin/solr  create -c edge_index -force -d conf/solr/

# 全文索引
solr/bin/solr  create -c fulltext_index -force -d conf/solr/


3-ATLAS:bin/atlas_start.py
验证:curl -u admin:admin http://localhost:21000/api/atlas/admin/version
如果返回以下内容说明启动成功:
{
	"Description": "Metadata Management and Data Governance Platform over Hadoop",
	"Revision": "release",
	"Version": "2.1.0",
	"Name": "apache-atlas"
}

4-导入示例数据:bin/quick_start.py

[root@hm apache-atlas-2.1.0]# bin/quick_start.py
Enter username for atlas :- admin
Enter password for atlas :-

Creating sample types:
Created type [DB]
Created type [Table]
Created type [StorageDesc]
Created type [Column]
Created type [LoadProcess]
Created type [LoadProcessExecution]
Created type [View]
Created type [JdbcAccess]
Created type [ETL]
Created type [Metric]
Created type [PII]
Created type [Fact]
Created type [Dimension]
Created type [Log Data]
Created type [Table_DB]
Created type [View_DB]
Created type [View_Tables]
Created type [Table_Columns]
Created type [Table_StorageDesc]

Creating sample entities:
Created entity of type [DB], guid: 4633f6b8-b60d-487f-b458-ad20115fd1a6
Created entity of type [DB], guid: 0f4b75ea-28c1-4c0c-bfea-c9243ca27313
Created entity of type [DB], guid: 6984b2c8-7d88-4410-a590-19930ce76000
Created entity of type [Table], guid: 2fc09c49-3e9f-4ce6-b90a-28d1ad28b3e4
Created entity of type [Table], guid: 2af85999-783d-4b9d-abd6-cbde83b6cdff
Created entity of type [Table], guid: e228021c-8110-4b30-997f-8f8b8419678b
Created entity of type [Table], guid: 4d84cdae-1498-4004-94cf-81ed73dca745
Created entity of type [Table], guid: 6a8e40f7-ae2f-4291-8284-cd6e405fecdb
Created entity of type [Table], guid: 5983d508-5f78-4a21-ae7a-0095f50cfcaf
Created entity of type [Table], guid: 4992f76c-9626-413d-9635-fd52bf3af7ff
Created entity of type [Table], guid: 1ca2f7f5-2fe3-4e0c-87ba-621d4abbcd5f
Created entity of type [View], guid: b6faa4ef-6708-4ba4-9cb7-a1b0510036c0
Created entity of type [View], guid: b5907d82-035f-4aba-a1d0-4e2937d45bb9
Created entity of type [LoadProcess], guid: 378fc0bd-d208-4989-b9f6-f7bdc4d4900e
Created entity of type [LoadProcessExecution], guid: f0f5fb14-aa45-4430-ba58-089a94020fb2
Created entity of type [LoadProcessExecution], guid: 66dc91e6-f32d-4105-b12a-ba5e504c0486
Created entity of type [LoadProcess], guid: bf1a574e-88f6-4f5f-9559-3596ced76e5f
Created entity of type [LoadProcessExecution], guid: 55d5dd58-c1e9-44a5-aadd-7b4a6a3f18fc
Created entity of type [LoadProcessExecution], guid: 5f3e0fbe-3372-48ca-959f-8a9e72081e9c
Created entity of type [LoadProcess], guid: 3484f4c1-40e9-4354-a019-06136d03a67c
Created entity of type [LoadProcessExecution], guid: a7535499-aa19-4c3e-a942-83d218439091
Created entity of type [LoadProcessExecution], guid: 72fb5e9f-f2a0-411f-bb0d-5a8bc3436caf

Sample DSL Queries:
query [from DB] returned [3] rows.
query [DB] returned [3] rows.
query [DB where name=%22Reporting%22] returned [1] rows.
query [DB where name=%22encode_db_name%22] returned [ 0 ] rows.
query [Table where name=%2522sales_fact%2522] returned [1] rows.
query [DB where name="Reporting"] returned [1] rows.
query [DB where DB.name="Reporting"] returned [1] rows.
query [DB name = "Reporting"] returned [1] rows.
query [DB DB.name = "Reporting"] returned [1] rows.
query [DB where name="Reporting" select name, owner] returned [1] rows.
query [DB where DB.name="Reporting" select name, owner] returned [1] rows.
query [DB has name] returned [3] rows.
query [DB where DB has name] returned [3] rows.
query [DB is JdbcAccess] returned [ 0 ] rows.
query [from Table] returned [8] rows.
query [Table] returned [8] rows.
query [Table is Dimension] returned [5] rows.
query [Column where Column isa PII] returned [3] rows.
query [View is Dimension] returned [2] rows.
query [Column select Column.name] returned [10] rows.
query [Column select name] returned [9] rows.
query [Column where Column.name="customer_id"] returned [1] rows.
query [from Table select Table.name] returned [8] rows.
query [DB where (name = "Reporting")] returned [1] rows.
query [DB where DB is JdbcAccess] returned [ 0 ] rows.
query [DB where DB has name] returned [3] rows.
query [DB as db1 Table where (db1.name = "Reporting")] returned [ 0 ] rows.
query [Dimension] returned [9] rows.
query [JdbcAccess] returned [2] rows.
query [ETL] returned [10] rows.
query [Metric] returned [4] rows.
query [PII] returned [3] rows.
query [`Log Data`] returned [4] rows.
query [Table where name="sales_fact", columns] returned [4] rows.
query [Table where name="sales_fact", columns as column select column.name, column.dataType, column.comment] returned [4] rows.
query [from DataSet] returned [10] rows.
query [from Process] returned [3] rows.

Sample Lineage Info:
time_dim(Table) -> loadSalesDaily(LoadProcess)
loadSalesDaily(LoadProcess) -> sales_fact_daily_mv(Table)
loadSalesMonthly(LoadProcess) -> sales_fact_monthly_mv(Table)
sales_fact_daily_mv(Table) -> loadSalesMonthly(LoadProcess)
sales_fact(Table) -> loadSalesDaily(LoadProcess)
Sample data added to Apache Atlas Server.

[root@hm apache-atlas-2.1.0]#

运维相关

停止ATLAS:bin/atlas_stop.py
查看ATLAS的日志:cat logs/application.log
检查ZK端口: netstat -tunlp|grep 2181


HBASE-UI(需要先查看HBASE的UI): http://192.168.139.200:16010/master-status
SOLR-UI:  http://192.168.139.200:8983/
ATLAS-UI: http://192.168.139.200:21000/
口令:admin/admin

HBASE-UI:
在这里插入图片描述

SOLR-UI:
在这里插入图片描述

ATLAS-UI:在这里插入图片描述
在这里插入图片描述

apache_atlas_janus:图数据存储在该表中
apache_atlas_entity_audit:实体审计数据存储在该表中

ATLAS配置文件说明

vim conf/atlas-application.properties
#########  Graph Database Configs  #########

# Graph Database 图数据库默认使用的是:JanusGraph

#Configures the graph database to use.  Defaults to JanusGraph
#atlas.graphdb.backend=org.apache.atlas.repository.graphdb.janus.AtlasJanusGraphDatabase

# Graph Storage 图数据可以存储在hbase、cassandra、embeddedcassandra和berkeleyje中,当前存储在hbase中
# Set atlas.graph.storage.backend to the correct value for your desired storage
# backend. Possible values:
#
# hbase
# cassandra
# embeddedcassandra - Should only be set by building Atlas with  -Pdist,embedded-cassandra-solr
# berkeleyje
#
# See the configuration documentation for more information about configuring the various  storage backends.
#
atlas.graph.storage.backend=hbase2
atlas.graph.storage.hbase.table=apache_atlas_janus

#Hbase
#For standalone mode , specify localhost
#for distributed mode, specify zookeeper quorum here
atlas.graph.storage.hostname=localhost
atlas.graph.storage.hbase.regions-per-server=1
atlas.graph.storage.lock.wait-time=10000

# Gremlin Query Optimizer
#
# Enables rewriting gremlin queries to maximize performance. This flag is provided as
# a possible way to work around any defects that are found in the optimizer until they
# are resolved.
#atlas.query.gremlinOptimizerEnabled=true

# Delete handler
#
# This allows the default behavior of doing "soft" deletes to be changed.
#
# Allowed Values:
# org.apache.atlas.repository.store.graph.v1.SoftDeleteHandlerV1 - all deletes are "soft" deletes
# org.apache.atlas.repository.store.graph.v1.HardDeleteHandlerV1 - all deletes are "hard" deletes
#
#atlas.DeleteHandlerV1.impl=org.apache.atlas.repository.store.graph.v1.SoftDeleteHandlerV1

# Entity audit repository
#
# This allows the default behavior of logging entity changes to hbase to be changed.
#
# Allowed Values:
# org.apache.atlas.repository.audit.HBaseBasedAuditRepository - log entity changes to hbase
# org.apache.atlas.repository.audit.CassandraBasedAuditRepository - log entity changes to cassandra
# org.apache.atlas.repository.audit.NoopEntityAuditRepository - disable the audit repository
#
atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.HBaseBasedAuditRepository

# if Cassandra is used as a backend for audit from the above property, uncomment and set the following
# properties appropriately. If using the embedded cassandra profile, these properties can remain
# commented out.
# atlas.EntityAuditRepository.keyspace=atlas_audit
# atlas.EntityAuditRepository.replicationFactor=1


# Graph Search Index 使用SOLR创建索引
atlas.graph.index.search.backend=solr

#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=localhost:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=true

#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
#atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr

# Solr-specific configuration property
atlas.graph.index.search.max-result-set-size=150

#########  Import Configs  #########
#atlas.import.temp.directory=/temp/import

#########  Notification Configs  #########
atlas.notification.embedded=true
atlas.kafka.data=${sys:atlas.home}/data/kafka
atlas.kafka.zookeeper.connect=localhost:9026
atlas.kafka.bootstrap.servers=localhost:9027
atlas.kafka.zookeeper.session.timeout.ms=400
atlas.kafka.zookeeper.connection.timeout.ms=200
atlas.kafka.zookeeper.sync.time.ms=20
atlas.kafka.auto.commit.interval.ms=1000
atlas.kafka.hook.group.id=atlas

atlas.kafka.enable.auto.commit=false
atlas.kafka.auto.offset.reset=earliest
atlas.kafka.session.timeout.ms=30000
atlas.kafka.offsets.topic.replication.factor=1
atlas.kafka.poll.timeout.ms=1000

atlas.notification.create.topics=true
atlas.notification.replicas=1
atlas.notification.topics=ATLAS_HOOK,ATLAS_ENTITIES
atlas.notification.log.failed.messages=true
atlas.notification.consumer.retry.interval=500
atlas.notification.hook.retry.interval=1000
# Enable for Kerberized Kafka clusters
#atlas.notification.kafka.service.principal=kafka/_HOST@EXAMPLE.COM
#atlas.notification.kafka.keytab.location=/etc/security/keytabs/kafka.service.keytab

## Server port configuration
#atlas.server.http.port=21000
#atlas.server.https.port=21443

#########  Security Properties  #########

# SSL config
atlas.enableTLS=false

#truststore.file=/path/to/truststore.jks
#cert.stores.credential.provider.path=jceks://file/path/to/credentialstore.jceks

#following only required for 2-way SSL
#keystore.file=/path/to/keystore.jks

# Authentication config

atlas.authentication.method.kerberos=false
atlas.authentication.method.file=true

#### ldap.type= LDAP or AD
atlas.authentication.method.ldap.type=none

#### user credentials file
atlas.authentication.method.file.filename=${sys:atlas.home}/conf/users-credentials.properties

### groups from UGI
#atlas.authentication.method.ldap.ugi-groups=true

######## LDAP properties #########
#atlas.authentication.method.ldap.url=ldap://<ldap server url>:389
#atlas.authentication.method.ldap.userDNpattern=uid={0},ou=People,dc=example,dc=com
#atlas.authentication.method.ldap.groupSearchBase=dc=example,dc=com
#atlas.authentication.method.ldap.groupSearchFilter=(member=uid={0},ou=Users,dc=example,dc=com)
#atlas.authentication.method.ldap.groupRoleAttribute=cn
#atlas.authentication.method.ldap.base.dn=dc=example,dc=com
#atlas.authentication.method.ldap.bind.dn=cn=Manager,dc=example,dc=com
#atlas.authentication.method.ldap.bind.password=<password>
#atlas.authentication.method.ldap.referral=ignore
#atlas.authentication.method.ldap.user.searchfilter=(uid={0})
#atlas.authentication.method.ldap.default.role=<default role>


######### Active directory properties #######
#atlas.authentication.method.ldap.ad.domain=example.com
#atlas.authentication.method.ldap.ad.url=ldap://<AD server url>:389
#atlas.authentication.method.ldap.ad.base.dn=(sAMAccountName={0})
#atlas.authentication.method.ldap.ad.bind.dn=CN=team,CN=Users,DC=example,DC=com
#atlas.authentication.method.ldap.ad.bind.password=<password>
#atlas.authentication.method.ldap.ad.referral=ignore
#atlas.authentication.method.ldap.ad.user.searchfilter=(sAMAccountName={0})
#atlas.authentication.method.ldap.ad.default.role=<default role>

#########  JAAS Configuration ########

#atlas.jaas.KafkaClient.loginModuleName = com.sun.security.auth.module.Krb5LoginModule
#atlas.jaas.KafkaClient.loginModuleControlFlag = required
#atlas.jaas.KafkaClient.option.useKeyTab = true
#atlas.jaas.KafkaClient.option.storeKey = true
#atlas.jaas.KafkaClient.option.serviceName = kafka
#atlas.jaas.KafkaClient.option.keyTab = /etc/security/keytabs/atlas.service.keytab
#atlas.jaas.KafkaClient.option.principal = atlas/_HOST@EXAMPLE.COM

#########  Server Properties  #########
atlas.rest.address=http://localhost:21000
# If enabled and set to true, this will run setup steps when the server starts
#atlas.server.run.setup.on.start=false

#########  Entity Audit Configs  #########
atlas.audit.hbase.tablename=apache_atlas_entity_audit
atlas.audit.zookeeper.session.timeout.ms=1000
atlas.audit.hbase.zookeeper.quorum=localhost:2181

#########  High Availability Configuration ########
atlas.server.ha.enabled=false
#### Enabled the configs below as per need if HA is enabled #####
#atlas.server.ids=id1
#atlas.server.address.id1=localhost:21000
#atlas.server.ha.zookeeper.connect=localhost:2181
#atlas.server.ha.zookeeper.retry.sleeptime.ms=1000
#atlas.server.ha.zookeeper.num.retries=3
#atlas.server.ha.zookeeper.session.timeout.ms=20000
## if ACLs need to be set on the created nodes, uncomment these lines and set the values ##
#atlas.server.ha.zookeeper.acl=<scheme>:<id>
#atlas.server.ha.zookeeper.auth=<scheme>:<authinfo>



######### Atlas Authorization #########
atlas.authorizer.impl=simple
atlas.authorizer.simple.authz.policy.file=atlas-simple-authz-policy.json

#########  Type Cache Implementation ########
# A type cache class which implements
# org.apache.atlas.typesystem.types.cache.TypeCache.
# The default implementation is org.apache.atlas.typesystem.types.cache.DefaultTypeCache which is a local in-memory type cache.
#atlas.TypeCache.impl=

#########  Performance Configs  #########
#atlas.graph.storage.lock.retries=10
#atlas.graph.storage.cache.db-cache-time=120000

#########  CSRF Configs  #########
atlas.rest-csrf.enabled=true
atlas.rest-csrf.browser-useragents-regex=^Mozilla.*,^Opera.*,^Chrome.*
atlas.rest-csrf.methods-to-ignore=GET,OPTIONS,HEAD,TRACE
atlas.rest-csrf.custom-header=X-XSRF-HEADER

############ KNOX Configs ################
#atlas.sso.knox.browser.useragent=Mozilla,Chrome,Opera
#atlas.sso.knox.enabled=true
#atlas.sso.knox.providerurl=https://<knox gateway ip>:8443/gateway/knoxsso/api/v1/websso
#atlas.sso.knox.publicKey=

############ Atlas Metric/Stats configs ################
# Format: atlas.metric.query.<key>.<name>
atlas.metric.query.cache.ttlInSecs=900
#atlas.metric.query.general.typeCount=
#atlas.metric.query.general.typeUnusedCount=
#atlas.metric.query.general.entityCount=
#atlas.metric.query.general.tagCount=
#atlas.metric.query.general.entityDeleted=
#
#atlas.metric.query.entity.typeEntities=
#atlas.metric.query.entity.entityTagged=
#
#atlas.metric.query.tags.entityTags=

#########  Compiled Query Cache Configuration  #########

# The size of the compiled query cache.  Older queries will be evicted from the cache
# when we reach the capacity.

#atlas.CompiledQueryCache.capacity=1000

# Allows notifications when items are evicted from the compiled query
# cache because it has become full.  A warning will be issued when
# the specified number of evictions have occurred.  If the eviction
# warning threshold <= 0, no eviction warnings will be issued.

#atlas.CompiledQueryCache.evictionWarningThrottle=0


#########  Full Text Search Configuration  #########

#Set to false to disable full text search.
#atlas.search.fulltext.enable=true

#########  Gremlin Search Configuration  #########

#Set to false to disable gremlin search.
atlas.search.gremlin.enable=false


########## Add http headers ###########

#atlas.headers.Access-Control-Allow-Origin=*
#atlas.headers.Access-Control-Allow-Methods=GET,OPTIONS,HEAD,PUT,POST
#atlas.headers.<headerName>=<headerValue>


#########  UI Configuration ########

atlas.ui.default.version=v1

ATLAS输出DEBUG日志

需要修改apache-atlas-2.1.0/conf/atlas-log4j.xml三个地方,将这三处的"info" 修改为:“debug”。

<!-- appender-ref元素,引用一个已定义的appender元素的名字,为logger对象增加一个appender -->
<logger name="org.apache.atlas" additivity="false">
    <level value="debug"/>
    <appender-ref ref="FILE"/>
</logger>

<logger name="org.janusgraph" additivity="false">
    <level value="debug"/>
    <appender-ref ref="FILE"/>
</logger>
<!-- 根logger的设置-->
<root>
    <priority value="debug"/>
    <appender-ref ref="FILE"/>
</root>

安装错误

①. Your open file limit is currently 1024.
错误描述如下:

  *** [WARN] *** Your open file limit is currently 1024.
   It should be set to 65000 to avoid operational disruption.
   If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
  *** [WARN] ***  Your Max Processes Limit is currently 31117.
   It should be set to 65000 to avoid operational disruption.
   If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
  WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
           Please consult the Reference Guide. To override this check, start with argument '-force'

解决方案如下:

sudo vim /etc/security/limits.conf
增加以下内容(有前面的*号):
* hard nofile 65535
* soft nofile 65535
* hard nproc 65535
* soft nproc 65535

②. Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000560800000, 10737418240, 0) failed; error=‘Cannot allocate memory’ (errno=12)
表示服务器上物理内存太小,需要调大内存。

③. Failed to obtain graph instance on attempt 1 of 3
一般情况是由于HBASE和SOLR未启动导致,应该分别手动执行: HBASE、SOLR和ATLAS的启动脚本启动对应的服务。

④. ATLAS UI页面出现503错误
一般情况是由于HBASE和SOLR未启动导致,首先:可以先看看SOLR的UI是否可以访问,如果能够访问,需要查看SOLR页面,cloud模式是否有vertex_index、edge_index、fulltext_index这三个collection;然后检查HBASE是否有ATLAS的信息表,可在HBASE的节点上执行hbase shell,然后list查看一下是否有相应的表。

如何查看内置HBASE的WEB的端口?

切换到日志目录下:
cd /opt/software/apache-atlas-2.1.0/hbase/logs
执行查看端口的指令:
grep 'Jetty' *

在这里插入图片描述

启动ATLAS时为什么一直报连不上ZK?

注意:当ATLAS没有完全启动的话,会报一直连不上ZK,由于电脑配置太低,所以一直ATLAS的启动相当慢,等了10分钟才启动完毕。

2023-05-19 01:04:15,055 WARN  - [main-SendThread(localhost:9026):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2023-05-19 01:04:16,155 WARN  - [main-SendThread(localhost:9026):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2023-05-19 01:04:17,257 WARN  - [main-SendThread(localhost:9026):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2023-05-19 01:04:18,358 WARN  - [main-SendThread(localhost:9026):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
2023-05-19 01:04:19,459 WARN  - [main-SendThread(localhost:9026):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (ClientCnxn$SendThread:1102)
java.net.ConnectException: 拒绝连接
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
Apache Atlas产品调研 元数据是关于数据的数据,是为了描述数据的相关信息而存在的数据。元数据是用数据管理数据,是快速查找数据、精确定位数据、准确理解数据和有效使用数据的关键。元数据管理还须符合数据标准、较高的数据质量、数据安全、数据共享、合理顺滑管理流程。在存储、计算和人力成本合理可控、可管理的前提下,使数据价值得到最大发挥,是数据全生命周期管理重要组成部分,是提升数据价值发挥的前提,是数据治理的基石。 阅读详情

相关推荐

机器学习模型生产部署实战:从Notebook到高可用服务

机器学习模型部署不是简单运行predict(),而是涵盖模型服务化、数据管道韧性、可观测性与变更管理的系统工程。其核心原理在于将实验性代码转化为符合SLA要求的工业级服务,关键技术价值体现在稳定性保障、故障快速定位与业务目标对齐。典型应用场景包括实时风控、智能运维、推荐系统等需7×24小时可靠推理的线上业务。本文聚焦真实交付中高频痛点——如ONNX模型序列化、FastAPI服务优化、K8s健康检查设计及特征一致性保障,结合pkl兼容性陷阱、GPU显存泄漏、延迟突增排查等硬核案例,提供可直接复用的生产级落地路

赵士杰的博客 515

Apache Atlas简单安装

编译、安装Apache Atlas。

邢慧鹏的博客 2273

DeepSeek V4国产化实测:从VS Code集成到达梦DM8适配

大语言模型在企业研发场景中的落地,本质是‘能力-可控性-合规性’的三角平衡。以DeepSeek V4为代表的国产大模型,已超越基础对话阶段,进入代码生成、技术文档理解、API设计等深度工程环节。其核心价值在于对中等长度高密度技术文本的精准建模能力,尤其在Java/Spring生态与国产数据库(如达梦DM8)的语义对齐上展现出显著进步。技术原理上,动态分块注意力机制提升了长上下文下的局部聚焦稳定性,而int8量化+flash-attn组合则兼顾了推理效率与关键注解保留率。典型应用场景包括VS Code智能补全

weixin_33690367的博客 343

(三十八)大数据实战——Atlas元数据管理平台的部署安装

Apache Atlas 是一个开源的数据治理和元数据管理平台,旨在帮助组织有效管理和利用其数据资产。为组织提供开放式元数据管理和治理功能 ,用以构建其数据资产目录,对这些资产进行分类和管理,形成数据字典 。并为数据分析师和数据治理团队提供围绕这些数据资产的协作功能。

厉害哥哥的博客 4333

信创数据中台迁移实战:麒麟+海光+OceanBase全栈适配指南

数据中台国产化迁移是政务与金融领域信创落地的核心场景,其本质是操作系统、CPU架构与数据库三者的深度协同问题。理解Linux内核调优原理、x86兼容CPU的微架构差异、以及Oracle语法兼容型数据库的执行引擎机制,是保障RTO<15分钟、RPO=0等硬性指标的技术前提。本文聚焦银河麒麟V10、海光C86处理器与OceanBase 4.3.2 Oracle模式的真实组合,解析内核熵源优化、G1 GC参数适配、ROWNUM分页执行计划控制等关键实践,覆盖从环境基线验证、双写灰度切换到生产级监控的完整链路,为省

weixin_30733003的博客 511

apache-atlas-2.1.0-server.tar.gz

apache-atlas-2.1.0-server.tar.gz 最新版安装包

Atlas编译部署

官方下载地址:Apache Atlas – Data Governance and Metadata framework for Hadoop 官网文档地址:Apache Atlas – Building & Installing Apache Atlas 以下笔记使用编译环境: centos8 java version 1.8.0_311 (网上有说版本高于151) maven-3.6.3 (版本高于3.5)注意:镜像不要使用阿里云的就用原版镜像地址...

qq_45143653的博客 1102

apache-atlas-2.1.0-server.tar.gz 不含hbase和solr

通过源码编译的apache-atlas-2.1.0-server.tar.gz 不含hbase和solr

Apache Atlas1337元数据管理:从架构解析到生产实践全指南

元数据管理是现代数据治理的核心技术,它通过建立数据资产的统一目录体系,实现数据的可发现、可理解、可信任。其原理是基于图数据库构建数据实体间的关联关系,结合搜索引擎提供快速检索能力。在技术价值层面,元数据管理能够显著提升数据血缘追踪效率,加强数据安全管控,支持合规审计要求。特别是在大数据生态中,随着数据规模的增长,传统手工管理方式已无法满足需求。Apache Atlas作为开源元数据管理平台的代表,其最新版本Atlas1337在性能优化和API扩展方面有显著提升,支持与Hadoop、Spark等组件的深度集成

weixin_34406086的博客 490

【ISAR成像定标方法(1)—转台目标的RD成像算法MATLAB仿真】

ISAR成像定标方法的研究具有重要意义,但是与之相关的学习资料以及仿真对于小白来说很难找或者很杂乱,本人作为小白之一在研究过程中苦不堪言,现在自己所要研究的定标内容已经完成,以后还学不学雷达也不一定,因为后面的路更难,现在打算把一些相关推导和仿真结果列出来,以供小白交流学习使用,希望能有点帮助。(PS:由于公式和符号的原因,采用图片形式说明)

此木旧年的博客 6419

STM32CubeMX定时器配置

因为只有当 CH2 处于 输入模式 时,硬件才能把这根脚送进滤波器(TI2FP2通道之前要滤波),再生成 TI2FP2 这条支路供 Slave-Mode 控制器使用,也就是说TI2FP2 并不是“独立存在”的,但在CubeMX配置时:如下图,我们只设置Slave Mode和TI1FP1,之后,CH1就自动配置为 Input Capture 了,下图发现,Channel1只能 Input Capture 或者Disable。哪来的主定时器和从定时器呢?把待测 PWM 的高电平当“门”,连接到ETR。

2402_89015641的博客 3188

基于Apache Atlas与NiFi构建自动化数据治理原型:从异构数据发现到质量监控

在数据驱动的业务环境中,数据治理是确保数据资产可用性、一致性与安全性的核心管理体系。其核心原理在于通过定义政策、流程与标准,对数据的全生命周期进行有效管控。随着数据源日益异构化(如MySQL、Hive、对象存储等),传统人工治理模式面临巨大挑战,其技术价值正转向自动化与智能化。数据编织(Data Fabric)作为一种新兴的架构理念,旨在通过自动化技术手段解决这一问题,其典型应用场景是实现跨异构系统的元数据自动发现、采集与关联分析。本文聚焦于利用Apache Atlas作为元数据中枢,结合Apache Ni

weixin_30681121的博客 397

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取

在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。

qq_36071928的博客 1046

构建轻量级数据编织原型:实现异构数据存储的自动化治理

数据治理是企业数据平台建设的核心环节,旨在确保数据的可发现、可理解、可信任与可管控。其核心原理在于通过系统化的方法对数据进行全生命周期管理,以提升数据资产的价值与合规性。在技术实现上,自动化与智能化是关键趋势,能够有效应对传统手工治理模式流程冗长、难以跟上数据产生速度的挑战。数据编织(Data Fabric)作为一种新兴的架构理念,其技术价值在于通过整合现有工具,为分布在各类异构存储(如MySQL、Hive、Kafka)中的数据建立一个统一的逻辑层,实现“数据不动,治理先行”。这尤其适用于需要快速响应业务需

weixin_30387799的博客 490

【Cubietruck】Qt5.8.0 x64、x86、armhf三个版本的编译安装

一、       Preparation 以下环境配置支持虚拟机和实体机,但是实体机生产效率会相对高一点,实体机编译Qt的速度是虚拟机两倍以上。 若使用虚拟机,推荐使用VirtualBox,开源免费,尽量不要使用Vmware破解版。   Download List   名称 链接 下载项目 OS https://mirro

beatfan的博客 3658

深入解析UDS 0x19服务:DTC状态掩码与故障诊断实战

本文深入解析了UDS诊断协议中的核心0x19服务(ReadDTCInformation),重点拆解了DTC状态掩码(DTCStatusMask)的八个状态位及其在故障生命周期中的联动逻辑。通过实战案例,详细说明了从故障发生、确认到清除的全过程,并介绍了如何利用该服务进行深度诊断,包括读取扩展数据(如冻结帧)和避免常见开发误区,是理解汽车ECU故障管理机制的关键。

weixin_29248313的博客 323

没有源码也能看清 Electron 应用:用 rea 逆向的完整实战指南

只有一个编译好的安装包,却想把里面某个功能看懂、搬进自己的产品——抓包、翻 `app.asar`、对着压缩成一行的 bundle 逐行考古,是大多数人的老路。rea(Reverse Engineer Anything)把这条路变成了一条可追溯的工程流水线:通过 MCP 把逆向工具交给你的 AI Agent,**Electron 逆向**不再依赖逆向引擎,静态分析全程不执行目标代码,每条结论都带着证

gitblog_00713的博客 190

拆解汽车T-Box:从4G模块到MCU,手把手教你理解车联网的‘黑匣子’

本文深入拆解汽车T-Box,揭示其作为车联网‘黑匣子’的核心架构与工作原理。从4G模块、MCU主控到外设接口,详细解析各组件功能及协同机制,并通过实战案例展示故障诊断与性能优化技巧,帮助读者全面理解T-Box在智能汽车中的关键作用。

weixin_30955617的博客 497

openPangu-2.0-Pro:首个昇腾原生505B大模型实战指南

大语言模型(LLM)的硬件适配本质是计算架构对齐,而非简单框架移植。昇腾NPU与CUDA在内存访问粒度、计算单元特性及通信协议上存在根本差异,导致直接移植模型性能大幅衰减。真正的昇腾原生需从Kernel级重构Attention算子、定制FlashAttention-3、优化KV Cache压缩与混合精度调度,实现FP16+INT8量化下的高稳定推理。该技术路径显著提升长文本生成、政务文档解析、电力工单生成等高确定性场景的落地可靠性,支撑7×24小时生产部署。openPangu-2.0-Pro作为首个完整公开

aoe41606的博客 220

杰理JL703N的SDK内部MIDI 音色库功能使用教程

本文介绍了MIDI琴按键解码和MIDI文件解码的实现方法。MIDI琴解码通过audio_dec_midi_ctrl.c文件实现,MIDI文件(mfa格式)解码则使用audio_dec_midi_file.c。使用前需将音色文件存放在SD卡或内置flash中(需确保四字节对齐),并在download.c中配置路径。同时需在板级配置中将FLASH设置为16Mbit以解决编译问题。关键注意事项包括音色文件的文件夹结构对齐要求和MIDI数据流的正确配置。

qq_42014563的博客 391

Android12 适配 usb 触屏

在 Android 系统中,输入设备 IDC(Input Device Configuration)设备描述文件(.idc)是用于配置和定义输入设备行为和属性的文本文件。 该文件通常在`/system/usr/idc/` 或 `/vendor/usr/idc/`,具体位置因芯片厂商SDK而异。一般情况此类文件是预置到系统,开发者 root 权限才能修改这些文件。输入设备 IDC 设备描述文件在 Android 系统中起到了识别、配置、映射和定制输入设备的作用,使得系统能够准确解析和处理各种输入设备的事件,提

weixin_35723192的博客 1235

Folia 上手指南:4 步打通本地曲库与全屏歌词动画

Folia 是一款把歌词做成全屏动画的音乐播放器。它同时支持本地文件、Navidrome 自建服务器和网易云、QQ 音乐、酷狗在线播放,还带 AI 主题生成。你花几分钟就能从装完到放歌。下面按三个场景走一遍:首次配置、日常听歌、把动画调成自己的样子。 ## 能力速览 先认识一下它能干什么: - **本地曲库导入**:丢一个文件夹进来,自动读出标签、封面和内嵌歌词 - **在线平台播放**:网

gitblog_00758的博客 314

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据编织实战:自动化治理异构数据存储,从概念到部署验证

数据治理是企业数据管理的核心环节,旨在确保数据的可用性、一致性、安全性与可靠性。其核心原理是通过建立统一的标准、流程和技术体系,对数据进行全生命周期的管控。在数据湖、数据仓库等复杂架构成为常态的今天,自动化治理的技术价值日益凸显,它能显著提升数据发现、血缘追踪和质量监控的效率,降低人工成本。数据编织正是实现这一目标的关键架构理念,它通过虚拟化集成与自动化能力,为散落在MySQL、Hive、对象存储等异构数据源中的数据提供逻辑统一的视图与治理。本文聚焦于数据编织项目的落地实践,详细拆解其自动化元数据发现、数据

weixin_33739646的博客 370

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python与Java在2020云原生时代的工程选型实战指南

Python和Java作为两大主流编程语言,代表了两种根本不同的软件工程范式:前者以降低人类认知负荷为核心,擅长快速构建数据处理、AI模型服务与轻量API;后者以保障系统长期可维护性为设计原点,在高并发、强一致性、严苛SLA的企业级服务中具备不可替代的稳定性优势。2020年是云原生落地关键年,Kubernetes成熟、Serverless普及、实时数据爆发,使得Python在FastAPI+Pandas+PySpark技术栈中实现‘数据侧端到端贯通’,而Java依托Spring Boot 2.3、Graal

dienangpiao2051的博客 485

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: APACHE-ATLAS-2.1.0简介(一)
下一篇: APACHE-ATLAS-2.1.0 - 【编译打包】使用IDEA在WINDOWS下编译打包APACHE-ATLAS-2.1.0
cloneme01
博客等级 码龄20年 2万+粉丝 248原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值