国外数据治理开源项目,DataHub的安装,应用探索。
前身为LinkedIn 的数据团队开发的 WhereHow,WhereHow 围绕着任何一个大数据系统中最重要的组成部分数据本身构建了一整套关于数据处理流程、使用人员和相关洞见的集中式平台和相应网页。
官网地址:https://datahubproject.io/
Demo地址:https://demo.datahubproject.io/
github开源地址:https://github.com/datahub-project/datahub
CSDN介绍链接:https://blog.csdn.net/ZYC88888/article/details/119213446
CSDN专栏介绍:https://cloud.189.cn/t/YZ3Ejyn6nUzq(访问码:9uhx)
各元数据管理系统实现功能对比:
uname -a #CENTOS 7.9&8.5 安装成功,没特殊要求,其他发行版指令、依赖包不一样 python3 -V #0.8以后要求python版本大于3.6 java version #1.8 docker version #Docker version 20.10.16
部署附件:
https://cloud.189.cn/t/6RNFNbYVzM3y(访问码:uqk6)
下面这仨先不用下载
https://cloud.189.cn/t/Fb6jIrZbEFzq(访问码:oar2)
https://cloud.189.cn/t/yuuQZfryiUNf(访问码:qym5)
https://cloud.189.cn/t/FR7v2mbee2y2(访问码:mv0m)
yum -y install libffi-devel yum -y install zlib* yum -y install gcc yum -y install git yum -y install python3-devel yum -y install cyrus-sasl-devel
安装必要插件时使用
shellyum groupinstall "Development tools" yum install openldap-devel python-devel
python 安装好后安装
shellpip install pyopenssl ndg-httpsclient pyasn1 pip install -U urllib3 pip install -U channels pip install requests[security] pip3 install toml pip --cert /user/local/cacert.pem install -U channels
python编译安装 (python3 -V 大于3.6的忽略)
shellcd /opt/module/Python-3.8.0
#编译安装
./configure --prefix=/usr/local/python3
sudo make && sudo make install
#创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
#查看版本
python3 -V
great_expectations 插件安装 (root环境执行pip指令会有提示权限问题,忽略即可,也可以进入虚拟环境运行)
shellpython -m venv /usr/bin/venv source usr/bin/activate pip install great_expectations
下载安装docker-compose、jq
shellwget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose mv jq-linux64 /usr/local/bin/jq chmod +x /usr/local/bin/docker-compose chmod +x /usr/local/bin/jq
复制后台安装包
shellgit clone git://github.com/linkedin/datahub.git
有时会连接失败,可以用上面网盘下载下来的安装包使用sftp上传至根目录
shellmkdir -p /opt/datahub
#解压至指定文件夹
tar -zxvf datahub-0.8.34.tar.gz -C /opt/datahub
后台初始化运行/shell 运行
shellcd /opt/datahub/docker mkdir logs touch logs/quickstart.log nohup ./quickstart.sh > logs/quickstart.log 2>&1 & tail -200f logs/quickstart.log
安装前台
shellpip install --upgrade pip wheel setuptools pip uninstall datahub acryl-datahub || true pip install --upgrade acryl-datahub datahub version
检查前台运行情况
shellpip show acryl_datahub
docker方式启动(上面是shell运行方式,两者不能同时跑) 后面可以指定启动配置文件,默认没有图数据库组件,即没血缘关系
shelldatahub docker quickstart --quickstart-compose-file /opt/datahub/docker/quickstart/docker-compose.quickstart.yml
检查各组件运行情况
shelldocker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"
CONTAINER ID NAMES PORTS STATUS feccca9dc28d datahub-frontend-react 0.0.0.0:9002->9002/tcp, :::9002->9002/tcp Up 2 hours (healthy) cb58e6dd06c9 datahub-datahub-actions-1 Up 2 hours fdc533e04c62 schema-registry 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp Up 2 hours 3d6985bdb797 broker 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp, 0.0.0.0:29092->29092/tcp, :::29092->29092/tcp Up 2 hours e8552b179b85 datahub-gms 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp Up 2 hours (healthy) dd45ab58216d mysql 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp Up 2 hours 8ce0c1069530 zookeeper 2888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 3888/tcp Up 2 hours 0c54c0cea09c neo4j 0.0.0.0:7474->7474/tcp, :::7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp, :::7687->7687/tcp Up 2 hours 87c2617c36da elasticsearch 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp Up 2 hours (healthy)
#检查插件
shelldatahub check plugins
安装数据源插件
shellpip install 'acryl-datahub[mysql]' pip install 'acryl-datahub[bigquery]' pip install 'acryl-datahub[bigquery-usage]' pip install 'acryl-datahub[druid]' pip install 'acryl-datahub[hive]' pip install 'acryl-datahub[kafka]' pip install 'acryl-datahub[kafka-connect]' pip install 'acryl-datahub[metabase]' pip install 'acryl-datahub[mongodb]' pip install 'acryl-datahub[mssql]' pip install 'acryl-datahub[mariadb]' pip install 'acryl-datahub[openapi]' pip install 'acryl-datahub[oracle]' pip install 'acryl-datahub[postgres]' pip install 'acryl-datahub[sqlalchemy]'
目标端插件
shellpip install 'acryl-datahub[datahub-rest]' pip install 'acryl-datahub[datahub-kafka]'
airflow组件(暂时用不到,crontab可实现定时更新元数据)
shellpip install acryl-datahub[airflow]
降级great_expectations
python 包great_expectation升级至最新版本后datahub未适配,必需降级至0.14.0
shellpip install --upgrade great-expectations==0.14.0
血缘关系开启(未成功)
SHELL# For REST-based:
airflow connections add --conn-type 'datahub_rest' 'datahub_rest_default' --conn-host 'http://localhost:8080'
# For Kafka-based (standard Kafka sink config can be passed via extras):
airflow connections add --conn-type 'datahub_kafka' 'datahub_kafka_default' --conn-host 'broker:9092' --conn-extra '{}'
添加配置文件
shellvim ./airflow/airflow.cfg
cfg[lineage] backend = datahub_provider.lineage.datahub.DatahubLineageBackend datahub_kwargs = { "datahub_conn_id": "datahub_rest_default", "cluster": "prod", "capture_ownership_info": true, "capture_tags_info": true, "graceful_exceptions": true } # The above indentation is important!
导入MySQL元数据
shellvim /opt/datahub/docker/ingestion/mysql_datahub.yml
yamlsource:
type: "mysql"
config:
username: "user_xxx"
password: "xxxxx"
database: "yourdatabase"
host_port: "10.10.1.10:3306"
sink:
type: "datahub-rest"
config:
server: 'http://localhost:8080'
导入操作
shelldatahub ingest -c /opt/datahub/docker/ingestion/mysql_datahub.yml
使用linux定时任务定时导入数据源,crontab 计算器https://www.matools.com/crontab
shell#编辑定时器
crontab -e
#按 i 进入编辑模式 添加每3小时执行一次任务 后保存退出
0 0 0-3 * * ? datahub ingest -c /opt/datahub/docker/ingestion/mysql_datahub.yml
#查看任务列表
crontab -l
http://ip:9002 (机器必需开启9002端口外网访问)
关闭后台各docker容器 (保留数据)
shelldatahub docker nuke --keep-data
docker关闭、删除所有容器
shelldocker stop $(docker ps -a -q) docker rm $(docker ps -aq)
查看docker运行中项目日志
cssdocker logs -f 容器ID
docker logs -f -t --tail 100 容器ID
查看docker-compose运行日志
rdocker-compose logs -f
docker-compose logs
待补充
本文作者:wangcw
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!