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

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

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(‘<urllib3.connection.HTTPSConnection object at 0x7fe29e5fe760>: 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

⑤ 将

下某个<package_name>安装到环境中

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两种

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

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

2.4.4 MyViews

2.5管理中心

2.5.1 Govern—Glossary

术语字典,可以定义一组标准化的概念,使用共享词汇描述数据

术语:分配有特定业务定义的字词或短语。

术语组:充当文件夹,包含术语甚至其他术语组,以允许嵌套结构。

描述文档可编辑加粗、倾斜、下划线、横线、删除线、项目列表、代码块、图片、链接和表格

创建后是这样的,右侧可以添加owner

创建术语词条,父组选刚创建的组

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
g)

2.5管理中心

2.5.1 Govern—Glossary

术语字典,可以定义一组标准化的概念,使用共享词汇描述数据

术语:分配有特定业务定义的字词或短语。

术语组:充当文件夹,包含术语甚至其他术语组,以允许嵌套结构。

描述文档可编辑加粗、倾斜、下划线、横线、删除线、项目列表、代码块、图片、链接和表格

创建后是这样的,右侧可以添加owner

创建术语词条,父组选刚创建的组

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-6lYzcRrF-1713124660571)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS7上安装ag,有几种正确的方法可以选择。 方法一:安装epel源,然后使用yum安装ag。 首先,安装epel源,可以使用以下命令: ``` yum install epel-release ``` 然后,使用yum直接安装ag: ``` yum -y install the_silver_searcher ``` 方法二:使用脚本安装ag。 首先,创建一个名为`installAg.sh`的脚本,并将以下代码粘贴进去: ``` #!/bin/bash #打开调试日志 set -x #一次性安装Linux下的常用开发工具 yum -y groupinsatll Development Tools yum -y install pcre-devel xz-devel zlib-devel automake #创建临时目录,用于存放源码压缩包 tempDir=$(mktemp -d agTemp.XXXXXX) cd "$tempDir" #从GitHub上面下载源码压缩文件 wget https://github.com/ggreer/the_silver_searcher/archive/master.zip #解压安装 dir=$(unzip *.zip) dir=${dir##*: } dir=${dir%/*} cd "$dir" ./build.sh&&make install cd ../../ #删除临时目录 rm -rf ${tempDir} #测试是否安装成功 ag -V #关闭调试日志 set +x ``` 这个脚本会安装一些开发工具,下载源码压缩包,解压并安装ag,然后进行一些测试。 无论使用哪种方法,都应该能够成功在CentOS7上安装ag。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CentOS怎么正确安装ag工具](https://blog.csdn.net/DJCWDCN/article/details/100166288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Centos7离线ag搜索工具the_silver_searcher(待续)](https://blog.csdn.net/wenyichuan/article/details/108751988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值