首页 > 其他分享 >【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解

【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解

时间:2023-12-28 09:00:26浏览次数:30  
标签:docker quickstart -- 必学 命令 DatahubCLI Datahub datahub

大家好,我是独孤风,今天的元数据管理平台Datahub的系列教程,我们来聊一下Datahub CLI。也就是Datahub的客户端。

我们在安装和使用Datahub 的过程中遇到了很多问题。

  • 如何安装Datahub ?
  • 为什么总是拉取镜像?
  • 如何启动Datahub ?
  • 这些Datahub 的Docker命令都是做什么的?

有很多同学虽然搜到了答案,但是并不知道是如何解决的,下一次遇到还是一头雾水,所以今天我就带大家学习一下Datahub 的安装维护神器——Datahub CLI。

Datahub 为了用户可以更方便的操作,提供了一个名为datahub的客户端,客户端的软件包由acryldata公司维护。

Datahub CLI与Datahub的大版本保持一致。

Datahub CLI为了让大家方便的使用Datahub,提供了大量的命令。比如调动docker拉取并启动Datahub相关容器,初始化操作,拉取元数据等等。

这也就是我们在最初安装Datahub的时候,为什么需要用Datahub CLI进行一系列操作,后面才使用Datahub的原因,而在使用过程中也经常需要使用CLI对Datahub进行维护。所以学习并熟练掌握Datahub CLI还是非常有必要的。

本文就带大家学习下,Datahub CLI中最重要的Docker命令。学会本文,就再也不用担心用Docker安装Datahub的问题了。

本文档所含资料位置:“大数据流动VIP资料库” 》》“Datahub专栏资料包”,也可以在后台回复“Datahub获取”。

一、Datahub CLI的安装

由于Datahub CLI基于Python开发,所以同样发布在了pypi软件包管理中。

其地址如下:https://pypi.org/project/acryl-datahub/

2023年12月12日的最新版本是0.12.1.0

我们也可以在这里看到历史版本情况。

并且可以直接下载下来,如果是离线环境,可以下载下来安装。

官网建议是在虚拟环境中安装,这样可以给其一个干净的环境。

python3 -m venv venv             # create the environment
source venv/bin/activate         # activate the environment

也可以直接进行安装,需要Python3.7以上的环境。

升级pip,随后安装acryl-datahub。

python3 -m pip install --upgrade pip wheel setuptools
python3 -m pip install --upgrade acryl-datahub

安装后可以验证一下

datahub version

有的时候会提示 "-bash: datahub: command not found",不要惊慌,换成这个命令就好。

python3 -m datahub version

正常会看到下面的显示。

下面我们逐一介绍下都有什么命令。

二、基本命令

上文中我们已经知道,基本的命令形式是 python -m datahub --配置 命令 参数

其中python或者python3需要能执行python3.7以上的命令。

部分版本也可以直接执行datahub --配置 命令 参数

那么我们就执行第一个命令help

python -m datahub --help

将会展示所有的配置和命令情况。

这里也说明了 --help 会展示帮助信息,并退出。

其他的配置项,有是否打印debug日志,展示版本信息等等。

命令这里只是一个整体的概述。比如我们经常用的docker命令可以操作本地的docker镜像。而想要知道命令更具体的信息,可以使用命令。

python -m datahub docker --help

这样就会显示docker的帮助信息了。下面我们就来逐一的过一遍。

三、Docker命令

docker有check,ingest-sample-data,nuke,quickstart四个命令。

配置项只有--help,也就是说上面四个命令都可以通过--help来查看更具体的信息。

quickstart命令

quickstart可以自动在本地启动datahub需要的相关镜像,首先会去github获取最新的docker-compose文件,随后根据文件拉取最新的docker镜像,启动datahub整个系统。

所以很多同学执行datahub安装时,会报错,其实就是获取compose文件报错了。

因为需要去访问raw.githubusercontent.com这个网址,没有成功。

ERROR    {datahub.entrypoints:201} - Command failed: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /datahub-project/datahub/master/docker/quickstart/docker-compose-without-neo4j-m1.quickstart.yml (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x107cba570>: Failed to establish a new connection: [Errno 61] Connection refused'))

同时,这里有一些设置,如--quickstart-compose-file,会使用本地的配置文件,这些设置会覆盖掉默认的配置去执行。

下面我们来结合实际应用来看看这些配置项。

其实通过quickstart的运行机制,同样解释了另一个现象,就是如果每次都执行quickstart,都会去拉取最新的镜像,网络不好的话会很坑。

这个问题有很多的解决方式。

建议大家搞一个稳定版本的配置文件,每次用本地文件启动即可,也可以改改版本号。这是我每次启动的命令,用我自己的配置文件。

python -m datahub docker quickstart --quickstart-compose-file ./dugufeng_yml/docker-compose-without-neo4j-dugufeng.quickstart.yml

也可以使用version命令来指定版本,可以通过这个参数来设置datahub的版本,如果没有设置,就会有配置文件的版本,可以使用'stable'来指定为最新的版本。

python -m datahub docker quickstart --version stable

--build-locally配置会尝试在启动前,先在本地构建容器。

python -m datahub docker quickstart --build-locally

--pull-images / --no-pull-images配置会尝试在启动前,是否去Docker Hub拉取镜像。

python -m datahub docker quickstart --no-pull-images

还有--dump-logs-on-failure用于打印失败日志,--graph-service-impl用于指定graph服务的实现。

下面这几个比较常用。如果本地已经有其他服务占用了端口会报端口占用错误Port 3306 was already in use。这时候我们可以灵活的指定一下其他的端口。

python -m datahub docker quickstart --mysql-port 3306 --zk-port 2181  --kafka-broker-port 9092 --schema-registry-port 8081 --elastic-port 9092

大家可以选择下面的命令来停止datahub。

python -m datahub docker quickstart --stop 

正常停止后的显示。

可以对当前数据进行备份。

python -m datahub docker quickstart --backup

默认会备份镜像到 ~/.datahub/quickstart/,也可以选择自己指定一个位置。

python -m datahub docker quickstart --backup --backup-file <path to backup file>

恢复配置,可以选择只恢复索引数据,还是核心数据。

python -m datahub docker quickstart --restore
python -m datahub docker quickstart --restore-indices
python -m datahub docker quickstart --restore --no-restore-indices

同样也可以指定恢复的sql文件。

python -m datahub docker quickstart --restore --restore-file /home/my_user/datahub_backups/quickstart_backup.sql

还有一个配置 --standalone_consumers用于将 MAE & MCE作为单独的docker容器。

--kafka-setup加载 Kafka setup,--arch TEXT 指定要使用的CPU架构参数,有x86, arm64,m1。

nuke命令

可以使用nuke命令,可以清除所有Datahub的状态。(相当于恢复出厂了,慎用)

 python -m datahub docker nuke

nuke只有两个选项,--help可以查询帮助。

--keep-data用户删除数据。

check命令

check命令用于检查docker容器状态是否健康。

这是正常的显示状态。

check命令处理--help查看帮助,没有其他的配置项。

ingest-sample-data命令

ingest-sample-data命令用于导入示例的元数据文件。

我们刚进入Datahub的时候会报一个错误,No Metadata Found。其实就是没有元数据。

我们这时候可以执行命令,来导入下示例数据看看。

python -m datahub docker ingest-sample-data

导入成功的显示。

再进入,数据已经有了。

除了--help,还有两个。

--parh可以指定一下本地的文件,将文件导入。

具体文件格式可以参考,MCE示例文件。

--token命令,用于datahub启动权限管理的时候METADATA_SERVICE_AUTH_ENABLED=true

需要指定token。

四、Docker基本操作

除了datahub的docker操作,有的时候也需要我们直接使用docker命令去排查一些问题。

下面是常用的命令。

使用以下命令列出当前正在运行的容器:

docker ps

这将显示所有正在运行的容器的列表,包括容器ID、名称、状态等信息。

找到要停止的容器的容器ID或名称。

使用以下命令停止容器,其中是容器的ID或名称:

docker stop

例如,如果要停止容器ID为dugufeng666的容器,可以运行以下命令:

docker stop dugufeng666

这将向容器发送停止信号,并使容器停止运行。

等待一段时间,直到容器完全停止。可以使用以下命令来验证容器的状态:

docker ps -a

这将显示所有容器的列表,包括已停止的容器。确保目标容器的状态显示为"Exited"。

停止所有容器

docker stop $(docker ps -a -q)

其他的命令我们下一期继续聊~

未完待续~

Datahub功能演示请参考大数据流动视频号

标签:docker,quickstart,--,必学,命令,DatahubCLI,Datahub,datahub
From: https://www.cnblogs.com/tree1123/p/17930759.html

相关文章

  • Excel-保护表格必学四招
    1、如果想要保护excel表格内容不被篡改,审阅--保护工作簿来设置密码但是一定设定密码,所有的表格都不能被修改2、如果有部分单元格需要使用,则可以选中单元格--设置单元格格式--保护--取消锁定3、如果有些计算公式不想被人知道,可以选中单元格---设置单元格格式--保护--勾选隐......
  • 【前端】必学知识ES6 1小时学会
    1.ES6概述2.let和const的认识3.let、const、var的区别4.模板字符串5.函数默认参数6.箭头函数【重点】编辑7.对象初始化简写以及案例分析 【重点】8.对象解构8.对象传播操作符9.对象传播操作符案例分析编辑 10.数组Map11.数组Reduce 12.NodeJS小结1.ES6概述ES6,全称ECMAScript6......
  • Android新手必学:Android的生命周期
    引言在Android开发中,了解和理解Android应用程序的生命周期是非常重要的。Android的生命周期指的是应用程序从创建到销毁的整个过程中,系统调用和管理组件的方法和回调。了解生命周期可以帮助我们更好地管理应用程序的状态和资源,提高应用程序的性能和用户体验。本文将介绍Android应用......
  • Android新手必学:Android中的动画介绍
    引言在现代移动应用开发中,动画是提升用户体验和吸引用户注意力的重要因素之一。Android平台提供了丰富的动画功能,使开发者能够创建出各种各样的动画效果。对于Android新手来说,了解和掌握Android中的动画是非常重要的一步。本文将介绍Android中的动画概念、类型和使用方法,帮助你快速......
  • Android新手必学:Fragment的用法
    引言Fragment是Android开发中一个重要的组件,它可以被认为是一个模块化的UI组件,用于构建灵活和可重用的界面。在Android应用程序中使用Fragment可以实现更好的UI组织、模块化开发和适配多屏幕等需求。本文将介绍Fragment的基本概念和用法,帮助Android新手开发者快速上手使用Fragment......
  • Android新手必学-ListView控件的使用
    简介在Android应用开发中,ListView是一种常用的UI控件,用于展示可滚动的列表视图。它可以用来展示大量数据,并且提供了灵活的布局和交互方式。本文将详细介绍ListView控件的使用方法,包括创建和配置ListView、自定义适配器以及处理列表项点击事件等。目录ListView介绍创建和配置ListVie......
  • Android新手必学-关于权限的申请
    引言在Android应用开发中,权限管理是一个至关重要的方面。Android系统为了保护用户的隐私和安全,对应用程序的访问权限进行了严格的控制。作为一名Android新手开发者,了解和正确处理权限是至关重要的。本文将介绍Android权限的概念、权限的分类以及如何在应用程序中正确申请和处理权限......
  • Android新手必学:关于多线程的知识
    引言在Android开发中,多线程编程是一项非常重要的技能。Android应用程序通常需要同时执行多个任务,如网络请求、文件读写、耗时计算等。如果在主线程中执行这些任务,会导致应用程序的界面卡顿,用户体验变差。因此,我们需要使用多线程来实现并发执行任务,提高应用程序的响应性能和用户体验......
  • 前端必学——实现电商图片放大镜效果(附代码)
    放大镜可以说是前端人必须学会的程序之一,今天的案例为大家展示一下怎么实现放大镜的效果!效果图展示  整个效果就是当鼠标放到展示图上的时候,会出现一个遮罩层以及弹出来一个框展示一个详情图,并且鼠标移动的时候详情图跟着移动,鼠标离开详情图消失。HTML代码:<html><head><style>#sm......
  • CSS必学:元素之间的空白与行内块的幽灵空白问题
    作者:WangMin格言:努力做好自己喜欢的每一件事CSDN原创文章博客地址......