开源元数据管理平台Datahub最新版本0.10.5——安装部署手册(附离线安装包)

news2025/1/18 21:14:53

大家好,我是独孤风。

开源元数据管理平台Datahub近期得到了飞速的发展。已经更新到了0.10.5的版本,来咨询我的小伙伴也越来越多,特别是安装过程有很多问题。本文经过和群里大伙伴的共同讨论,总结出安装部署Datahub最新版本的部署手册,希望能帮助到大家。

文章较长,建议收藏点赞在看后,再仔细阅读。具体安装问题,以及安装包获取,可以在文末申请加入Datahub学习群进行咨询。

本文档版权归大数据流动所有,抄袭必究。

正文共: 6173字 19图

预计阅读时间: 16分钟

正文开始:

本文所使用操作系统是CentOS7。这也是大多数生产机器的选择。

本文所选择的Python的版本为3.8.3,Docker版本为20.10.0,都可以很好的支持Datahub的安装。

Datahub下载的最新0.10.5版本,这是目前功能最完善也最稳定的版本。考虑到有些同学没有类似的CentOS环境,本文将从虚拟机搭建,CentOS 7安装,Python3安装, Docker安装,Datahub安装,启动Datahub六部分来进行,并将安装过程中遇到的问题进行整理。文章目录结构如下:

4db0cbf724f5014aadb28765d61d7039.png

一、虚拟机搭建

要想有一个本地稳定的调试环境,就必须安装虚拟机,本文使用的是Win10系统的Hyper-V管理器,也 是一个系统自带的虚拟机工具,非常的方便。安装之前先下载一个CentOS镜像,我这边用的是CentOS-7-x86_64-DVD-2009.iso。可以去官网下载:https://www.centos.org/download/。 网速不好的同学可以加入Datahub学习交流群,获取Datahub所有安装资料下载包。加入方式,关注 大数据流动,后台回复 “加群”。首先,打开Hyper-V管理器。可以搜索一下,有的话直接打开。没有的话是系统默认没有开启这个服务。

36dff5c0c6f0d5ce96ae01aabdd32e33.png

在这里选择把Hyper-V的管理工具和平台都打开。

8f1272703e50fac8d4aa5d6452d135bf.png

然后我们打开Hyper-V管理工具,新建一个虚拟机。需要指定名称和位置,需要保证安装位置有足够大的空间。

选择虚拟机代数,选第一代。分配内存,这个后面也是可以修改的。考虑到Datahub的基本需要,还有电脑的配置,我这里选择 4096MB。(补充一下,datahub建议内存就是4GB,所以这里我后来做了修改,建议5GB以上)

f9680d71094afec93891c3937ef9d4f1.png

随后选好硬盘,网络。导入镜像。

fc857e3f5d2c4992d4966cdaa0d8ebc3.png

完成虚拟机创建。

这样的话,虚拟机安装完成,我们可以有一个稳定的环境来运行datahub了。但是目前这个虚拟机里边是没有操作系统的,需要安装。

二、CentOS 7安装

启动Hyper-V管理器。打开刚刚新建的虚拟机,然后点击启动。选择 install centos 7 正常安装 CentOS 7 的流程。

6e33b5cfb9da913d1b6d05e95e751fa9.png

随后选择语言,时区等等。安装过程中设置一下密码。并牢记。

84e4cb534ae57bdd038d41a74cde77b5.png

安装完成之后点击重启。CentOS7 安装完成,可以正常使用了!

7fe39d4009ae4ccf187ab971e8394997.png

三、Python3安装

由于CentOS7默认的python环境是python2,这里我们需要去安装一下Python3,来支持Datahub。

可以通过如下路径下载,并解压Python3安装包。网络不佳的同学,可以直接用我的安装包,已经下载好。

wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz

随后需要下载一堆依赖,不然安装Python3会报各种问题。

yum install -y zlib-devel bzip2-devel \
openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel \
gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel

随后进行Python3的编译,如果包都安装完全,不会出问题。

mkdir /usr/local/python3
cd Python-3.8.3
./configure --prefix=/usr/local/python3
make && make install

有如下显示证明安装成功。有一点错误都是不对的,赶紧解决。

8ed883c059845f99cc68faaf79afefb5.png

make install此过程较漫长,耐心等待,此时python3已经安装成功,我们进行一些基本设置就可以了。

6d07172f8590706807f62b22a3350c9f.png

修改系统默认python指向,默认pip指向,注意,这样改完会系统yum不可用,需要修复一下。

rm -rf /usr/bin/python 
 ln -s /usr/local/python3/bin/python3 /usr/bin/python 
 rm -rf /usr/bin/pip 
 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip 
 python -V 
 pip -V

d62f621a339a3bf4990a6bed6e66ad34.png

四、 Docker安装

首先下载docker安装包,同样,网络不佳的同学,可以直接用我的安装包,已经下载好。上传上去就行了。

#下载docker-20.10.0包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.0.tgz
#下载docker-compose对应系统的包
https://github.com/docker/compose/releases/download/1.29.1/docker-compose-Linuxx86_64

解压安装docker。

tar -zxvf docker-20.10.0.tgz
#将解压出来的docker文件内容移动到 /usr/bin/ 目录下
cp docker/* /usr/bin/
#查看docker版本
docker version
#查看docker信息
docker info

配置docker。

配置Docker开机自启动服务
#添加docker.service文件
vi /etc/systemd/system/docker.service
#按i插入模式,复制如下内容:
[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
安装docker-compose
将docker-compose上传到服务器/usr/local/bin/里面:
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
#启动Docker
systemctl start docker
#查看docker启动状态
systemctl status docker
#查看启动容器
docker ps
#设置开机自启动
systemctl enable docker.service
#查看docker开机启动状态 enabled:开启, disabled:关闭
systemctl is-enabled docker.service

安装docker-compose

#下载docker-compose到/usr/local/bin/目录。
# 给docker compose 目录授权
sudo chmod +x /usr/local/bin/docker-compose
# 查看一下version,显示有版本号那就说明安装成功了
docker-compose version

version一下,有这样的显示就对了。

68544520eb1ccb35c90389132e8b6517.png

五、Datahub安装

依赖安装,Datahub需要依赖大量的python包,好在pip都有集成,可以很方便安装。当然网速是个问题,建议选择合适的源。

先检查环境

python3 -m pip uninstall datahub acryl-datahub || true # sanity check - ok if it
fails

检查环境 收到这样的提示说明没有问题。

WARNING: Skipping datahub as it is not installed.

安装依赖包。

pip3 install acryl-datahub==0.10.5

c2a39c3e16bf0b95feb4190cc208862d.png

查看版本情况。

python -m datahub version

ebe4be4aa1715802f18f09e0b4bc0d80.png

显示为0.10.5.

镜像下载,接下来是下载镜像,我们知道datahub的组件依赖较多,一共有11个,所以需要用docker先把镜像pull下来。

镜像较大,一共十几个GB,需要耐心下载。镜像是通用的,可以直接load进去,也可以用下载好的镜像包。我这边已上传云盘。

查看下配置文件,在github中 linkedin/datahub/master/docker/quickstart/docker-composewithout-neo4j.quickstart.yml。

这里详细记录了镜像的版本及获取。

1229b60deef3b48f6f7047eee9851340.png

随后进行镜像拉取。

docker pull confluentinc/cp-kafka:7.4.0
docker pull confluentinc/cp-zookeeper:7.4.0 
docker pull elasticsearch:7.10.1
docker pull mysql:5.7
。。。

一定按照配置文件耐心下载下来。

最后执行docker image,要保证镜像都是完整的。

f5a044c94bfda57b2f0624afa7bfde36.png

六、启动Datahub

万事具备,就差启动。

启动命令如下,这个过程可能会卡住,因为要去github拉那个配置来启动。

python -m datahub docker quickstart 
docker-compose -p datahub

所以我们可以选择本地读配置文件启动的方式。

python -m datahub docker quickstart --quickstart-compose-file ./docker-composewithout-neo4j.quickstart.yml
docker-compose -p datahub -f ./docker-compose-without-neo4j.quickstart.yml up -

如果启动失败,需要排查下镜像是不是有问题。我在这块遇到了很多坑~ 由于网络问题,很有可能导致打的tar包是一个不完整的包。可以单独启动容器调试一下,命令如下:

docker run --name kafka -d confluentinc/cp-kafka:7.4.0

还有一些docker命令

查看启动的容器
docker ps
停止容器
docker stop confluentinc/cp-kafka:7.4.0

执行命令后,如果没有报错证明没有问题。

访问IP:9002,启动成功啦!!

323ef452937d712ec4c74030aab2c7c1.png

爬坑记录

1、ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL

urllib3在导入时发生ImportError,是由于urllib3 v2.0只支持OpenSSL 1.1.1及以上版本,而当前系统中的ssl模块使用的OpenSSL版本低于1.1.1导致的。

如何解决 解决方法有以下几种:

  1. 升级OpenSSL到1.1.1或更高版本。

  2. 使用urllib3 v1.x版本。

2、ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock

docker没有正常启动,按照docker自启动进行配置。

3、提示 Fetching docker-compose file https://raw.githubusercontent.com/datahub-project/datahub/master/docker/quickstart/docker-compose-without-neo4j.quickstart.yml from GitHub 卡住了

连接github网络发生问题,可以下载下来配置文件,或者用我给大家准备好的。

4、requests.exceptions.SSLError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /datahub-project/datahub/master/docker/quickstart/docker-compose-without-neo4j.quickstart.yml

同样的问题,重试次数太多,连接github网络发生问题。

5、安装python报错,miss 。。。

大概率是依赖包没安装全,用yum命令重新安装下。


加群方式

关注大数据流动,后台回复“Datahub学习资料”,申请加入Datahub学习资料群。

先声明一下,为防止抄袭和广告党,加入学习群收费。加入群后禁止一切广告,群里定期分享Datahub相关资料,并将长期分享Datahub各版本安装包,一次进群,获得永久权益。

但如果是学生党,不勉强,备注一下,可以直接申请进入。

感谢大家的支持,非诚勿扰~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud深入理解 | 生产者、消费者

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! SpringCloud Spring Cloud是一组用于构建分布式系统和微服务架构的开源框架和工具集合。它是在Spring生态系统的基础上构建的,旨在简化开发人员构建分布式…

Tomcat添加第三方jar包、如何在IDEA中启动部署Web模板

前言:公司最近维护老项目,是最原始的web项目,servlet和jsp结合的web项目,启动的时候配置了好几遍, 都起不来,很折磨人,这个文档比较全配置一遍准备工作 首先 拉取代码: git clone xxx.git ,如需要别的操作,自行baidu 也可以在idea中拉取第一步File ->Project Structure->…

张驰咨询:精益生产管理的独特特点和显著优势

精益生产管理是一种注重效率和优化生产流程的管理方法,旨在通过最小化浪费和提高生产效率来降低成本和提高产品质量。以下是精益生产管理的主要特点: 优化生产流程 精益生产管理强调通过优化生产流程来提高效率和降低成本。这包括通过标准化工作流程、…

【数据结构与算法】TypeScript 实现图结构

class Grapg<T> {// 用于存储所有的顶点verteces: T[] [];// 用于存储所有的边 采用邻接表的形式adjList: Map<T, T[]> new Map();// 添加顶点addVertex(v: T) {this.verteces.push(v);// 初始化顶点的邻接表this.adjList.set(v, []);}// 添加边addEdge(v: T, w:…

通向架构师的道路之Tomcat性能调优

一、总结前一天的学习 从“第三天”的性能测试一节中&#xff0c;我们得知了决定性能测试的几个重要指标&#xff0c;它们是&#xff1a; 吞吐量 Responsetime Cpuload MemoryUsage 我 们也在第三天的学习中对Apache做过了一定的优化&#xff0c;使其最优化上…

计算机视觉与图形学-神经渲染专题-ConsistentNeRF

摘要 Neural Radiance Fields (NeRF) 已通过密集视图图像展示了卓越的 3D 重建能力。然而&#xff0c;在稀疏视图设置下&#xff0c;其性能显着恶化。我们观察到&#xff0c;在这种情况下&#xff0c;学习不同视图之间像素的 3D 一致性对于提高重建质量至关重要。在本文中&…

总结了12句话,送给通信新员工

1、入职第一件事——改变形象。 刚毕业的大学生进入工作单位之后&#xff0c;需要尽快完成身份的转换——从一名学生&#xff0c;变身为一个职业人。 这个转换的第一步&#xff0c;就是改变形象外表。 大学里过于随意的穿搭&#xff0c;请一定不要带进单位&#xff0c;尤其是入…

Flowable-子流程-调用活动

目录 定义图形标记XML内容界面操作使用示例子流程设计子流程的XML内容主流程设计主流程的XML内容 视频教程 定义 调用活动是在一个流程定义中调用另一个独立的流程定义&#xff0c;通常可以定义一些通用的流程作为 这种调用子流程&#xff0c;供其他多个流程定义复用。这种子流…

✅1本期刊发生变动,EI期刊目录更新!

【SciencePub学术】继上次更新后一个月&#xff0c;爱思唯尔&#xff08;Elsevier&#xff09;官网更新了EI Compendex收录期刊目录。本次更新EI期刊目录中&#xff0c;Serials&#xff08;连续出版/核心收录&#xff09;列表共收录期刊名称5347个&#xff0c;与上次更新相比&a…

golang执行异步任务的第三方库jobrunner库实践

简介 我们在 Web 开发中时常会遇到这样的需求&#xff0c;执行一个操作之后&#xff0c;需要给用户一定形式的通知。例如&#xff0c;用户下单之后通过邮件发送电子发票&#xff0c;网上购票支付后通过短信发送车次信息。但是这类需求并不需要非常及时&#xff0c;如果放在请求…

Jenkins工具系列 —— 快速构建项目

文章目录 添加项目选择构建的项目添加项目参数添加项目仓库添加编译脚本 添加项目 选择构建的项目 添加项目参数 添加项目仓库 添加编译脚本

电脑技巧:分享五款非常实用的电脑软件,值得收藏

目录 1、RX文件管理器&#xff08;UWP&#xff09; 2、WizTree 3、QuickLook 4、优效日历 5、FastStone Capture 今天小编给大家分享非常实用的电脑软件&#xff0c;值得收藏&#xff01; 1、RX文件管理器&#xff08;UWP&#xff09; RX文件管理器是优雅的UWP文件管理器…

leetcode原题 路径总和 I II III(递归实现)

路径总和 I &#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…

FreeRTOS源码分析-8 信号量

1 信号量概念及应用 信号灯解决的问题&#xff1a; 行人、车辆共享一个马路共享资源的问题&#xff0c;第二个解决通过的问题。 计数停车位的问题&#xff1a; 解决共享资源停车位计数的问题&#xff0c;因为车位是有限的&#xff0c;客流是无限的&#xff0c;计数可以很好的…

无涯教程-Lua - Iterators(迭代器)

迭代器是一种构造&#xff0c;使您可以遍历所谓的集合或集合的元素。在Lua中&#xff0c;这些集合通常引用表&#xff0c;这些表用于创建各种数据结构(如数组)。 通用迭代器 通用的 for 迭代器提供集合中每个元素的键值对。下面给出一个简单的示例。 array{"Lua",…

程序的编译和调试

gcc编译器 gcc(GNU Compiler Collection)是GNU推出的多平台编译器&#xff0c;可将C、C源程序编译连接成可执行文件&#xff0c;支持以下后缀&#xff1a; .c c语言源代码 .h 程序所包含的头文件 .i 已经预处理过的C源代码文件 .s 汇编语言源代码文件 .o 编译后的目标文件…

Leetcode69 x的平方根

二分查找法 代码 public int mySqrt(int x){int l 0, r x,ans -1;while(l < r){int mid l (r - l) / 2;if((long) mid * mid < x){ans mid;l mid 1;}else{r mid - 1;}}return ans; }

C++ 多文件结构和编译预处理命令——C++程序的一般组织结构

1. C程序的一般组织结构 C源程序的结构基本上都是由3个部分构成&#xff1a;类的定义、类的成员的实现和主函数。因为所编写的程序比较小&#xff0c;所以这三个部分都写在了同一个文件当中。在规模比较大的项目中&#xff0c;往往需要多个源程序文件&#xff0c;每个源程序文…

windows编译zookeeker动态库供C++链接使用以及遇到的错误处理方法

windows下面C链接zookeeper资料不多&#xff0c;特此记录一下 编译环境VS 2015 一. 相关安装包安装下载 1. zookeeper zookeeper3.6.4 下载zip包解压即可 2. ant apache-ant-1.9.16 将包进行解压D:project\apache-ant-1.9.16&#xff0c;然后配置环境变量 新建 ANT_HOME 系…

linux/windows如何退出telnet

在运维过程中&#xff0c;我们需要使用telnet来验证tcp端口的连通性&#xff0c;当tcp端口的连通性处于正常状态时&#xff0c;那么此时如果退出呢&#xff1f;下面就为大家讲一讲这个小常识&#xff0c;希望能对大家有所帮助。 1.Linux下telnet退出 如果没有telnet命令&…