4. Atlas 安装与配置:环境准备、源码编译/二进制安装、配置 Hive Hook、启动服务

好,咱们进入实战环节。Atlas 这东西,说白了就是数据湖的「导航地图」。没有它,你面对一堆 Hive 表、Kafka 主题,根本不知道数据从哪来、到哪去。我最早接触 Atlas 是在一个金融客户的项目里,当时他们数据量不大,但合规要求极高——每个字段的血缘都得能追溯。嗯,那会儿踩了不少坑,今天我把这些经验都揉进这一章里。

4.1 环境准备:先把地基打牢

安装 Atlas 之前,你得先确认几样东西就位了。我个人习惯列个清单,逐项打勾,省得到时候缺东少西。

组件 版本要求 备注
Java JDK 8(推荐 1.8.0_202+) Atlas 对 JDK 11 支持有限,别冒险
Maven 3.6.x 或 3.8.x 源码编译必备,3.9+ 可能有兼容问题
HBase 2.x(Atlas 内置或外置) 存储元数据,建议外置独立集群
Solr 7.x 或 8.x 全文检索,Atlas 搜索功能依赖它
ZooKeeper 3.5.x+ 协调服务,HBase 和 Solr 都需要
Kafka 2.x(可选但推荐) 用于 Hook 异步通知,提升性能

注意: 我曾经在一个项目里用了 JDK 11,结果 Atlas 的某些 REST API 调用会报 SSL 握手异常。折腾了两天才发现是 JDK 版本问题。所以,老老实实用 JDK 8 吧。

另外,操作系统层面,建议预留至少 8GB 内存、50GB 磁盘空间。Atlas 本身不重,但 HBase 和 Solr 都是吃内存的主儿。

4.2 两种安装方式:源码编译 vs 二进制安装

Atlas 官方提供了两种安装途径。你想想看,如果只是快速验证,二进制安装最省事;但如果你需要定制 Hook 或者打补丁,那就得走源码编译。我一般这样选:

  • 二进制安装:适合 PoC 或生产环境快速部署,直接解压就能用。
  • 源码编译:适合需要修改源码、集成自定义组件或踩坑后打补丁的场景。

4.2.1 二进制安装(推荐新手)

从 Apache 官网下载编译好的包:

wget https://downloads.apache.org/atlas/2.3.0/apache-atlas-2.3.0-bin.tar.gz
tar -zxvf apache-atlas-2.3.0-bin.tar.gz -C /opt/
cd /opt/apache-atlas-2.3.0

解压后,目录结构大致如下:

  • bin/:启动脚本
  • conf/:配置文件
  • server/:Web 应用
  • hook/:各种数据源的 Hook

小技巧: 我习惯把 ATLAS_HOME 加到 /etc/profile 里,方便后续操作。

4.2.2 源码编译(进阶必备)

如果你需要集成 Hive Hook 的某个特定版本,或者想修复已知 bug,那就得自己编译。说实话,我第一次编译 Atlas 源码时,被 Maven 依赖折腾得够呛。

git clone https://github.com/apache/atlas.git
cd atlas
git checkout release-2.3.0
export MAVEN_OPTS="-Xms2g -Xmx4g"
mvn clean install -DskipTests -Pdist

这里有几个坑:

  • Maven 内存要够:Atlas 编译很吃内存,我建议至少给 4GB。
  • 网络问题:国内环境建议配置阿里云 Maven 镜像,否则下载依赖能等到怀疑人生。
  • 跳过测试:-DskipTests 能省下大量时间,生产环境编译时尤其有用。

编译成功后,在 distro/target/ 下会生成 apache-atlas-2.3.0-bin.tar.gz,跟官方二进制包一样。

4.3 配置 Hive Hook:让 Atlas 听懂 Hive 在干什么

Atlas 安装好只是第一步。真正让它「活」起来,得靠 Hook。Hook 就像翻译官,把 Hive 的 DDL、DML 操作翻译成 Atlas 能理解的元数据事件。

配置 Hive Hook 分三步:

  1. 复制 Hook JAR:把 Atlas 的 Hive Hook JAR 放到 Hive 的 classpath 里。
  2. 修改 Hive 配置:在 hive-site.xml 里添加 Hook 相关参数。
  3. 重启 Hive:让配置生效。

具体操作如下:

# 1. 复制 Hook JAR
cp /opt/apache-atlas-2.3.0/hook/hive/atlas-hive-plugin-impl/*.jar \
   $HIVE_HOME/lib/

# 2. 修改 hive-site.xml
<property>
  <name>hive.exec.post.hooks</name>
  <value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
<property>
  <name>atlas.cluster.name</name>
  <value>primary</value>
</property>
<property>
  <name>atlas.rest.address</name>
  <value>http://localhost:21000</value>
</property>

核心逻辑: hive.exec.post.hooks 是 Hive 提供的扩展点,Atlas 的 HiveHook 会在这里拦截 SQL 执行后的元数据变化,然后通过 REST API 发送给 Atlas 服务端。

我曾经遇到过一个情况:配置完 Hook 后,Hive 执行 CREATE TABLE 时 Atlas 里死活看不到表。查了半天,发现是 atlas.rest.address 写成了 localhost,但 Atlas 服务跑在另一台机器上。嗯,这种低级错误,大家引以为戒。

4.4 启动服务:见证奇迹的时刻

所有配置就绪后,就可以启动 Atlas 了。Atlas 的启动脚本在 bin/ 目录下:

cd /opt/apache-atlas-2.3.0
# 初始化(首次启动必须执行)
python bin/atlas_start.py

# 查看日志
tail -f logs/application.log

启动过程会依次拉起 HBase、Solr 和 Atlas Web 服务。你可以在浏览器访问 http://localhost:21000,默认用户名/密码是 admin/admin。

注意: 首次启动时,Atlas 会初始化 HBase 表结构和 Solr 索引。这个过程可能持续 3-5 分钟,别急着关终端。我见过有人等不及直接 Ctrl+C,结果 HBase 表只创建了一半,后面怎么都起不来。

启动成功后,你可以用 Hive 创建一张表,然后去 Atlas UI 里搜索看看。如果一切正常,表名、字段、类型都会出现在 Atlas 里。

4.5 整体架构:一张图看懂

下面这张图展示了 Atlas 安装后的核心组件关系。我画这张图时,特意把 Hive Hook 的调用链标红了,因为这是最容易出问题的地方。

Atlas 安装架构图 Atlas 安装架构图 用户 / Hive CLI Hive Server Hive Hook Atlas Web (REST API) HBase (元数据存储) Solr (全文检索) 说明:Hive Hook 拦截 DDL/DML 操作,通过 REST API 将元数据推送给 Atlas,Atlas 再写入 HBase 并索引到 Solr。 用户通过 Atlas UI 或 REST API 查询元数据,实现数据血缘追踪。

4.6 验证安装:别急着收工

服务启动后,我建议做几个快速验证:

  1. 检查进程:jps 应该能看到 Atlas、HMaster、SolrServer 等进程。
  2. 访问 UI:浏览器打开 http://localhost:21000,能正常登录。
  3. 创建测试表:在 Hive 里执行 CREATE TABLE test_atlas (id int, name string);,然后去 Atlas UI 搜索 test_atlas。

小技巧: 如果搜索不到,检查 logs/application.log 里有没有 ERROR 日志。最常见的问题是 atlas.rest.address 配置错误,或者 HBase 表没创建成功。

嗯,到这里,Atlas 的安装与配置就完成了。你想想看,整个过程其实不复杂,但每一步都有细节。尤其是 Hive Hook 的配置,一旦出错,整个数据血缘追踪就断了。我当年在生产环境部署时,就因为漏了 atlas.cluster.name 这个参数,导致两个集群的元数据混在一起,排查了整整一天。所以,别嫌我啰嗦,每一步都确认好再往下走。