sudo yum -y install docker jq
sudo systemctl enable docker
sudo systemctl start docker
# 检查docker服务是否正常启动
systemctl status 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
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/
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
python3 -m datahub docker quickstart
DataHub的默认端口是9002, 使用Http协议(可使用Firefox打开)。默认账号/密码:datahub/datahub
初始系统没有采集任何元数据,如果需要先探查一下DataHub的基本功能,可以先使用命令:
datahub docker ingest-sample-data
彻底清理:
# 停止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
我们以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的功能。
首先, 在Datahub中安装glue的插件(使用datahub docker quickstart
启动时已自动安装):
pip install 'acryl-datahub[glue]'
准备好血缘元数据文件,使用如下命令进行导入:
datahub ingest -c /path/to/lineage.yml
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的权限
datahub docker quickstart
报错unknown shorthand flag: 'f' in -f
原因:没有安装Docker Compose (V2),必须是v2版本!
先登录服务器,使用curl http://localhost:9002
查看是否包含同样错误,如果没有,则大概率是浏览器和VPN导致的,建议使用SSH隧道建立动态代理来解决.