TL;DR场景大数据平台中元数据分散在各个系统缺乏统一管理需要构建元数据管理平台结论Apache Atlas 提供元数据收集、血缘分析、分类标签等功能可实现大数据平台的元数据闭环管理产出完整的 Atlas 1.2.0 安装配置指南 Hive 血缘批量导入实战上节进度上节我们完成到了 对 Atlas 的源码编译下面我们正式的进行安装。版本矩阵功能状态说明元数据收集✅ 已验证支持 Hive/Storm/Sqoop 等组件 Hook血缘关系分析✅ 已验证自动捕获 DDL/DML 操作生成血缘图分类标签管理✅ 已验证支持业务属性标签分类JanusGraph 存储✅ 已验证Atlas 1.2.0 内置图数据库HBase 元数据存储✅ 已验证分布式 NoSQL 存储后端Solr 搜索索引✅ 已验证支持全文检索和过滤REST API 接口✅ 已验证提供标准 API 供下游调用Hive 血缘导入✅ 已验证import-hive.sh 批量导入数据仓库元数据管理元数据MetaData狭义的解释是用来描述数据的数据。广义来看除了业务逻辑直接读写处理的那些业务数据所有其他用来维持整个系统运转所需的信息、数据都可以叫做元数据如数据库中表的Schema信息任务的血缘关系用户和脚本、任务的权限映射关系信息等。管理元数据的目的是为了让用户能够更高效的使用数据也是为了平台管理人员能更加有效的做好数据的维护管理工作。但通常这些元数据信息是散落在平台的各个系统各种流程中它们的管理也可能或多或少可以通过各种子系统自身的工具方案或者流程逻辑来实现。元数据管理平台很重要的一个功能就是信息的收集至于收集哪些信息取决于业务的需求和需要解决的目标问题。元数据管理平台还需要考虑如何恰当的形式对这些元数据信息进行展示进一步的如何将这些元数据信息通过服务的形式提供给周边上下游系统来使用真正帮助大数据平台完成质量管理的闭环工作。应该收集那些信息没有绝对的标准但是对大数据开发平台来说常见的元数据元数据信息包括表结构信息数据的空间存储读写记录权限归属和其他各类统计信息数据的血缘关系信息数据的业务属性信息Atlas正式安装cd/opt/software/apache-atlas-sources-1.2.0/distro/target# 解压缩tarzxvf apache-atlas-1.2.0-bin.tar.gzmvapache-atlas-1.2.0/ /opt/servers/atlas-1.2.0过程结果如下所示环境变量# 修改 /etc/profile设置环境变量 ATLAS_HOMEvim/etc/profile# atlasexportATLAS_HOME/opt/servers/atlas-1.2.0exportPATH$PATH:ATLAS_HOME/bin配置的结果如下所示启动服务刷新环境变量之后启动服务cd$ATLAS_HOME/bin ./atlas_start.py执行结果如下图所示查看进程ps-ef|grepatlas可以看到进程有停止服务cd$ATLAS_HOME/bin ./atlas_stop.py检查Solrcd/opt/servers/atlas-1.2.0/solr/bin ./solr status Solr process25038running on port9838执行结果如下图所示访问项目http://h122.wzk.icu:21000打开的页面如下所示登录账号密码都是 adminHive血缘导入拷贝配置将 $ATLAS_HOME/conf/atlas-application.properties 拷贝到 $HIVE_HOME/conf 目录下ln-s$ATLAS_HOME/conf/atlas-application.properties$HIVE_HOME/conf/atlas-application.properties拷贝Jar包ln-s$ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-base-2.9.9.jar$ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-jaxrs-base-2.9.9.jarln-s$ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-json-provider-2.9.9.jar$ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-jaxrs-json-provider-2.9.9.jarln-s$ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-module-jaxb-annotations-2.9.9.jar$ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-module-jaxb-annotations-2.9.9.jar执行结果如下所示修改Hivevim$HIVE_HOME/conf/hive-site.xml增加hookpropertynamehive.exec.post.hooks/namevalueorg.apache.atlas.hive.hook.HiveHook/value/property写入内容如下所示在 $HIVE_HOME/conf/hive-env.sh中添加HIVE_AUX_JARS_PATH变量# 之前没弄过mv$HIVE_HOME/conf/hive-env.sh.template$HIVE_HOME/conf/hive-env.shvim$HIVE_HOME/conf/hive-env.sh写入内容如下exportHIVE_AUX_JARS_PATH/opt/servers/atlas-1.2.0/hook/hive对应结果如下所示批量导入我们需要Hive可以正常启动在执行过程中要输入admin/admin账号密码# 控制台执行 hivesh/opt/servers/atlas-1.2.0/bin/import-hive.sh执行后需要输入账号密码成功导出之后我们可以看到控制台输出了内容访问结果打开刚才项目Search中的选项有新的变化http://h122.wzk.icu:21000对应结果如下图所示Hive Hook 可以捕获如下的操作create databasecreate table/view, create table as selectload, import, exportDMLs(insert)alter databasealter tablealter view最终的血缘关系错误速查卡症状根因定位修复Atlas 启动失败提示 JanusGraph 连接错误HBase/Solr 未启动或版本不兼容检查atlas_start.py日志确保 HBase 1.1.2 和 Solr 5.5.1 已启动Hive 血缘未采集Hive Hook 未正确配置检查 Hive 元数据是否出现在 Atlas Web UI确认hive.exec.post.hooks配置为org.apache.atlas.hive.hook.HiveHookimport-hive.sh 执行卡住无响应认证信息输入错误或 Atlas 服务未就绪查看控制台输出重启 Atlas 后使用 admin/admin 账号重试Solr 进程不存在Solr 服务异常退出执行solr status检查进入$ATLAS_HOME/solr/bin目录执行./solr start血缘图谱为空Jackson Jar 包冲突检查$ATLAS_HOME/hook/hive目录下的 Jar 链接删除冲突 Jar 包并重新创建符号链接Web UI 访问超时 21000 端口防火墙阻止或 Atlas 未监听外部 IPnetstat -an | grep 21000修改atlas-env.sh设置ATLAS_SERVER_OPTS绑定 0.0.0.0