一 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从入门到精通
======================
- linux从入门到精通(第2版)
- Linux系统移植
- Linux驱动开发入门与实战
- LINUX 系统移植 第2版
- Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论