04.DolphinScheduler使用详细介绍

news2024/9/19 23:38:25

文章目录

    • 创建Worker分组-指定执行机器使用
    • 创建执行脚本用户
  • 执行脚本
    • 执行Shell脚本
    • 执行Spark任务
      • 执行Spark任务可能的报错
        • Storage service config does not exist!
    • 执行Hive任务
    • 执行HTTP任务
      • 创建任务
      • 任务参数
      • 任务样例
  • 参数使用
    • 内置参数
      • 基础内置参数
      • 衍生内置参数
      • 画布中引用方法
        • 方法一:通过自定义参数赋值引用
        • 方法二:直接在脚本中使用
    • 全局参数
      • 作用域
      • 使用方式
        • 创建 Shell 任务
        • 保存工作流,并设置全局参数
        • 任务实例查看执行结果
    • 本地参数
      • 作用域
      • 使用方式
      • 任务样例
        • 通过自定义参数使用
        • 通过 `setValue` export 本地参数
        • 通过 `setValue` 和自定义参数 export 本地参数
        • 通过 `setValue` 和 Bash 环境变量参数 export 本地参数(根据接口返回结果赋值给下流)
    • 参数传递
      • 本地任务引用全局参数
      • 上游任务传递给下游任务
      • 任务样例
        • 创建 SHELL 任务并设置参数
        • 创建 SQL 任务并使用参数
        • 保存工作流并设置全局参数
        • 查看运行结果
        • Python 任务传递参数
    • 参数优先级

创建Worker分组-指定执行机器使用

在这里设置分组后,执行程序时选择需要执行在哪个分组内的程序执行程序

image-20230323152012277

创建执行脚本用户

安全中心->租户管理->创建用户

这里创建的用户就是对应Linux操作系统的用户,在任务调度执行时选择在Linux中执行脚本的用户

image-20230323144742610

执行脚本

执行Shell脚本

项目管理->工作流->工作流定义->创建工作流

点击创建工作流

image-20230323145451220

参数说明:

  • 任务名称:设置任务的名称。一个工作流定义中的节点名称是唯一的。
  • 运行标志:标识这个节点是否能正常调度,如果不需要执行,可以打开禁止执行开关。
  • 描述:描述该节点的功能。
  • 任务优先级:worker 线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
  • Worker 分组:任务分配给 worker 组的机器机执行,选择 Default,会随机选择一台 worker 机执行。
  • 环境名称:配置运行脚本的环境。
  • 失败重试次数:任务失败重新提交的次数,支持下拉和手填。
  • 失败重试间隔:任务失败重新提交任务的时间间隔,支持下拉和手填。
  • 超时告警:勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败.
  • 脚本:用户开发的 SHELL 程序。
  • 资源:是指脚本中需要调用的资源文件列表,资源中心-文件管理上传或创建的文件。
  • 自定义参数:是 SHELL 局部的用户自定义参数,会替换脚本中以 ${变量} 的内容。
  • 前置任务:选择当前任务的前置任务,会将被选择的前置任务设置为当前任务的上游。

SHELL拖入画布

image-20230323145528076

输入节点名称(命名为我们要做的内容)

image-20230323145608036

输入脚本要执行的内容

image-20230323145635963

需要执行多行内容回车换行就行,这里使用相同命令执行两次来验证多行命令

再拖一个SHELL到画布,名称为:查看北京时间,内容为curl http://worldtimeapi.org/api/timezone/Asia/Shanghai

将两个任务连起来,即:执行完查看IP后,再执行查看北京时间,点击右上角保存

image-20230323145943438

为工作流命名,租户选择我们配置的租户(可在安全中心->租户管理设置),并设置执行策略为串行等待

image-20230323150812095

工作流定义中可以看到我们创建的工作流

image-20230323150205698

点击上线按钮后才可以执行

image-20230323150224615

再点击执行

image-20230323150301281

配置启动参数,保存

image-20230323150331448

说明:

Worker分组:DolphinScheduler的Worker节点可以在安全中心->Worker分组管理将服务器进行分组,程序在执行时配置Worker分组即可在相对应的分组机器执行

执行后,在任务示例中可以看到我们执行的记录与状态,如下:

image-20230323151031069

查看执行日志

image-20230323151049292

查看IP的日志

image-20230323151122267

查看北京时间日志

image-20230323151209886

补充说明:

在任务定义中可以看到我们刚刚创建的所有任务

image-20230323152415742

到此SHELL基础调度介绍到这里

执行Spark任务

工作流定义中拖入Spark到画布

image-20230324134219541

填写相关参数,参数说明:

参数名称说明
节点名称在画布和任务定义中显示任务的名称
运行标志正常/禁止运行,禁止运行后任务不会启动不会运行
描述
任务优先级
Worker分组任务执行在哪个分组的机器
环境名称
任务组名称
组内优先级
失败重试次数
失败重试间隔
延时执行时间
超时警告设置程序多久未执行完,未完成进行告警或失败
程序类型选择Scala、Java、Python、SQL
Spark版本Spark1,Spark2 具体执行脚本为我们安装集群配置的Spark的环境变量
主函数的Class需要执行的类
主程序包需要执行的程序Jar包,在资源中心上传后可以在这里选择
集群部署方式cluster/client/local
任务名称对应 --name
Driver核心数对应 --driver-cores
Driver内存数对应 --driver-memory
Executor数量对应 --num-executors
Executor内存数对应 --executor-memory
Executor核心数对应 --executor-cores
主程序参数程序入口传入的参数
选项参数自定义传入参数如:–jars $(echo /data/spark-job/label-offline/lib/*.jar --files /data/spark-job/cdp-label-offline/env.properties
资源
自定义参数
前置任务

image-20230324141240826

执行Spark任务可能的报错

Storage service config does not exist!

[ERROR] 2023-03-23 09:51:50.024 +0000 - Task execute failed, due to meet an exception
org.apache.dolphinscheduler.common.exception.StorageOperateNoConfiguredException: Storage service config does not exist!
	at org.apache.dolphinscheduler.server.worker.utils.TaskExecutionCheckerUtils.downloadResourcesIfNeeded(TaskExecutionCheckerUtils.java:115)
	at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecuteRunnable.beforeExecute(WorkerTaskExecuteRunnable.java:216)
	at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecuteRunnable.run(WorkerTaskExecuteRunnable.java:170)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
[INFO] 2023-03-23 09:51:50.026 +0000 - Get a exception when execute the task, will send the task execute result to master, the current task execute result is TaskExecutionStatus{code=6, desc='failure'}

原因:

配置资源中心时worker-server/conf/common.properties忘记配置HDFS配置了,只配置了api-server/conf/common.properties

解决方法:

worker-server/conf/common.properties配置文件中添加HDFS配置,重新部署服务sh bin/install.sh

# user data local directory path, please make sure the directory exists and have read write permissions
data.basedir.path=/tmp/dolphinscheduler
# resource storage type: HDFS, S3, OSS, NONE
resource.storage.type=HDFS
# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
resource.hdfs.root.user=hdfs
# 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://172.16.24.194:8020
# resourcemanager port, the default value is 8088 if not specified
resource.manager.httpaddress.port=8088
# if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty
yarn.resourcemanager.ha.rm.ids=
# if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname
yarn.application.status.address=http://172.16.4.194:%s/ws/v1/cluster/apps/%s
# job history status url when application number threshold is reached(default 10000, maybe it was set to 1000)
yarn.job.history.status.address=http://172.16.24.195:19888/ws/v1/history/mapreduce/jobs/%s

执行Hive任务

拖入Hive到画布,填写节点名称,Hive Clie任务类型,Hive SQL脚本

image-20230324145755488

保存执行,在任务实例查看日志,可以查看到我们执行的命令结果

image-20230324145936414

执行HTTP任务

该节点用于执行 http 类型的任务,例如常见的 POST、GET 等请求类型,此外还支持 http 请求校验等功能。

创建任务

  • 点击项目管理 -> 项目名称 -> 工作流定义,点击”创建工作流”按钮,进入 DAG 编辑页面:
  • 拖动工具栏的 image-20230324151321850 任务节点到画板中。

任务参数

  • 节点名称:设置任务的名称。一个工作流定义中的节点名称是唯一的。
  • 运行标志:标识这个节点是否能正常调度,如果不需要执行,可以打开禁止执行开关。
  • 描述:描述该节点的功能。
  • 任务优先级:worker 线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
  • Worker 分组:任务分配给 worker 组的机器机执行,选择 Default,会随机选择一台 worker 机执行。
  • 环境名称:配置运行任务的环境。
  • 失败重试次数:任务失败重新提交的次数,支持下拉和手填。
  • 失败重试间隔:任务失败重新提交任务的时间间隔,支持下拉和手填。
  • 延迟执行时间:任务延迟执行的时间,以分为单位。
  • 超时告警:勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败。
  • 请求地址:http 请求 URL。
  • 请求类型:支持 GET、POST、HEAD、PUT、DELETE。
  • 请求参数:支持 Parameter、Body、Headers。
  • 校验条件:支持默认响应码、自定义响应码、内容包含、内容不包含。
  • 校验内容:当校验条件选择自定义响应码、内容包含、内容不包含时,需填写校验内容。
  • 自定义参数:是 http 局部的用户自定义参数,会替换脚本中以 ${变量} 的内容。
  • 前置任务:选择当前任务的前置任务,会将被选择的前置任务设置为当前任务的上游。

任务样例

HTTP* 定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。这里我们使用 http 任务节点,演示使用 POST 向系统的登录页面发送请求,提交数据。

主要配置参数如下:

  • URL:访问目标资源的地址,这里为系统的登录页面。
  • HTTP Parameters
    • userName:用户名;
    • userPassword:用户登录密码。

http_task

参数使用

内置参数

基础内置参数

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

衍生内置参数

  • 支持代码中自定义变量名,声明方式:${变量名}。可以是引用 “系统参数”

  • 我们定义这种基准变量为 [ … ] 格式的, […] 格式的, []格式的,[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd] 等

  • 也可以通过以下两种方式:

    1.使用add_months()函数,该函数用于加减月份, 第一个入口参数为[yyyyMMdd],表示返回时间的格式 第二个入口参数为月份偏移量,表示加减多少个月

    • 后 N 年:$[add_months(yyyyMMdd,12*N)]
    • 前 N 年:$[add_months(yyyyMMdd,-12*N)]
    • 后 N 月:$[add_months(yyyyMMdd,N)]
    • 前 N 月:$[add_months(yyyyMMdd,-N)]

    2.直接加减数字 在自定义格式后直接“+/-”数字

    • 后 N 周:$[yyyyMMdd+7*N]
    • 前 N 周:$[yyyyMMdd-7*N]
    • 后 N 天:$[yyyyMMdd+N]
    • 前 N 天:$[yyyyMMdd-N]
    • 后 N 小时:$[HHmmss+N/24]
    • 前 N 小时:$[HHmmss-N/24]
    • 后 N 分钟:$[HHmmss+N/24/60]
    • 前 N 分钟:$[HHmmss-N/24/60]

画布中引用方法

方法一:通过自定义参数赋值引用

IN 是在当前运行脚本中生效

OUT 是在DAG图的下一个脚本生效

image-20230324171529278

方法二:直接在脚本中使用

image-20230324171704153

全局参数

作用域

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

使用方式

具体的使用方式可结合实际的生产情况而定,这里演示为使用 Shell 任务打印出前一天的日期。

创建 Shell 任务

创建一个 Shell 任务,并在脚本内容中输入 echo ${dt2}。此时 dt2 则为我们需要声明的全局参数。如下图所示:

image-20230324205820071

保存工作流,并设置全局参数

全局参数配置方式如下:在工作流定义页面,点击“设置全局”右边的加号,填写对应的变量名称和对应的值,保存即可。如下图所示:

image-20230324205341329

image-20230324205429638

image-20230324205714878

注:这里定义的 dt2,dt3 参数可以被其它任一节点的局部参数引用。

任务实例查看执行结果

进入任务实例页面,可以通过查看日志,验证任务的执行结果,判断参数是否有效。

image-20230324205757165

本地参数

作用域

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

使用方式

本地参数配置方式如下:在任务定义页面,点击“自定义参数”右边的加号,填写对应的变量名称和对应的值,保存即可。

  • 如果要在单个任务中使用参数,请参阅通过自定义参数使用
  • 如果要在任务中使用配置参数并在下游任务中使用它们:
    • 如果你只是想要简单使用,且不使用自定义参数, 请参阅 通过 setValue 和自定义参数 export 本地参数
    • 如果想要使用自定义参数, 请参阅 通过 setValue 和自定义参数 export 本地参数
    • 如果想要使用 Bash 参数, 请参阅 通过 setValue 和 Bash 环境变量参数 export 本地参数

任务样例

通过自定义参数使用

本样例展示了如何使用本地参数,打印输出当前日期。创建一个 Shell 任务,并编写脚本内容为 echo ${dt}。点击配置栏中的自定义参数,配置如下图所示:

local-parameter01

参数说明:

  • dt:参数名
  • IN:IN 表示局部参数仅能在当前节点使用,OUT 表示局部参数可以向下游传递
  • DATE:数据类型,日期
  • $[yyyy-MM-dd]:自定义格式的衍生内置参数

保存工作流并运行,查看 Shell 任务输出日志。

local-parameter02

注:本地参数可以在当前任务节点的工作流中,设置其为 OUT 则可以传递给下游的工作流使用,可以参考:参数传递

通过 setValue export 本地参数

如果你想简单 export 参数然后在下游任务中使用它们,你可以在你的任务中使用 setValue,你可以将参数统一在一个任务中管理。在 Shell 任务中使用语法 echo '${setValue(set_val=123)}'(不要忘记单引号) 并添加新的 OUT 自定义参数来 export 它。

注意:

echo '${setValue(set_val=123)}'不会再shell脚本中输出内容,就是做的赋值操作

local-parameter-set-val

你可以在下游任务中使用语法 echo '${set_val}' 在获取设定的值。

通过 setValue 和自定义参数 export 本地参数

如果你想用自定义参数而不是常量值来实现参数 export,并下游任务中使用它们,你可以在通过 setValue 和 自定义参数实现,当你想改变参数的值时可以直接改变 “自定义参数”模块中的值,这让程序更加容易维护。您可以在 Shell 任务中使用语法 echo "#{setValue(set_val_param=${val})}"如果你想要将任何 变量赋值给 setValue 请不要忘记使用双引号)并添加新的 IN 自定义参数用于输入变量 valOUT 自定义参数用于 export 参数 set_val_param

image-20230324221900909

你可以在下游任务中使用语法 echo '${set_val_param}' 在获取设定的值。

通过 setValue 和 Bash 环境变量参数 export 本地参数(根据接口返回结果赋值给下流)

如果你想用 bash 变量而不是常量值 export 参数,并在下游任务中使用它们,你可以在通过 setValue 和 Bash 变量实现,它更灵活,例如你动态获取现有的本地 或 HTTP 资源获取设定变量。 您可以使用类似的语法。

lines_num=$(wget https://raw.githubusercontent.com/apache/dolphinscheduler/dev/README.md -q -O - | wc -l | xargs)
echo "#{setValue(set_val_var=${lines_num})}"

在 Shell 任务中(如果你想要将任何变量赋值给 setValue 请不要忘记使用双引号)和 OUT 自定义参数用于 export 参数 set_val_var。 .

local-parameter-set-val-bash

你可以在下游任务中使用语法 echo '${set_val_var}' 在获取设定的值。

参数传递

DolphinScheduler 提供参数间相互引用的能力,包括:本地参数引用全局参数、上下游参数传递。因为有引用的存在,就涉及当参数名相同时,参数的优先级问题,详见参数优先级

本地任务引用全局参数

本地任务引用全局参数的前提是,你已经定义了全局参数,使用方式和本地参数中的使用方式类似,但是参数的值需要配置成全局参数中的 key。

上游任务传递给下游任务

DolphinScheduler 允许在任务间进行参数传递,目前传递方向仅支持上游单向传递给下游。目前支持这个特性的任务类型有:

  • Shell
  • SQL
  • Procedure
  • Python

当定义上游节点时,如果有需要将该节点的结果传递给有依赖关系的下游节点,需要在【当前节点设置】的【自定义参数】设置一个方向是 OUT 的变量。目前我们主要针对 SQL 和 SHELL 节点做了可以向下传递参数的功能。

上游传递的参数可以在下游节点中被更新,更新方法与设置参数相同。

如果定义了同名的传递参数,上游节点的参数将被覆盖。

注:若节点之间没有依赖关系,则局部参数无法通过上游传递。

任务样例

本样例展示了如何使用参数传递的功能,通过 SHELL 任务来创建本地参数并赋值传递给下游,SQL 任务通过获得上游任务的参数完成查询操作。

创建 SHELL 任务并设置参数

用户需要传递参数,在定义 SHELL 脚本时,需要输出格式为 ${setValue(key=value)} 的语句,key 为对应参数的 prop,value 为该参数的值。

创建 Node_A 任务,在自定义参数中添加 output 和 value 参数,并编写如下脚本:

context-parameter01

参数说明:

  • value:方向选择为 IN,并赋值为 66
  • output:方向选择为 OUT,通过脚本 '${setValue(output=1)}' 赋值,并传递给下游参数

SHELL 节点定义时当日志检测到 ${setValue(output=1)} 的格式时,会将 1 赋值给 output,下游节点便可以直接使用变量 output 的值。同样,您可以在【工作流实例】页面,找到对应的节点实例,便可以查看该变量的值。

创建 Node_B 任务,主要用于测试输出上游任务 Node_A 传递的参数。

context-parameter02

创建 SQL 任务并使用参数

完成上述的 SHELL 任务之后,我们可以使用上游所传递的 output 作为 SQL 的查询对象。其中将所查询的 id 重命名为 ID,作为参数输出。

context-parameter03

注:如果 SQL 节点的结果只有一行,一个或多个字段,参数的名字需要和字段名称一致。数据类型可选择为除 LIST 以外的其他类型。变量会选择 SQL 查询结果中的列名中与该变量名称相同的列对应的值。

如果 SQL 节点的结果为多行,一个或多个字段,参数的名字需要和字段名称一致。数据类型选择为 LIST。获取到 SQL 查询结果后会将对应列转化为 LIST,并将该结果转化为 JSON 后作为对应变量的值。

保存工作流并设置全局参数

点击保存工作流图标,并设置全局参数 output 和 value。

context-parameter03

查看运行结果

创建完成工作流之后,上线运行该工作流,查看其运行结果。

Node_A 运行结果如下:

context-log01
Node_B 运行结果如下:

context-log02

Node_mysql 运行结果如下:

context-log03

虽然在 Node_A 的脚本中为 output 赋值为 1,但日志中显示的值仍然为 100。但根据参数优先级的原则:本地参数 > 上游任务传递的参数 > 全局参数,在 Node_B 中输出的值为 1。则证明 output 参数参照预期的值在该工作流中传递,并在 Node_mysql 中使用该值完成查询操作。

但是 value 的值却只有在 Node_A 中输出为 66,其原因为 value 的方向选择为 IN,只有当方向为 OUT 时才会被定义为变量输出。

Python 任务传递参数

使用 print('${setValue(key=%s)}' % value),DolphinScheduler会捕捉输出中的 ${setValue(key=value}来进行参数捕捉,从而传递到下游

img.png

参数优先级

DolphinScheduler 中所涉及的参数值的定义可能来自三种类型:

  • 全局参数:在工作流保存页面定义时定义的变量
  • 上游任务传递的参数:上游任务传递过来的参数
  • 本地参数:节点的自有变量,用户在“自定义参数”定义的变量,并且用户可以在工作流定义时定义该部分变量的值

因为参数的值存在多个来源,当参数名相同时,就需要会存在参数优先级的问题。DolphinScheduler 参数的优先级从高到低为:本地参数 > 上游任务传递的参数 > 全局参数

在上游任务传递的参数中,由于上游可能存在多个任务向下游传递参数,当上游传递的参数名称相同时:

  • 下游节点会优先使用值为非空的参数
  • 如果存在多个值为非空的参数,则按照上游任务的完成时间排序,选择完成时间最早的上游任务对应的参数

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

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

相关文章

拓展业务规模 | 2023 Google 游戏开发者峰会

将游戏拓展到 PC 端,在很大程度上能够帮助您向更多玩家展示游戏魅力,进一步提高用户覆盖率、互动度和 ROI,并在 Google Play 平台上构建高质量的游戏。Google Play 游戏电脑端的每次更新,都旨在让您的跨平台开发更加轻松&#xff…

初探 VS Code + Webview

本文作者为 360 奇舞团前端开发工程师 介绍 VSCode 是一个非常强大的代码编辑器,而它的插件也非常丰富。在开发中,我们经常需要自己编写一些插件来提高开发效率。本文将介绍如何开发一个 VSCode 插件,并在其中使用 Webview 技术。首先介绍一下…

功率放大器在MTT检测超声医疗中的应用

实验名称:MTT检测超声激活血卟啉对SW-480细胞的杀伤作用 研究方向:超声医疗 测试目的: 自提出激光与血卟啉结合具有明显的抗肿瘤效应,PDT法在诊治肿瘤方面已做了大量研究并在临床中得到应用。但由于激光对组织穿透力较差&#xff…

C语言CRC-8 ROHC格式校验函数

C语言CRC-8 ROHC格式校验函数 CRC校验基于前处理和后处理的不同,由不同的协会标准推出了一些不同格式的版本。这里介绍CRC-8 ROHC格式的校验函数。 CRC-8 ROHC格式特征 标准CRC-8的校验函数参考: C语言标准CRC-8校验函数 CRC-8 ROHC格式有如下的不同&…

Numpy从入门到精通——详解广播机制

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快! 这一篇介绍《…

机器学习-线性模型(波士顿房价预测)

机器学习-线性模型(波士顿房价预测) 文章目录 机器学习-线性模型(波士顿房价预测)人工智能、机器学习、深度学习的关系机器学习深度学习 波士顿房价预测数据集介绍模型假设 → \rightarrow →线性回归模型评价函数 → \rightarrow →均方误差线性回归模型网络结构实现波士顿房价…

HummerRisk V1.0 安装部署指南

HummerRisk v1.0 开始采用 springcloud 微服务架构,微服务架构更加易于扩展、易于容错、灵活部署,但是需要注意的是 HummerRisk v0.x 版本无法直接升级到 v1.0,如需使用 HummerRisk 请手动安装最新版本。 环境要求 全新安装的 Linux(x64)需要…

HashMap详解

手撕HashMap源码 HashMap一直是面试的重点。今天我们来了解了解它的源码吧! 首先看一下Map的继承结构图 源码分析 什么是哈希 **Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算…

【Python语法系列】第三章:Python判断语句

进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能,一个逻辑判断的流程非常简单,我们有一个判断的条件,那么他无非给我们返回两个结果,是或者否,是的…

Ubuntu22.04部署Pytorch2.0深度学习环境

文章目录 安装Anaconda创建新环境安装Pytorch2.0安装VS CodeUbuntu下实时查看GPU状态的方法小实验:Ubuntu、Windows10下GPU训练速度对比 Ubuntu安装完显卡驱动、CUDA和cudnn后,下面部署深度学习环境。 (安装Ubuntu系统、显卡驱动、CUDA和cudn…

成本降低33%!英飞凌挑战智能汽车「高功率密度」瓶颈

伴随着汽车电动化、智能化的逐步推进,功率半导体器件的需求激增。其中,MOSFET作为新能源汽车中DC-DC、OBC等电源系统的重要组成部分,应用于汽车动力域以完成电能的转换与传输。同时,MOSFET还是可以用于ADAS、安全、信息娱乐等功能…

华为流程体系:MPP流程

今天主要来讲讲IPD中营销侧的另一个流程:MPP 流程。 在讲解MTL流程时,提到过MTL流程的底层逻辑是4C营销理论。 换句话说就是,MTL 流程是面向客户的产品上市流程。 而MPP流程则是面向产品的上市流程,它的底层逻辑就是经典的4P营…

新工具、新升级,推陈出新的测试好帮手

前言 【推陈出新】才是我们搞IT的正确发展方向,我们要以发展的眼光来看待我们使用的测试工具,如何升级您手中的测试工具,我们来品一品Eoink的Apikit五个维度对比我们之前用的测试工具? 我会按照:基础功能全面与否、大型…

Golang每日一练(leetDay0048) 链表专题

目录 141. 环形链表 Linked List Cycle 🌟 142. 环形链表 II Linked List Cycle II 🌟🌟 143. 重排链表 Reorder List 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一…

全光谱防蓝光护眼灯有用吗?怎么分辨是全光谱灯

每个人的家里都有一两个台灯,孩子用来学习,老人用来阅读。但台灯不仅仅是用来照明而已,还需要呵护我们的双眼。现在的孩子患近视的人越来越多,很多小学生都戴上了眼镜,而老年人老花眼白内障的患者也在攀升,…

华三(H3C)GRE OVER IPsec实验

实验拓扑 目录 实验需求 1. 某企业北京总部、上海分支、武汉分支分别通过 R1,R3,R4 接入互联网,配置默认路由连通公网 2. 按照图示配置 IP 地址,R1,R3,R4 分别配置 Loopback0 口匹配感兴趣流&#xff0…

电子行业数字工厂管理系统有哪些优点和不足

随着制造业的不断发展,其生产技术也在不断改进,有许多电子企业都在部署数字工厂管理系统,进行数字化转型。如果不了解数字工厂管理系统,盲目部署的话,容易走很多弯路。本文将跟大家探讨一下,电子行业数字工…

本地Linux服务器安装宝塔面板,并公网远程登录

文章目录 前言1. 安装宝塔2. 安装cpolar内网穿透3. 远程访问宝塔4. 固定http地址5. 配置二级子域名6. 测试访问二级子域名 前言 宝塔面板作为建站运维工具,它支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能,可提高运维效率。…

云原生|Packer插件开发在项目中应用

作者:李冠军 神州数码云基地 高级后端开发工程师 云时代我们可以在各云厂商控制台点一点,实例就生成了,但是这个点还是需要自己去点,如果把这些动作写成代码,直接运行,一切就完成了。 这就是Packer的作用…

使用Markdown编辑器

使用Markdown编辑器 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注…