Apache Dolphinscheduler:一个开源的分布式工作流调度系统

一个开源的分布式工作流调度系统

  • Apache Dolphinscheduler
    • 概述
    • 安装
  • 单机部署
    • 准备工作
    • 启动DolphinScheduler
    • 登录DolphinScheduler
    • 启停服务命令
    • 配置数据库
    • 初始化数据库
  • DolphinScheduler集群模式
    • 准备工作
    • 修改install_env.sh文件
    • 修改dolphinscheduler_env.sh文件
    • 初始化数据库
    • 部署
    • 访问
    • 启动、停止命令
  • 使用
    • 创建项目
    • 定义工作流
    • 启动工作流
    • 工作流实例
    • 任务
  • 定时任务
  • 参数
    • 本地/局部传参
    • 全局传参
    • 参数传递
    • 内置参数
  • 资源中心
    • 对接HDFS存储系统
    • 配置common.properties文件
    • 重启Dolphinscheduler
    • 创建资源
    • 使用资源
  • 告警
    • 钉钉告警
    • Email告警

Apache Dolphinscheduler

概述

Apache DolphinScheduler 是一个开源的分布式工作流调度系统,主要用于数据处理和任务调度。它支持多种数据源和任务类型,能够帮助用户在大数据环境中进行复杂的工作流管理。

主要特点:

可视化界面:提供友好的用户界面,方便用户创建、管理和监控工作流。灵活的调度:支持定时任务、依赖任务和动态任务调度。多种任务类型:支持 Shell、Python、SQL 等多种任务类型,可以与 Hadoop、Spark、Flink 等大数据框架集成。高可用性:通过集群部署实现高可用性,确保任务的可靠执行。扩展性:支持插件机制,用户可以根据需要扩展功能。

GitHub地址:https://github.com/apache/dolphinscheduler

官网:https://dolphinscheduler.apache.org/zh-cn

安装

下载:

wget https://archive.apache.org/dist/dolphinscheduler/3.1.5/apache-dolphinscheduler-3.1.5-bin.tar.gz

解压安装

tar -zxvf apache-dolphinscheduler-3.1.8-bin.tar.gzmv apache-dolphinscheduler-3.1.8-bin dolphinschedulercd dolphinscheduler

单机部署

准备工作

  1. 安装JDK1.8,并配置JAVA_HOME环境变量

  2. DolphinScheduler二进制包

  3. 安装数据库,如MySQL

  4. 对应数据库的JDBC Driver

启动DolphinScheduler

bin/dolphinscheduler-daemon.sh start standalone-server

登录DolphinScheduler

访问:http://node01:12345/dolphinscheduler/ui
在这里插入图片描述
默认的用户名和密码:admin/dolphinscheduler123

在这里插入图片描述

启停服务命令

启动Standalone Server 服务

bin/dolphinscheduler-daemon.sh start standalone-server

停止 Standalone Server 服务

bin/dolphinscheduler-daemon.sh stop standalone-server

查看 Standalone Server 状态

bin/dolphinscheduler-daemon.sh status standalone-server

配置数据库

Standalone server默认使用H2数据库作为其元数据存储数据,如果想将元数据库存储在MySQL或 PostgreSQL等其他数据库中,必须更改一些配置。

1.下载MySQL驱动JAR

将该JAR包移动到DolphinScheduler的每个模块的libs目录下,具体包括如下目录:

cp mysql-connector-java-8.0.33.jar alert-server/libs/cp mysql-connector-java-8.0.33.jar api-server/libs/cp mysql-connector-java-8.0.33.jar master-server/libs/cp mysql-connector-java-8.0.33.jar worker-server/libs/cp mysql-connector-java-8.0.33.jar standalone-server/libs/standalone-server/cp mysql-connector-java-8.0.33.jar tools/libs/

2.创建数据库

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

3.配置
修改./bin/env/dolphinscheduler_env.sh文件

export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://node01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=123456

初始化数据库

chmod +x tools/bin/upgrade-schema.shtools/bin/upgrade-schema.sh

出现异常:

Caused by: java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, jdbc:mysql://node01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false

解决方案:

修改./bin/env/dolphinscheduler_env.sh文件,注释postgresql相关内容

# Database related configuration, set database type, username and password
#export DATABASE=${DATABASE:-postgresql}
#export SPRING_PROFILES_ACTIVE=${DATABASE}
#export SPRING_DATASOURCE_URL
#export SPRING_DATASOURCE_USERNAME
#export SPRING_DATASOURCE_PASSWORD

接着初始化出现异常:

Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driverat org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.19.jar:5.3.19]at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:171) ~[spring-boot-autoconfigure-2.7.3.jar:2.7.3]

原因:

官网明确说了支持 8.0.16 及以上的版本,这里使用的是mysql-connector-java-8.0.16.jar版本,但是实际目前并不支持!

在这里插入图片描述

解决方案:

使用mysql-connector-java-8.0.16.jar版本

cp mysql-connector-java-8.0.16.jar  alert-server/libs/cp mysql-connector-java-8.0.16.jar  api-server/libs/cp mysql-connector-java-8.0.16.jar  master-server/libs/cp mysql-connector-java-8.0.16.jar  worker-server/libs/cp mysql-connector-java-8.0.16.jar  standalone-server/libs/standalone-server/cp mysql-connector-java-8.0.16.jar tools/libs/

再次执行初始化命令,将生成如下表:

在这里插入图片描述

DolphinScheduler集群模式

准备工作

  1. 安装JDK1.8,并配置JAVA_HOME环境变量

  2. DolphinScheduler二进制包

  3. 安装数据库,如MySQL

  4. 对应数据库的JDBC Driver

  5. 搭建注册中心ZooKeeper,并启动

注意:

DolphinScheduler本身不依赖 Hadoop、Hive、Spark,但如果运行的任务需要依赖他们,就
需要有对应的环境支持

修改install_env.sh文件

修改/bin/env/install_env.sh,它描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh 中找到此文件

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
#ips=${ips:-"ds1,ds2,ds3,ds4,ds5"}
ips="node01,node02,node03"# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
#sshPort=${sshPort:-"22"}
sshPort=22# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
#masters=${masters:-"ds1,ds2"}
masters="node01"# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
#workers=${workers:-"ds1:default,ds2:default,ds3:default,ds4:default,ds5:default"}
workers="node01:default,node02:default,node03:default"# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
#alertServer=${alertServer:-"ds3"}
alertServer="node02"# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
#apiServers=${apiServers:-"ds1"}
apiServers="node03"# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd). Do not add quotes to it if you using related path.
#installPath=${installPath:-"/tmp/dolphinscheduler"}
installPath="/usr/local/program/dolphinscheduler/"# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
#deployUser=${deployUser:-"dolphinscheduler"}
deployUser="root"# The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
zkRoot=${zkRoot:-"/dolphinscheduler"}

修改dolphinscheduler_env.sh文件

这里注意操作:

1.注释postgresql配置2.指定JDK路径3.配置Zookeeper信息4.配置MySQL数据
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## JAVA_HOME, will use it to start DolphinScheduler server
#export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk}
export JAVA_HOME="/usr/local/program/jdk8"# Database related configuration, set database type, username and password
#export DATABASE=${DATABASE:-postgresql}
#export SPRING_PROFILES_ACTIVE=${DATABASE}
#export SPRING_DATASOURCE_URL
#export SPRING_DATASOURCE_USERNAME
#export SPRING_DATASOURCE_PASSWORD# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
#export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-localhost:2181}
export REGISTRY_ZOOKEEPER_CONNECT_STRING="node01:2181,node02:2181,node03:2181"# Tasks related configurations, need to change the configuration if you use the related tasks.
export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}
export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/soft/seatunnel}
export CHUNJUN_HOME=${CHUNJUN_HOME:-/opt/soft/chunjun}export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATHexport DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://node01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=123456

初始化数据库

创建数据库

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

将该MySQL驱动JAR包移动到DolphinScheduler的每个模块的libs目录下,具体包括如下目录:

cp mysql-connector-java-8.0.16.jar  alert-server/libs/cp mysql-connector-java-8.0.16.jar  api-server/libs/cp mysql-connector-java-8.0.16.jar  master-server/libs/cp mysql-connector-java-8.0.16.jar  worker-server/libs/cp mysql-connector-java-8.0.16.jar  standalone-server/libs/standalone-server/cp mysql-connector-java-8.0.16.jar tools/libs/

执行初始化命令

chmod +x tools/bin/upgrade-schema.shtools/bin/upgrade-schema.sh

部署

执行如下命令进行部署,它会自动将相关服务部署到配置的节点机器上,部署后的运行日志将存放在 logs 文件夹内

./bin/install.sh

访问

部署完成后,会自动启动相关服务,然后可以访问Web界面进行相关操作。

注意:

由于配置apiServers="node03" ,因此,应该访问http://node03:12345/dolphinscheduler/ui

默认的用户名和密码:admin/dolphinscheduler123

在这里插入图片描述

启动、停止命令

# 一键开启集群所有服务
./bin/start-all.sh# 一键停止集群所有服务
./bin/stop-all.sh# 启停 Master
./bin/dolphinscheduler-daemon.sh stop master-server
./bin/dolphinscheduler-daemon.sh start master-server# 启停 Worker
./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server# 启停 Api
./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server# 启停 Alert
./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server

使用

创建项目

在项目管理项,创建一个项目
在这里插入图片描述
进入该demo项目

在这里插入图片描述

定义工作流

定义一个工作流
在这里插入图片描述
定义Shell工作流类型
在这里插入图片描述
执行脚本:
在这里插入图片描述
创建3个Shell脚本
在这里插入图片描述
将3个Shell脚本连接起来,他们会依次执行
在这里插入图片描述

启动工作流

工作流定义保存后,点击上线
在这里插入图片描述
然后点击运行
在这里插入图片描述
这个时候可能提示:没有合适的租户,请选择可用的租户

解决方案:创建用户,创建租户,为用户分配租户

1.创建租户
在这里插入图片描述
2.为当前登录用户分配一个租户
在这里插入图片描述

工作流实例

当工作流启动后,会产生一个工作流实例
在这里插入图片描述
点击工作流实例名称进入可以查看详细信息
在这里插入图片描述

任务

可以在任务项的任务定义中查看任务

在这里插入图片描述

也可以在任务项的任务实例查看任务执行情况
在这里插入图片描述

定时任务

修改定义的工作流,添加定时参数
在这里插入图片描述
定时参数添加后,需要进入定时管理界面上线
在这里插入图片描述
在这里插入图片描述
查看定时任务执行情况
在这里插入图片描述

参数

本地/局部传参

在任务定义页面配置的参数,默认作用域仅限该任务,如果配置了参数传递则可将该参数作用到下游任务中。

在这里插入图片描述

全局传参

全局参数是指针对整个工作流的所有任务节点都有效的参数,在工作流定义页面配置。

有2种方式设置:保存工作流定义时、启动工作流定义时
在这里插入图片描述

参数传递

DolphinScheduler 允许在任务间进行参数传递,目前传递方向仅支持上游单向传递给下游。

node01节点定义输出参数
在这里插入图片描述
node02节点接收参数
在这里插入图片描述

内置参数

1.基础内置参数

变量名声明方式含义
system.biz.date${system.biz.date}日常调度实例定时的定时时间前一天,格式为 yyyyMMdd
system.biz.curdate${system.biz.curdate}日常调度实例定时的定时时间,格式为 yyyyMMdd
system.datetime${system.datetime}日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss

2.衍生内置参数

支持代码中自定义变量名,声明方式:${变量名}

使用:变量命 IN/OUT $[yyyy-MM-dd] $[]中的日期可以任意分解组合

在这里插入图片描述

在这里插入图片描述

资源中心

资源中心通常用于上传文件、UDF 函数,以及任务组管理等操作。

资源中心可以对接本地文件系统、分布式文件存储系统或者MinIO集群,也可以对接远端的对象存储,如阿里云OSS等。

对接HDFS存储系统

当需要使用资源中心进行相关文件的创建或者上传操作时,所有的文件和资源都会被存储在分布式文件系统HDFS

配置common.properties文件

需要对api-server/conf/common.propertiesworker-server/conf/common.properties配置

编辑修改:vim api-server/conf/common.properties

# resource storage type: HDFS, S3, OSS, NONE
#resource.storage.type=NONE
resource.storage.type=HDFS# resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
#resource.storage.upload.base.path=/dolphinscheduler
resource.storage.upload.base.path=hdfs://node01:9000/dolphinscheduler# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
#resource.hdfs.root.user=hdfs
resource.hdfs.root.user=root# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
#resource.hdfs.fs.defaultFS=hdfs://mycluster:8020
resource.hdfs.fs.defaultFS=hdfs://node01:9000

修改完成后复制覆盖

cp api-server/conf/common.properties worker-server/conf/

集群环境还需要将这两项配置进行分发

sync.sh api-server/conf/common.propertiessync.sh worker-server/conf/common.properties

重启Dolphinscheduler

# 一键开启集群所有服务
./bin/start-all.sh# 一键停止集群所有服务
./bin/stop-all.sh

创建资源

在资源中心创建sh目录

在这里插入图片描述
进入sh文件夹,新建test.sh脚本
在这里插入图片描述

使用资源

在定义工作流程时,使用资源
在这里插入图片描述

告警

钉钉告警

在安全中心创建告警实例
在这里插入图片描述
钉钉机器人配置如下:
在这里插入图片描述
创建钉钉告警实例
在这里插入图片描述
参数配置

Webhook:https://oapi.dingtalk.com/robot/send?access_token=XXXXXXKeyword:安全设置的自定义关键词Secret:安全设置的加签消息类型:支持 text 和 markdown 两种类型

创建告警组,将钉钉告警加入其中
在这里插入图片描述
启动任务,选择通知策略与告警组
在这里插入图片描述
在这里插入图片描述
查看钉钉:
在这里插入图片描述

Email告警

首先需要开启邮箱的POP3/SMTP/IMAP服务
在这里插入图片描述

新增一个授权码
在这里插入图片描述
使用提供的邮件服务器地址
在这里插入图片描述
邮件告警配置如下:

注意:请求认证下方:用户是发件邮箱,密码是授权码

在这里插入图片描述

启动任务,执行测试,邮箱收件内容如下:
在这里插入图片描述

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

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

相关文章

【Python】数据可视化之分布图

分布图主要用来展示某些现象或数据在地理空间、时间或其他维度上的分布情况。它可以清晰地反映出数据的空间位置、数量、密度等特征&#xff0c;帮助人们更好地理解数据的内在规律和相互关系。 目录 单变量分布 变量关系组图 双变量关系 核密度估计 山脊分布图 单变量分布…

谷歌网站收录查询,怎么查看网站在谷歌的收录情况

在进行谷歌网站收录查询时&#xff0c;我们需采取一种既专业又系统的方法&#xff0c;以确保能够准确评估网站在谷歌搜索引擎中的可见性和收录状态。这一过程不仅关乎技术细节&#xff0c;还涉及到对搜索引擎优化&#xff08;SEO&#xff09;策略的理解与应用。以下是一个基于专…

MobaXterm基本使用 -- 服务器状态、批量操作、显示/切换中文字体、修复zsh按键失灵

监控服务器资源 参考网址&#xff1a;https://www.cnblogs.com/144823836yj/p/12126314.html 显示效果 MobaXterm提供有这项功能&#xff0c;在会话窗口底部&#xff0c;显示服务器资源使用情况 如内存、CPU、网速、磁盘使用等&#xff1a; &#xff08;完整窗口&#xff0…

QT| “无法粘贴窗口部件”错误以及customplot

“无法粘贴窗口部件”错误以及customplot “无法粘贴窗口部件”错误customplot下载添加到项目中使用QCustomPlot常用的代码 “无法粘贴窗口部件”错误 情景&#xff1a;使用QT设计界面&#xff0c;很多部分比较类似&#xff0c;可以复制另一个界面的ui&#xff0c;但是粘粘的时…

力扣 中等 1901.寻找峰值II

文章目录 题目介绍题解 题目介绍 题解 需要明白一个事实&#xff1a;从任意一个点出发&#xff0c;可以经过一个递增路径&#xff0c;找到一个极大值点。 求出一行的最大值&#xff0c;如果这行最大值比上面的要小&#xff0c;那峰值&#xff08;之一&#xff09;就会在上面 …

React-Native 中使用 react-native-image-crop-picker 在华为手机上不能正常使用拍照功能

背景: React-Native 0.66 中使用 react-native-image-crop-picker 在安卓 华为手机上不能正常使用拍照功能, 其他品牌正常 代码如下: import ImagePicker from react-native-image-crop-picker;ImagePicker.openCamera(photoOptions).then(image > {callback(image);}) …

如何释放并重新获得ip地址呢?

如何释放并重新获得ip地址呢&#xff1f; 释放并重新获得一个IP地址的具体步骤如下&#xff1a; 1、要想从DHCP服务器重新获取ip&#xff0c;电脑必须设置成"自动获取ip",设置如下&#xff0c;在电脑桌面"网络"-属性-更改适配器设置为自动获取ip。 2、然…

在CentOS 6上安装Squid代理的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Status: 已弃用 本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器&#xff0c;我们强烈建议升级或迁移到受支持…

【威领,德新,中达安】9.23复盘

威领这次的底部是4个月 所以这种跳空高开&#xff0c;远离5日均线的&#xff0c;如果不是近期的利好板块&#xff0c;那么第二天可能要回调5日均线。所以按照我的收益准则&#xff0c;吃一个板可以出一半了。 到顶部十字剩下一半也出掉了。 如果做长期&#xff0c;我依旧认为威…

CSS03-CSS的引入方式

一、CSS的三种样式表 1-1、内部样式表 示例&#xff1a; 1-2、行内样式表 1-3、外部样式表 1-4、小结

在Windows系统上安装的 Arrow C++ 库

在Windows系统上安装的 Arrow C 库 正文第一步第二步第三步第四步注: 检查是否安装成功 吐槽 正文 第一步 git clone gitgithub.com:apache/arrow.git第二步 打开powershell (好像cmd也可以,不过我试了powershell中不报错,cmd中报错,不是很清楚为什么) 打开arrow的目录 cd …

统信服务器操作系统【qcow2 镜像空间扩容】方案

使用 qcow2 镜像安装系统,当默认安装系统存储空间不够用时,进行自定义扩容 文章目录 准备环境扩容步骤一、检查环境信息1.查看镜像信息2.查看镜像分区信息3.确认需要扩容的分区名二、扩容1.备份镜像2.创建新的镜像文件,并指定空间3.将系统扩容到新的镜像三、扩容 lvm 分区四…

C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)

文章目录 运行效果功能描述代码mian.cppincludeMouseKeyControl.hTipsManagement.h srcMouseControl.cppTipsManagement.cpp 运行效果 功能描述 线程一&#xff1a;每隔n随机秒&#xff0c;动一下鼠标滚轮&#xff0c;防止屏幕息屏。 线程二&#xff1a;运行时加载txt文件中的…

【RocketMQ入门】

RocketMQ入门 RocketMQ是阿里巴巴开源的分布式消息中间件&#xff0c;现在是Apache的一个顶级项目。在阿里内部使用非常 广泛&#xff0c;已经经过了"双11"这种万亿级的消息流转。 RocketMQ环境搭建 接下来我们先在linux平台下安装一个RocketMQ的服务 环境准备 …

C++ Mean Shift算法

原理 每个样本点最终会移动到核概率密度的峰值&#xff0c;移动到相同峰值的样本点属于同一种颜色 关键代码 template <typename PointType> inline typename MeanShift<PointType>::PointsVector MeanShift<PointType>::meanshift(const PointsVector &am…

解决ArmDS Fast Models 中部分内核无法上电的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型&#xff0c;只有Core 0是上电状态&#xff0c;而Core 1处于掉电状态&#xff0c;如图2-1所示&…

Ubuntu 24.04.1 LTS 安装 node 16.20.2环境

目录 step1&#xff1a;确认版本 step2&#xff1a;选择方式 step3&#xff1a;二进制文件安装 step1&#xff1a;确认版本 不同的版本情况可能有稍许不同&#xff0c;尽可能环境安装前版本保持一致&#xff1b; lsb_release -a 或者 cat /etc/os-release 可以查看版本信…

jmeter本身常用性能优化方法

第一种设置&#xff1a; 修改Jmeter.bat文件&#xff0c;调整JVM参数(修改jmeter本身的最小最大堆内存)&#xff0c;默认都是1个G set HEAP-Xms5g -Xmx5g -XX:MaxMetaspaceSize256m我的本机内存是8G&#xff0c;那最大可以设置870%(本机内存的70%)5.6g 这里我设置的5g 如果…

Golang | Leetcode Golang题解之第题432题全O(1)的数据结构

题目&#xff1a; 题解&#xff1a; type node struct {keys map[string]struct{}count int }type AllOne struct {*list.Listnodes map[string]*list.Element }func Constructor() AllOne {return AllOne{list.New(), map[string]*list.Element{}} }func (l *AllOne) Inc(ke…

链表分割-----------lg

现有一链表的头指针 ListNode* pHead&#xff0c;给一定值x&#xff0c;编写一段代码将所有小于x的结点排在其余结点之前&#xff0c;且不能改变原来的数据顺序&#xff0c;返回重新排列后的链表的头指针。 我们可以假设x为36&#xff0c;则小于36都排在前边&#xff0c;>3…