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 分三步:
- 复制 Hook JAR:把 Atlas 的 Hive Hook JAR 放到 Hive 的 classpath 里。
- 修改 Hive 配置:在
hive-site.xml里添加 Hook 相关参数。 - 重启 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 的调用链标红了,因为这是最容易出问题的地方。
4.6 验证安装:别急着收工
服务启动后,我建议做几个快速验证:
- 检查进程:
jps应该能看到Atlas、HMaster、SolrServer等进程。 - 访问 UI:浏览器打开
http://localhost:21000,能正常登录。 - 创建测试表:在 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 这个参数,导致两个集群的元数据混在一起,排查了整整一天。所以,别嫌我啰嗦,每一步都确认好再往下走。