Amundsen元数据平台开发指南:从本地环境搭建到服务部署
一、Amundsen项目概述
Amundsen是一个开源的元数据发现和治理平台,由Lyft公司开发并开源。它通过三个核心组件构建:
- 前端服务(amundsenfrontendlibrary):提供用户界面
- 元数据服务(amundsenmetadatalibrary):管理元数据
- 搜索服务(amundsensearchlibrary):实现元数据搜索功能
二、本地开发环境准备
2.1 代码仓库克隆
Amundsen采用git子模块管理多个组件,克隆时需使用递归方式:
git clone --recursive 项目地址
若已克隆但子模块为空,执行:
git submodule init
git submodule update
2.2 开发环境依赖
确保已安装:
- Docker和Docker Compose
- Python 3.7+
- Node.js(前端开发需要)
三、本地开发工作流
3.1 代码更新
保持代码最新:
git pull origin master
git submodule update --remote
3.2 容器化开发
- 停止现有容器:
docker-compose -f docker-amundsen.yml down
- 启动本地开发环境:
docker-compose -f docker-amundsen-local.yml up -d
- 查看日志:
docker-compose -f docker-amundsen-local.yml logs --tail=3 -f
3.3 数据管理
本地数据存储在.local/
目录下:
- 重置Elasticsearch:
rm -rf .local/elasticsearch
- 重置Neo4j:
rm -rf .local/neo4j
四、前端开发专项
4.1 本地运行前端服务
- 修改配置:
- 设置
LOCAL_HOST = '127.0.0.1'
- 更新端口配置(避免5000端口冲突)
- 启动前端服务后,使用Docker Compose启动其他组件
4.2 前端缓存问题
修改前端代码后若未生效:
- 尝试强制刷新浏览器
- 清除浏览器缓存
五、Docker镜像构建与测试
5.1 镜像构建
- 构建无缓存镜像:
docker build --no-cache .
- 获取镜像ID:
docker images
- 更新docker-compose文件使用新镜像
5.2 调试Dockerfile
构建失败时调试方法:
- 从失败前的步骤启动临时容器:
docker container run -it --name=debug 镜像ID /bin/sh
六、生产环境部署
6.1 推送镜像到ECR
- 登录ECR:
aws ecr get-login --no-include-email --region 区域
- 构建并标记镜像:
docker build -t amundsen-frontend:版本标签 .
docker tag amundsen-frontend:版本标签 ECR地址/amundsen-frontend:版本标签
- 推送镜像:
docker push ECR地址/amundsen-frontend:版本标签
6.2 Kubernetes部署
更新Helm chart中的values.yaml文件,指定新镜像标签
七、搜索服务测试
7.1 本地Elasticsearch
启动单节点Elasticsearch:
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.2.4
7.2 数据索引构建
- 安装Databuilder:
python setup.py install
pip install -r requirements.txt
- 配置环境变量:
export NEO4J_ENDPOINT=地址
export CREDENTIALS_NEO4J_PASSWORD=密码
- 执行索引构建脚本
八、常见问题排查
- 服务启动失败:
- 检查端口冲突
- 验证依赖服务(Neo4j/Elasticsearch)是否正常运行
- 数据不一致:
- 重置本地数据库
- 重新构建索引
- 前端修改不生效:
- 确认浏览器缓存已清除
- 检查构建过程是否有错误
通过本文介绍的工作流程,开发者可以高效地进行Amundsen平台的本地开发和测试,最终将修改部署到生产环境。Amundsen的模块化设计使得各组件可以独立开发和测试,大大提高了开发效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考