Linux安装DataHub (开源元数据管理工具)
安装Docker & JQ, 创建docker组并将当前用户加入其中;安装Docker Compose (V2);安装DataHub
1. 前置条件
- 系统已经安装Python 3.7+
- 安装过程中会从GitHub拉取docker compose文件,近期从国内访问GitHub经常终端,导致命令行经常失败,所以:如有条件最好在外网的云上测试或者配置VPN
2. 安装命令
2.1 安装Docker & JQ
sudo yum -y install docker jq
sudo systemctl enable docker
sudo systemctl start docker
# 检查docker服务是否正常启动
systemctl status docker
2.2 创建docker组并将当前用户加入其中
创建docker组并将当前用户加入其中,否则当前用户无权调用docker命令,通常会报出如下错误:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
后续datahub docker quickstart
命令就无法执行。
# 检查/var/run/docker.sock文件的mod
ls -al /var/run/docker.sock
# 通常docker group已经在安装docker时自动建立了
sudo groupadd docker
# 将当前用户添加到docker组中
sudo usermod -a -G docker ${USER}
# 注意:上述将用户加入到组的操作只在下次登录时才能生效
# 所以:需要退出终端重新登录
exit
再次登录,检查加入组的操作是否已生效:
# 检查当前用户是否已经在docker组中
groups
# 检查当前用户是否可以正常使用docker
docker run hello-world
参考: https://www.digitalocean.com/community/questions/how-to-fix-docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket
2.3 安装Docker Compose (V2)
mkdir -p ~/.docker/cli-plugins
curl -sSL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m) -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
# 检查安装是否正确
docker compose version
参考:https://www.rockyourcode.com/how-to-install-docker-compose-v2-on-linux-2021/
2.4 安装
python3 -m pip install --upgrade pip wheel setuptools
python3 -m pip uninstall datahub acryl-datahub || true # sanity check - ok if it fails
python3 -m pip install --upgrade acryl-datahub
python3 -m datahub version
2.5 启动
python3 -m datahub docker quickstart
2.6 访问
DataHub的默认端口是9002, 使用Http协议(可使用Firefox打开)。默认账号/密码:datahub/datahub
初始系统没有采集任何元数据,如果需要先探查一下DataHub的基本功能,可以先使用命令:
datahub docker ingest-sample-data
2.7 停止和清理
彻底清理:
# 停止datahub
python3 -m datahub docker quickstart --stop
# 清理所有数据
python3 -m datahub docker nuke
定点清除元数据:
# 删除PROD环境上的所有dataset
datahub delete --env PROD --entity_type dataset
# 删除PROD环境上的所有源自于glue平台的元数据
datahub delete --env PROD --platform glue
# 根据urn精准删除单一目标, urn可从浏览器的URL中获取
datahub delete --urn "urn:li:dataset:(urn:li:dataPlatform:glue,ods.geo_taxi_zone,PROD)" --hard
3. 集成
3.1 集成Airflow
我们以Airflow为例,演示一下DataHub集成Airflow获取作业调度元数据。
首先, 在Datahub中安装airflow的插件(使用datahub docker quickstart
启动时已自动安装):
pip install acryl-datahub[airflow]
然后,在Airflow环境中安装DataHub的插件:
pip install acryl-datahub-airflow-plugin
参考: https://datahubproject.io/docs/lineage/airflow
生成一些样本数据,便于更好地了解DataHub的功能。
3.2 集成Glue
首先, 在Datahub中安装glue的插件(使用datahub docker quickstart
启动时已自动安装):
pip install 'acryl-datahub[glue]'
3.3 基于元数据文件导入元数据
准备好血缘元数据文件,使用如下命令进行导入:
datahub ingest -c /path/to/lineage.yml
4. 常见错误
4.1 datahub docker quickstart
启动失败
[user]$ datahub docker quickstart
No ~/.datahubenv file found, generating one for you...
Unable to run quickstart:
- Docker doesn't seem to be running. Did you start it?
使用docker ps -a
检查docker服务,输出如下:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied
原因:没有赋予当前用户使用docker的权限
4.2 datahub docker quickstart
报错
unknown shorthand flag: 'f' in -f
原因:没有安装Docker Compose (V2),必须是v2版本!
4.3 页面报错“Oops, an error occurred”
先登录服务器,使用curl http://localhost:9002
查看是否包含同样错误,如果没有,则大概率是浏览器和VPN导致的,建议使用SSH隧道建立动态代理来解决.
更多推荐
所有评论(0)