海豚调度器(DolphinScheduler)集群搭建详细笔记

news2024/11/15 12:17:02

海豚调度器集群搭建笔记

  • 1.DolphinScheduler Cluster部署
          • 1.1 集群部署规划
          • 1.2 集群准备工作
          • 1.3 初始化数据库
          • 1.4 修改安装环境配置
          • 1.5 安装DolphinScheduler
          • 1.6 启停命令
          • 1.7 登录 DolphinScheduler UI

1.DolphinScheduler Cluster部署

分布式去中心化易扩展的工作流任务调度系统,用于大数据项目任务调度。
在这里插入图片描述

1.1 集群部署规划

集群模式下,可配置多个Master及多个Worker。通常可配置2~3个Master,若干个Worker。由于集群资源有限,此处配置一个Master,三个Worker,集群规划如下。

主机名ip服务备注
ds02172.18.8.42master,worker,api
ds03172.18.8.43master,worker,alert该服务器也可以安装master
ds04172.18.8.44worker
1.2 集群准备工作
  • 操作系统:linux centos 7.7

  • 部署版本:apache-dolphinscheduler-3.1.4-bin
    这个在官网下载二进制包即可:https://dolphinscheduler.apache.org/zh-cn/download/3.1.4
    在这里插入图片描述

  • JDK:配置Java环境,将JAVA_HOME配置于PATH中,推荐版本使用jdk8+(下载地址)

  • 数据库:本文使用的是MySQL 8.0.26版本,也可以使用5.7版本及以上,或者是使用PostgreSQL数据库(8.2.15+),两者任选其一即可,如 MySQL 则需要 JDBC Driver 8.0.16+下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • 注册中心:zookeeper(3.6.3),下载地址
    这个版本一定要注意:
    官网给的zk 3.4.6+,但是不能使用3.4.x,3.5.x
    如果版本不匹配,启动会如下报错:

================================================================================
     _       _       _     _       ____       _              _       _
  __| | ___ | |_ __ | |__ (_)_ __ / ___|  ___| |__   ___  __| |_   _| | ___ _ __
 / _` |/ _ \| | '_ \| '_ \| | '_ \\___ \ / __| '_ \ / _ \/ _` | | | | |/ _ \ '__|
| (_| | (_) | | |_) | | | | | | | |___) | (__| | | |  __/ (_| | |_| | |  __/ |
 \__,_|\___/|_| .__/|_| |_|_|_| |_|____/ \___|_| |_|\___|\__,_|\__,_|_|\___|_|
              |_|
================================================================================

::  DolphinScheduler api server ::   (v3.1.4)
[INFO] 2023-08-08 07:37:51.852 +0000 org.apache.curator.framework.state.ConnectionStateManager:[252] - State change: CONNECTED
[WARN] 2023-08-08 07:37:51.904 +0000 org.apache.zookeeper.ClientCnxn:[1292] - Session 0x20202809e56007f for server 172.18.8.46/172.18.8.46:2182, Closing socket connection. Attempting reconnect except it i                           s a SessionExpiredException.
org.apache.zookeeper.ClientCnxn$EndOfStreamException: Unable to read additional data from server sessionid 0x20202809e56007f, likely server has closed socket
        at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:77)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1282)
[ERROR] 2023-08-08 07:37:51.905 +0000 org.apache.curator.framework.imps.CuratorFrameworkImpl:[733] - Ensure path threw exception
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /dolphinscheduler
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:106)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
        at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1347)
        at org.apache.curator.utils.ZKPaths.mkdirs(ZKPaths.java:351)
        at org.apache.curator.framework.imps.NamespaceImpl$1.call(NamespaceImpl.java:90)
        at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:93)
        at org.apache.curator.framework.imps.NamespaceImpl.fixForNamespace(NamespaceImpl.java:83)
        at org.apache.curator.framework.imps.CuratorFrameworkImpl.fixForNamespace(CuratorFrameworkImpl.java:758)
        at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:584)
        at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:48)
        at org.apache.dolphinscheduler.plugin.registry.zookeeper.ZookeeperRegistry.put(ZookeeperRegistry.java:184)
        at org.apache.dolphinscheduler.service.registry.RegistryClient.initNodes(RegistryClient.java:247)
        at org.apache.dolphinscheduler.service.registry.RegistryClient.afterConstruct(RegistryClient.java:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)

对应版本可参考:

DS版本zk版本
dolphinscheduler-3.1.4zookeeper-3.6.3+
dolphinscheduler-3.1.7zookeeper-3.8.1+
  • 其他大数据相关组件:Hadoop 3.3.1 、Hive 3.1.2 、DataX 3.0、Spark 3.1.2等

  • 创建部署用户,并为该用户配置免登录,以创建dolphinscheduler用户为例(准备执行DS安装程序的服务器上创建即可)

    # 创建用户需使用root登录
    useradd dolphinscheduler
    # 添加密码
    echo "dolphinscheduler" | passwd --stdin ****
    # 配置sudo(系统管理命令)免密
    sed -i '$aswscroot  ALL=(ALL)  NOPASSWD: NOPASSWD: ALL' /etc/sudoers
    sed -i 's/Defaults    requirett/#Defaults    requirett/g' /etc/sudoers
    

    注意:

    • 因为任务执行服务是以 sudo -u {linux-user} 切换不同 linux 用户的方式来实现多租户运行作业,所以部署用户需要有 sudo 权限,而且是免密的。初学习者不理解的话,完全可以暂时忽略这一点
    • 如果发现 /etc/sudoers 文件中有 “Defaults requirett” 这行,也请注释掉
  • 配置机器SSH免密登陆

    由于安装的时候需要向不同机器发送资源,所以要求各台机器间能实现SSH免密登陆。配置免密登陆的步骤如下

    su dolphinscheduler
    
    ssh-copy-id ds02
    ssh-copy-id ds03
    ssh-copy-id ds04
    

    注意:

    配置完成后,可以通过运行命令 ssh localhost 判断是否成功,如果不需要输入密码就能ssh登陆则证明成功

  • 启动zookeeper集群(所有安装Zookeper的服务器均执行)

    # 启动 zookeeper
    ./bin/zkServer.sh start
    
1.3 初始化数据库

DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL。下面分别介绍如何使用 MySQL 初始化数据库。

  • 创建数据库、用户和授权

    -- 进入MySQL命令行
    [root@qianfeng01 soft]# mysql -uroot -p123456
    -- 创建dolphinscheduler的数据库用户和密码,并限定登陆范围
    mysql> CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'QF-Dolphinscheduler123!';
    -- 创建dolphinscheduler的元数据库,并指定编码
    mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    -- 为dolphinscheduler数据库授权
    mysql> grant all privileges on dolphinscheduler.* to 'dolphinscheduler'@'%' ;
    -- 刷新权限
    mysql> flush privileges;
    
  • 解压安装包

    上传DolphinScheduler安装包到ds02节点的/opt/software目录,并解压安装包到该目录。

    #上传安装包到服务器
    $ scp ~/Desktop/apache-dolphinscheduler-3.1.4-bin.tar.gz ds02:/opt/soft
    #解压
    [root@ds02 soft]# tar -zxvf ./apache-dolphinscheduler-3.1.4-bin.tar.gz
    # 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
    [root@ds02 soft]# chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.1.4-bin
    
  • 添加MySQL驱动

    需要手动下载 对应的mysql-connector-java驱动(8.0.16)并移动到 DolphinScheduler 的每个模块的 libs 目录下,其中包括 api-server/libsalert-server/libsmaster-server/libsworker-server/libstools/libs

    #复制mysql的驱动到对应libs目录中
    [root@ds02 soft]# cp ./mysql-connector-java-8.0.16.jar ./apache-dolphinscheduler-3.1.4-bin/alert-server/libs/
    [root@ds02 soft]# cp ./mysql-connector-java-8.0.16.jar ./apache-dolphinscheduler-3.1.4-bin/master-server/libs/
    [root@ds02 soft]# cp ./mysql-connector-java-8.0.16.jar ./apache-dolphinscheduler-3.1.4-bin/worker-server/libs/
    [root@ds02 soft]# cp ./mysql-connector-java-8.0.16.jar ./apache-dolphinscheduler-3.1.4-bin/api-server/libs/
    [root@ds02 soft]# cp ./mysql-connector-java-8.0.16.jar ./apache-dolphinscheduler-3.1.4-bin/tools/libs/
    
  • 修改dolphinscheduler_env.sh配置文件

    文件 ./bin/env/dolphinscheduler_env.sh 描述了下列配置:

    • DolphinScheduler 的数据库配置,将username和password改成你在上一步中设置的用户名和密码
    • 一些任务类型外部依赖路径或库文件,如 JAVA_HOMESPARK_HOME都是在这里定义的
    • 注册中心zookeeper
    • 服务端相关配置,比如缓存,时区设置等

    如果您不使用某些任务类型,您可以忽略任务外部依赖项,但您必须根据您的环境更改 JAVA_HOME、注册中心和数据库相关配置。

    #修改内容如下
    [root@ds02 soft]# cd ./apache-dolphinscheduler-3.1.4-bin
    [root@ds02 apache-dolphinscheduler-3.1.4-bin]# vim ./bin/env/dolphinscheduler_env.sh
    
    # JAVA_HOME, will use it to start DolphinScheduler server
    # 改为自己的JDK路径
    export JAVA_HOME=${JAVA_HOME:-/usr/local/jdk1.8.0_321}
    
    # Database related configuration, set database type, username and password
    # MySQL数据库连接信息
    export DATABASE=${DATABASE:-mysql}
    export SPRING_PROFILES_ACTIVE=${DATABASE}
    export SPRING_DATASOURCE_URL="jdbc:mysql://172.18.8.42:33017/ds_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
    export SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-"ds_root"}
    export SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-"ds123456"}
    
    # 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
    # zookeeper集群信息
    export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
    export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-ds02:2181,ds03:2181,ds04:2181}
    
    # Tasks related configurations, need to change the configuration if you use the related tasks.
    # 对已有可以正常配置,没有的保持默认即可
    export HADOOP_HOME=${HADOOP_HOME:-/usr/local/hadoop-3.3.1}
    export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/usr/local/hadoop-3.3.1/etc/hadoop}
    export SPARK_HOME1=${SPARK_HOME1:-/usr/local/spark-3.1.2}
    export SPARK_HOME2=${SPARK_HOME2:-/usr/local/spark-3.1.2}
    export PYTHON_HOME=${PYTHON_HOME:-/usr/bin/python}
    export HIVE_HOME=${HIVE_HOME:-/usr/local/hive-3.1.2}
    export FLINK_HOME=${FLINK_HOME:-/usr/local/flink-1.14.3}
    export DATAX_HOME=${DATAX_HOME:-/usr/local/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:$PATH
    
  • 初始化元数据

    # 切换到apache-dolphinscheduler-3.1.4-bin目录下,执行命令
    [root@ds02apache-dolphinscheduler-3.1.4-bin]# sh ./tools/bin/upgrade-schema.sh
    
1.4 修改安装环境配置

完成基础环境和元数据库初始化的准备后,需要根据你的机器环境修改配置文件。配置文件可以在目录 bin/env 中找到,他们分别是 install_env.shdolphinscheduler_env.sh

  • 修改 install_env.sh 文件

    文件 install_env.sh 描述了哪些机器将被安装 DolphinScheduler 以及每台机器对应安装哪些服务。您可以在路径 bin/env/install_env.sh 中找到此文件,可通过以下方式更改env变量,export <ENV_NAME>=,配置详情如下。

    #修改配置如下
    [root@ds02 apache-dolphinscheduler-3.1.4-bin]# vim ./bin/env/install_env.sh
    
    # ---------------------------------------------------------
    # INSTALL MACHINE
    # ---------------------------------------------------------
    # Due to the master, worker, and API server being deployed on a single node, the IP of the server is the machine IP or localhost
    ips="ds02 ,ds03,ds04"
    sshPort="22"
    # masters可以是一台,也可以是多台,根据自己机器配置决定
    masters="ds02,ds03"
    workers="ds02:default,ds03:default,ds04:default"
    alertServer="ds03"
    apiServers="ds02"
    
    # DolphinScheduler installation path, it will auto-create if not exists
    # 最终的安装路径
    installPath=${installPath:-"/user/local/ds-3.1.7-install"}
    
    # Deploy user, use the user you create in section **Configure machine SSH password-free login**
    deployUser="dolphinscheduler"
    
    # The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
    zkRoot=${zkRoot:-"/dolphinscheduler"}
    
1.5 安装DolphinScheduler

使用上面创建的部署用户运行以下命令完成部署,部署后的运行日志将存放在 安装目录下的logs 文件夹内

[root@qianfeng01 apache-dolphinscheduler-3.1.4-bin]# sh ./bin/install.sh

注意:

第一次部署的话,可能出现 5 次sh: bin/dolphinscheduler-daemon.sh: No such file or directory相关信息,为非重要信息直接忽略即可。启动情况如图,并使用jps命令查看是否有这些服务的进程
在这里插入图片描述

1.6 启停命令

第一次安装后会自动启动所有服务的,如有服务问题或者后续需要启停,命令如下。下面的操作脚本都在dolphinScheduler安装目录bin下。

# 一键停止集群所有服务
sh /usr/local/dolphinscheduler-3.1.4/bin/stop-all.sh
# 一键开启集群所有服务
sh /usr/local/dolphinscheduler-3.1.4/bin/start-all.sh
# 启停 Master
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop master-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start master-server
# 启停 Worker
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start worker-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop worker-server
# 启停 Api
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start api-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop api-server
# 启停 Logger
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start logger-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop logger-server
# 启停 Alert
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start alert-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop alert-server
# 启停 Python Gateway
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh start python-gateway-server
sh /usr/local/dolphinscheduler-3.1.4/bin/dolphinscheduler-daemon.sh stop python-gateway-server

注意:

  • 每个服务在路径 <service>/conf/dolphinscheduler_env.sh 中都有 dolphinscheduler_env.sh 文件,这是可以为微 服务需求提供便利。意味着您可以基于不同的环境变量来启动各个服务,只需要在对应服务中配置 <service>/conf/dolphinscheduler_env.sh 然后通过 <service>/bin/start.sh 命令启动即可。但是如果您使用命令 /bin/dolphinscheduler-daemon.sh start <service> 启动服务器,它将会用文件 bin/env/dolphinscheduler_env.sh 覆盖 <service>/conf/dolphinscheduler_env.sh 然后启动服务,目的是为了减少用户修改配置的成本.

  • 服务用途请具体参见《系统架构设计》小节。Python gateway service 默认与 api-server 一起启动,如果您不想启动 Python gateway service 请通过更改 api-server 配置文件 api-server/conf/application.yaml 中的 python-gateway.enabled : false 来禁用它。

1.7 登录 DolphinScheduler UI

浏览器访问地址 http://ds02:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123
在这里插入图片描述
登录如下图所示:
在这里插入图片描述

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

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

相关文章

【最强八股文 -- 计算机网络】TCP 四次挥手的过程及原因

第一次挥手&#xff1a;FIN 报文第二次挥手&#xff1a;ACK 报文第三次挥手&#xff1a;FIN 报文第四次挥手&#xff1a;ACK 报文 为什么需要四次挥手&#xff1f; 为什么需要 TIME_WAIT 状态&#xff1f; TIME_WAIT 的时间为什么是 2MSL&#xff1f;

springboot服务如何执行sql脚本文件

当sql脚本文件包含不同数据库实例sql时&#xff0c;遍历读取sql文件再插入时&#xff0c;由于是不同的数据库实例这种方式就不行了&#xff0c;这时就需要程序直接执行sql脚本。 springboot执行sql脚本 /*** 执行sql脚本* throws SQLException*/ private void executeSqlScri…

go-zero框架入门

go-zero框架环境的安装 goctl 若想用go-zero框架&#xff0c;还需要一些前置条件&#xff1a; 安装goctl go install github.com/zeromicro/go-zero/tools/goctllatest可以使用 goctl 命令查看是否安装成功 成功后安装protoc goctl env check --install --verbose --force…

重生奇迹MU 三代翅膀行情

在重生奇迹MU游戏中&#xff0c;达到400级以上的玩家都知道&#xff0c;重生奇迹大陆拍卖行里最值钱的物品是翅膀。翅膀可以分为一代、二代和三代翅膀&#xff0c;而其中价格最高的则是三代翅膀。有时候&#xff0c;三代翅膀的售价非常之高&#xff0c;甚至有市无价。这是因为三…

[论文笔记] CT数据配比方法论——1、Motivation

我正在写这方面的论文,感兴趣的可以和我一起讨论!!!!!! Motivation 1、探测原有模型的配比: 配比 与 ppl, loss, bpw, benchmark等指标 之间的关系。 2、效果稳定的配比:配比 与 模型效果 之间的规律。 Experiments 1、主语言(什么语言作为主语言,几种主语言?…

PyTorch 深度学习实践-逻辑斯蒂回归

视频指路 参考博客笔记 参考笔记二 用来分类的模型 说明&#xff1a;1、 逻辑斯蒂回归和线性模型的明显区别是在线性模型的后面&#xff0c;添加了激活函数(非线性变换) ​ 2、分布的差异&#xff1a;KL散度&#xff0c;cross-entropy交叉熵 现在损失函数衡量不是距离而是分布…

Jmeter性能测试(九)

一、Jmeter性能测试需要特别注意的地方 1、参数化 2、请求参数 3、BeanShell 预处理程序更新jmeter请求参数 4、接口中不可重复的随机数处理 5、线程组设置 6、总结 二、参数化 1、参数化配置,多个参数用英文逗号隔开 2、wallet参数化文件,不要写表头,多个参数用英文逗号…

【YOLOv8改进[Conv]】KAN系列 |使用KACNConv改进C2f + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中使用KACNConv改进C2f 的实践,助力YOLOv8目标检测效果,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。训练速度会慢一些,要有心理准备哈! 改进前和改进后的参数对比: 目录

《基于 Kafka + Quartz 实现时限质控方案》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

玳数科技集成 Flink CDC 3.0 的实践

摘要&#xff1a;本文投稿自玳数科技工程师杨槐老师&#xff0c;介绍了 Flink CDC 3.0 与 ChunJun 框架在玳数科技的集成实践。主要分为以下六个内容&#xff1a; 背景技术选型架构设计挑战与解决方案上线效果未来规划 1. 背景 玳数科技对内外部用户提供了一站式的数据开发治理…

【BUG】已解决:error: subprocess-exited-with-error

已解决&#xff1a;error: subprocess-exited-with-error 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主…

【Vue】深入解析 Vue 生命周期:从创建到销毁的完整流程

文章目录 一、Vue 生命周期概述二、创建阶段1. beforeCreate 钩子2. created 钩子 三、挂载阶段1. beforeMount 钩子2. mounted 钩子 四、更新阶段1. beforeUpdate 钩子2. updated 钩子 五、销毁阶段1. beforeDestroy 钩子2. destroyed 钩子 六、Vue 3 的生命周期钩子变化七、生…

PHP pwn 学习 (2)

文章目录 A. 逆向分析A.1 基本数据获取A.2 函数逆向zif_addHackerzif_removeHackerzif_displayHackerzif_editHacker A.3 PHP 内存分配 A.4 漏洞挖掘B. 漏洞利用B.1 PHP调试B.2 exp 上一篇blog中&#xff0c;我们学习了一些PHP extension for C的基本内容&#xff0c;下面结合一…

软件著作权申请教程(超详细)(2024新版)软著申请

目录 一、注册账号与实名登记 二、材料准备 三、申请步骤 1.办理身份 2.软件申请信息 3.软件开发信息 4.软件功能与特点 5.填报完成 一、注册账号与实名登记 首先我们需要在官网里面注册一个账号&#xff0c;并且完成实名认证&#xff0c;一般是注册【个人】的身份。中…

STM32智能城市交通管理系统教程

目录 引言环境准备智能城市交通管理系统基础代码实现&#xff1a;实现智能城市交通管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;城市交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能城…

HTTP协议、Wireshark抓包工具、json解析、天气爬虫

HTTP超文本传输协议 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;&#xff1a; 全称超文本传输协议&#xff0c;是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP 协议的重要特点&#xff1a; 一发一收…

vscode+wsl2+anaconda环境的配置与使用

目录 下载anaconda Anaconda使用参考 vscodeubuntuanaconda 先用vscode连接本地ubuntu。 如果没有安装wsl2与ubuntu&#xff0c;可点击下面的链接。 问题&#xff1a;wsl install 无法解析服务器 成功记录&#xff1a; 在vscode终端用ubuntu安装anaconda。 创建pytho…

mybatis 主键的特殊要求

这是一条插入语句: 其目的就是为了将这个role对象插入到数据库, 然后他会根据getGeneratedKeys来自动回填id. 但是, 实际工作往往不是我们想象的那么简单&#xff0c;需要根据一些特殊的关系设置主键id 的值。 假设我们取消表trole 的id自增的规则&#xff0c;我们的要求是:如…

【element plus】el-tooltip限制宽度及自定义背景色

根据官方文档&#xff0c;使用popper-class参数为tooltip添加自定义内容&#xff1b;其中该类名注意不能够加scope标签中&#xff0c;否则无效。 <el-tooltip effect"dark" :popper-class"box-item" :hide-after"100" placement"right&q…

PyTorch 深度学习实践-处理多维特征的输入

视频指路 参考博客笔记 参考笔记二 通过多个线性模型来模拟非线性的空间变换&#xff0c;矩阵计算就是不同维度之间的空间转换 说明&#xff1a;1、乘的权重(w)都一样&#xff0c;加的偏置(b)也一样。b变成矩阵时使用广播机制。神经网络的参数w和b是网络需要学习的&#xff0c…