datahub元数据管理平台从安装到使用一站式指南(未完)_datahub安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: datahub元数据管理平台从安装到使用一站式指南(未完)_datahub安装

datahub安装

1.1 datahub在线安装

1.1.1 docker在线安装

(1)下载docker-ce.repo文件

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(2)注意如果下载配置过python3,yum-config-manager命令可能会报错,

记得修改/usr/bin/yum-config-manager开头到python2

这是我的软连接路径,具体情况依照个人的配置

(3)按照官网文档,需要安装docker和dockerCompose v2!!! ,实测启动后内存占用4G多一点,最低配置6G内存应该可以。

(4)下载docker-ce、docker

① yum下载docker

yum install docker-ce docker –y

② 开启服务

systemctl start docker

③ 设置开机自启

systemctl enable docker

(5)下载docker-compose

注意!!务必使用以下方法或去github(Releases · docker/compose (github.com)")下载docker-compose 2.x,没试过其余版本但2.16以上绝对可以。yum install下载的版本为docker-compose 1.x,运行会报非常多错,一开始没注意走了很多弯路,

① curl-SL下载命令

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose

② chmod +x赋予运行权限

③到/usr/bin下创建软链接

④ docker-compose version查看安装是否成功

(6)docker运行hello-world检查是否安装成功

docker run hello-world

1.1.2 python安装
1.1.3 datahub在线安装并启动

不知是不是老虚拟机的缘故,网上别的教程里要求的python库我都没有特地去安,只按官网要求安装库就可以运行了

(1)更新pip、wheel、setuptools工具

python3 -m pip install --upgrade pip wheel setuptools

(2)下载acryl-datahub

python3 -m pip install --upgrade acryl-datahub

(3)datahub version查看是否成功

如果看到“command not found”,尝试运行前缀为python3 -m的cli命令,例如python3 -m datahub version,注意数据中心CLI不支持 Python 2.x。

(4)快速启动datahub

datahub docker quickstart

直接执行quickstart可能会报错:

ConnectionError: HTTPSConnectionPool(host=‘raw.githubusercontent.com’, port=443): Max retries exceeded with url: /linkedin/datahub/master/docker/quickstart/docker-compose-without-neo4j.quickstart.yml (Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno -2] Name or service not known’))

这个网址国内有可能连不上,不过命令的原理就是到raw.githubusercontent.com下载docker-compose-without-neo4j.quickstart.yml,可以在github上下载这个yml到本地

然后使用命令:

datahub docker quickstart --quickstart-compose-file ~/docker-compose-without-neo4j.quickstart.yml

源码可以不整个git clone,文件很大加上github下载速度慢,只下载docker-compose-without-neo4j.quickstart.yml就可以

注意如果虚拟机上安装过mysql或者mariadb记得systemctl stop ,不然会报端口占用错误,另外启动容器时还需要开放如下端口

不建议在已安装上述常见组件的服务器上运行datahub,

(5)出现下图则证明各个容器启动完成

(6) 摄取官方提供的测试用元数据

datahub docker ingest-sample-data

(7)登陆${hostname}:9002查看前端界面

1.2 datahub离线安装

对于公司开发内网环境来说,无法pip、yum在线下载,无法在线pull docker镜像,这一章尝试离线安装所有需要的组件。

1.2.1 docker离线安装

(1)进入官网下载tgz包(https://download.docker.com/linux/static/stable/x86_64/

(2)将安装包上传后tar –zxvf解压

(3)创建docker.service

vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
the default is not to use systemd for cgroups because the delegate issues still
exists and systemd currently does not support the cgroup feature set required
for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Having non-zero Limit*s causes performance problems due to accounting overhead
in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Uncomment TasksMax if your systemd version supports it.
Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
kill only the docker process, not all processes in the cgroup
KillMode=process
restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker

(4)用1.1.1(5)中github(Releases · docker/compose (github.com)"))下载安装包的方式安装docker-compose

(5)启动datahub后docker ps 查看所有启动的容器

(6)使用命令保存镜像,注意把相关的镜像都下载到本地docker save –o 包名 镜像名

例如:docker save -o localimage/datahub-actions.tar acryldata/datahub-actions:head

将所有datahub相关镜像全部下载到本地,最后效果是这样的:

(7)将镜像包发送到无网络环境的服务器上

(8)docker load –I 包名

将镜像加载到无网络环境的服务器上

1.2.2 python离线安装

(1)使用国内华为源(https://mirrors.huaweicloud.com/python)下载tar.xz包

(2)xz –d将tar.xz解压为tar

xz -d Python-3.9.11.tar.xz

(3)tar –xvf 将tar包解压

tar -xvf Python-3.9.11.tar

(4)注意安装之前必须保证有gcc、libffi-devel、zlib(否则pip无法安装)、openssl≥1.1.1、bzip2-devel(dathub所需)

离线安装gcc等命令可以在有网络的服务器使用repotrack命令将相关rpm包下载下来,然后传至无网服务器使用rpm -Uvh *rpm --nodeps –force安装

以gcc举例:

① 在有网络服务器创建目录package/gccpkg

② 进入package/gccpkg

③ repotrack gcc

④ 将gccpkg发送到无网服务器

⑤ 进入gccpkg目录

⑥ rpm -Uvh *rpm --nodeps --force安装所有rpm包

⑦ gcc –v查看是否安装成功

(5)安装openssl

下载openssl安装包(Releases · openssl/openssl (github.com)"))

tar -zxvf openssl-1.1.1t.tar.gz
./config --prefix=/usr/local/lib/openssl-1.1.1
make
make install
rm /usr/lib64/libssl.so.1.1
rm /usr/lib64/libcrypto.so.1.1
cd /usr/bin
rm openssl
ln -s /usr/local/lib/openssl-1.1.1/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib/openssl-1.1.1/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
cd /usr/bin
ln -s /usr/local/lib/openssl-1.1.1/bin/openssl usr/bin/openssl
openssl version

(6)./configure --prefix=/usr/python3 --with-openssl=/usr/local/lib/openssl-1.1.1

No module named _ssl

(7)make&&make install

(8)删除原来的python->python2软连接,添加python->python3,python3->安装目录

查看python版本

(9)添加软连接pip->pip3,pip3->安装目录

pip查看版本

1.2.3 datahub离线安装并启动

(1)与在线安装一样,需要安装pip、wheel、setuptools、acryl-datahub,pip也可以将包下载到本地

① 将本地安装过的所有库名记录到requirements.txt中
pip freeze > requirements.txt
② 遍历requirements.txt中的内容,下载
pip install -r requirements.txt
③ 将某个<package_name>库下载到本地<dir>下
pip download -d <dir> <package_name> 
④ 遍历requirements.txt中的内容,下载到本地<dir>下

pip download -d

-r requirements.txt

⑤ 将

下某个安装到环境中

pip install --no-index -f <dir> <package_name>

例如:

pip download -d acryl-datahub acryl-datahub
pip install –no-index –f acryl-datahub/*

(2)运行命令时-f指定yml地址,-no-pull-images不pull,使用本地镜像

datahub docker quickstart -f /usr/datahub/docker-compose-without-neo4j.quickstart.yml --no-pull-images

(3)与在线安装一样,登录${hostname}:9002查看前端界面,用户名密码datahub/datahub

(4)上传官方测试json至离线服务器,摄取官方测试数据

(5)可以看到界面中已经出现了测试信息

1.3 本地环境替换datahub docker

(cd docker && COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -p datahub -f docker-compose-without-neo4j.yml -f docker-compose-without-neo4j.override.yml -f docker-compose.dev.yml up -d --no-deps --force-recreate datahub-gms)

1.4 安装过程中可能遇到的问题

1.4.1 python3安装后导致yum不能正常使用
python3会导致yum不能正常使用
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改为 #!/usr/bin/python2

没有提示的不用修改

1.4.2 python控制台中按backspace返回^H

临时解决:

Ctrl+退格键

永久解决:

安装readline,readline 是 bash shell 用的库,包含许多使用功能

yum install readline readline-devel

安装完成后,需要再重新编译安装 Python,重复1.2.2

二 datahub使用

2.1 使用命令摄取

2.1.1  摄取前准备工作

检查插件

datahub check plugins --verbose

如果插件不可用pip install acryl-datahub[插件名],无网络环境可以参考1.2.3将pip包download至本地,再load -o

这里我pip install ‘acryl-datahub[mysql]’

确保插件无disable后再进行摄取操作

2.1.2 编辑yml文件执行摄取操作(未完)

编辑摄取文件

vi /usr/datahub/mysqlmaster.yml
source:
type: mysql
config:
# Coordinates
host_port: master:3306
database: dolphinscheduler
# Credentials
username: root
password: lovol
# If you need to use SSL with MySQL:
# options:
#   connect_args:
#     ssl_ca: “path_to/server-ca.pem”
#     ssl_cert: “path_to/client-cert.pem”
#     ssl_key: “path_to/client-key.pem”
sink:
# sink configs
type: datahub-rest
config:
server: http://slave1:8080

执行命令

datahub ingest -c /usr/datahub/mysqlmaster.yml

5 0 * * * datahub ingest -c /usr/datahub/mysqlmaster.yml

可以调度执行摄取任务,corn用法教程网上有很多,这里就不介绍了

在2.3中介绍另一种摄取方法

2.2 datahub命令详解

datahub --help查看所有命令

2.2.1 check

常用命令:

检查插件 –v输出详细信息

datahub check plugins -v

datahub delete

命令行删除元数据

datahub delete --env prod --entity_type dataset -p mysql --query dolphinscheduler --hard

 

任何命令加 –n则空跑,不会产生实际影响,例如

datahub delete --env prod --entity_type dataset -p mysql --query dolphinscheduler --hard -n

由于cli命令原理是依靠输入参数快速构建rest,如果按照2.4.1开放了tokens,再使用命令时相当于无token运行,会报http连接错误

2.3 摄取调度中心

由于UI界面创建的摄取任务是在容器内运行的,容器内没有添加hostname,使用hostname格式不能运行,

且进入容器的租户无权添加hosts,UI界面创建的任务只有用服务器IP才能成功执行

2.3.1 mysql源摄取流程

(1)选择数据源

(2)选择设置项

在Connection中输入服务器ip、端口号、mysql用户名密码

由于UI界面创建的摄取任务是在容器内运行的,容器内没有添加hostname,使用hostname格式不能运行,

尝试进入容器修改hosts,无效

查看datahub-actions的containerID

修改服务器/var/lib/docker/containers/ 36d5ece46eb8546cb95fe9ea6305bfe90c92a84aa0fe8281130eb2364181cdf7/hosts

添加master后才可以在前端使用host进行摄取

每次重启docker后hosts文件都会重置,所以如果频繁启停的话建议使用ip进行摄取

Filter中编辑的是过滤条件,可以对数据库、MySQL源数据、表、视图做出限制,只摄取符合限制的表,Deny优先级高于allow

在Advanced中可以勾选附加选项

(3)调度运行时间

必须将Run on a schedule打开才能启用调度

(4)为摄取任务取名

2.4 Settings

2.4.1 Access Tokens

个人访问令牌允许向数据中心的 API 发出编程请求。令牌持有者继承发出人的权限,并且寿命有限。最好不要共享令牌

datahub令牌功能默认是关闭的,界面报

Token based authentication is currently disabled. Contact your DataHub administrator to enable this feature.(忘截图了)

需要修改1.1.3(4)中的的配置文件docker-compose-without-neo4j.quickstart.yml,在datahub-frontend-react和datahub-gms下的environment添加- METADATA_SERVICE_AUTH_ENABLED=true,开启令牌功能,注意更改yml后容器会类似重置,2.8中用户文件夹会刷新,记得重新编辑,添加用户

创建令牌

创建完成后界面不能重复打开,只能删除,建议保存到安全的位置

curl -X POST ‘http://slave1:9002/api/graphql’ \
–header ‘Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJhY3RvclR5cGUiOiJVU0VSIiwiYWN0b3JJZCI6Imxpa2FpIiwidHlwZSI6IlBFUlNPTkFMIiwidmVyc2lvbiI6IjIiLCJqdGkiOiI4MWZjN2E0NC1mNmQ2LTRhODAtYmU0MS02NmE4MmI3OTlmZmYiLCJzdWIiOiJsaWthaSIsImV4cCI6MTY4ODk3Mzg3NywiaXNzIjoiZGF0YWh1Yi1tZXRhZGF0YS1zZXJ2aWNlIn0.t1Mz27Jiw4r18wqIFqgl3CfFBQTwFAEA1vY3Sl0_DFU’ \
–header ‘Content-Type: application/json’ \
–data-raw ‘{“query”:“{\n  me {\n    corpUser {\n        username\n    }\n  }\n}”,“variables”:{}}’

2.4.2 Users & Groups

Users界面可以快速分配角色,但不能创建用户,创建用户见2.8

Group界面创建用户组

进入组后可以添加用户

2.4.3 Permissions

1、Roles

点击快速分配

2、Policies

默认root user,admin,editors和readers策略,无法删除无法编辑

可以点击创建新策略

① 输入名称和选择策略的类型,类型有Platform和Metadata两种

平台策略类型允许向用户分配数据中心平台权限。其中包括管理用户和组、创建策略、查看分析图等。

元数据策略类型允许向用户分配元数据权限。其中包括操作元数据的能力比如所有权,标签,数据集、图表之类的文档。

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)
  2. Linux系统移植
  3. Linux驱动开发入门与实战
  4. LINUX 系统移植 第2版
  5. Linux开源网络全栈详解 从DPDK到OpenFlow

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论


相关文章
|
6月前
|
传感器 数据可视化 数据管理
数据管理平台Splunk Enterprise本地部署结合内网穿透实现远程访问
数据管理平台Splunk Enterprise本地部署结合内网穿透实现远程访问
70 0
|
14天前
|
人工智能 Cloud Native 数据管理
媒体声音|阿里云王远:一站式数据管理平台的智能化跃迁
在DTCC 2024大会上,阿里云数据库产品管理与技术架构部负责人王远与IT168 & ITPUB特约嘉宾薛晓刚就数据库与AI技术的融合、云原生数据库的新趋势及向量数据库的支撑能力等热点话题进行了深入探讨。王远认为,Data+AI不仅是一个概念,已进入实际落地阶段。在智能化时代,单一数据库引擎难以满足多元业务需求,需要构建统一的数据管理能力,以支持不同工作负载。阿里云通过“瑶池”数据库品牌,提供云原生、平台化、一体化和智能化的数据库解决方案,助力用户应对复杂的数据管理挑战。
|
1月前
|
数据采集 DataWorks 数据管理
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第10天】随着大数据技术的发展,企业对数据处理的需求日益增长。阿里云推出的DataWorks是一款强大的数据集成和管理平台,提供从数据采集、清洗、加工到应用的一站式解决方案。本文通过电商平台案例,详细介绍了DataWorks的核心功能和优势,展示了如何高效处理大规模数据,帮助企业挖掘数据价值。
83 1
|
1月前
|
数据采集 SQL DataWorks
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第5天】本文通过一家电商平台的案例,详细介绍了阿里云DataWorks在数据处理全流程中的应用。从多源数据采集、清洗加工到分析可视化,DataWorks提供了强大的一站式解决方案,显著提升了数据分析效率和质量。通过具体SQL示例,展示了如何构建高效的数据处理流程,突显了DataWorks相较于传统工具如Excel的优势,为企业决策提供了有力支持。
88 3
|
3月前
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
100 9
|
4月前
|
Java 数据管理 API
构建基于Spring Boot的数据管理平台
构建基于Spring Boot的数据管理平台
|
5月前
|
运维 安全 数据管理
数据管理DMS产品使用合集之windows上安装网关时,token都是新的,报错:无效的token,该怎么办
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
64 4
|
6月前
|
数据采集 DataWorks 数据管理
DataWorks不是Excel,它是一个数据集成和数据管理平台
DataWorks不是Excel,它是一个数据集成和数据管理平台
190 2
|
6月前
|
SQL 关系型数据库 Java
实时计算 Flink版操作报错之在阿里云DataHub平台上执行SQL查询GitHub新增star仓库Top 3时不显示结果,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
分布式计算 数据管理 Hadoop
元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata
元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata
1434 57