Windows下Linkis1.5DSS1.1.2本地调试

1 Linkis:

参考:

  • 单机部署 | Apache Linkis
  • 技术分享 | 在本地开发调试Linkis的源码 (qq.com)
  • DataSphere Studio1.0本地调试开发指南 - 掘金 (juejin.cn)

1.1 后端编译

参考【后端编译 | Apache Linkis】】

  1. 修改linkis模块下pom.xml,将mysql.connetor.scope修改为compile,修改后如下:
<mysql.connector.scope>compile</mysql.connector.scope>
<!--<mysql.connector.scope>test</mysql.connector.scope>-->
  1. 修改linkis-engineplugin-io_file模块下IoEngineConnExecutorTest测试类包名,将scala改成java。
    在这里插入图片描述

如果您是本地第一次使用,必须在最外层工程pom.xml所在目录先执行以下命令:

mvn -N install

在最外层工程pom.xml所在目录执行以下命令

mvn clean install -DskipTests

1.2 管理台编译

参考【管理台编译 | Apache Linkis】

1.3 调整配置文件

1.3.1 拷贝配置文件

在 Linkis 源码文件夹下,子目录 linkis-dist/package/conf 中,是 Linkis 的一些默认配置文件,将配置文件复制到自己的配置文件目录,如D:\linkis\linkis-package\conf
在这里插入图片描述
在这里插入图片描述

1.3.2 修改log4j2.xml

增加日志输出到控制台的配置,修改后内容如下:

<configuration status="error" monitorInterval="30"><properties><property name="LOG_PATH">logs</property><property name="LOG_FILE">linkis</property></properties><appenders><RollingFile name="RollingFile" append="true" fileName="${LOG_PATH}/${LOG_FILE}.log"filePattern="${LOG_PATH}/$${date:yyyy-MM}/${LOG_FILE}/linkis-log-%d{yyyy-MM-dd-hh}-%i.log"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%-40t] %c{1.} (%L) [%M] [JobId-%X{jobId}] - %msg%xEx%n"/><Policies><SizeBasedTriggeringPolicy size="100MB"/></Policies><DefaultRolloverStrategy max="10"/></RollingFile><console name="Console-Plain" target="SYSTEM_OUT"><!--输出日志的格式--><PatternLayout pattern="%m%n"/></console></appenders><loggers><root level="INFO"><appender-ref ref="Console-Plain"/></root><logger name="com.netflix.loadbalancer.DynamicServerListLoadBalancer" level="warn" additivity="true"><appender-ref ref="Console-Plain"/></logger></loggers>
</configuration>
1.3.3 数据库配置

创建数据库,并执行linkis数据库脚本,修改linkis.properties配置文件。

在这里插入图片描述

1.4 服务配置和启动

所有微服务名称如下:

├── linkis-cg-engineconnmanager 引擎管理服务  
├── linkis-cg-engineplugin 引擎插件管理服务  
├── linkis-cg-entrance 计算治理入口服务  
├── linkis-cg-linkismanager 计算治理管理服务  
├── linkis-mg-eureka 微服务注册中心服务  
├── linkis-mg-gateway Linkis网关服务  
├── linkis-ps-publicservice 公共服务 

1.4.1 linkis-mg-eureka( 微服务注册中心服务)

Linkis 和 DSS 的服务都依赖 Eureka,所以我们需要首先启动 Eureka 服务,Eureka 服务可以在本地启动,也可以使用远程启动的服务。保证各个服务都能访问到 Eureka 的 IP 和端口之后,就可以开始着手启动其他微服务了。

在 Linkis 内部是通过-DserviceName 参数设置应用名以及使用配置文件,所以-DserviceName 是必须要指定的 VM 启动参数。

可以通过 “-Xbootclasspath/a:配置文件路径”命令,将配置文件追加到引导程序类的路径末尾,即将依赖的配置文件加到 classpath 中。

通过勾选 Include dependencies with “Provided” scope ,可以在调试时,引入 provided 级别的依赖包。
在这里插入图片描述

服务名:

linkis-mg-eureka

启动类:

org.apache.linkis.eureka.SpringCloudEurekaApplication

VM参数:

-DserviceName=linkis-mg-eureka -Xbootclasspath/a\:D:\\linkis\\linkis-package\\conf

program参数:

--spring.profiles.active=eureka --eureka.instance.preferIpAddress=true

直接运行此Application,成功启动后可以通过http://localhost:20303/ 查看 eureka 服务列表。
在这里插入图片描述

附:如果服务器已有linkis-mg-eureka服务,可以使用nginx作为代理访问(端口不能直接访问)。修改nginx.conf,配置如下

       upstream eureka-host {server eurake服务器IP:20303;}location /eureka {proxy_pass  http://eurake服务器IP:20303;proxy_set_header Host $host;proxy_set_header  X-Real-IP $remote_addr;proxy_set_header  REMOTE-HOST $remote_addr;proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;}location /eureka/js/wro.js {proxy_pass http://eureka-host/eureka/js/wro.js;}location /eureka/css/wro.css {proxy_pass http://eureka-host/eureka/css/wro.css;}location /eureka/images/spring-logo-eureka.png {proxy_pass http://eureka-host/eureka/images/spring-logo-eureka.png;}location /eureka/fonts/montserrat-webfont.woff {proxy_pass http://eureka-host/eureka/fonts/montserrat-webfont.woff;}location /eureka/fonts/varela_round-webfont.woff {proxy_pass http://eureka-host/eureka/fonts/varela_round-webfont.woff;}location /eureka/fonts/montserrat-webfont.ttf {proxy_pass http://eureka-host/eureka/fonts/montserrat-webfont.ttf;}location /eureka/fonts/varela_round-webfont.ttf {proxy_pass http://eureka-host/eureka/fonts/varela_round-webfont.ttf;}location ^~/eureka-state {proxy_pass http://eureka-host/;}

可通过http://代理IP:代理端口/eureka-state 访问eurake web

其他服务访问eurake,修改application-linkis.yml中eurake配置

defaultZone: http://代理IP:代理端口/eureka

1.4.2 linkis-mg-gateway (网关服务)

linkis-mg-gateway 是 Linkis 的服务网关,所有的请求都会经由 gateway 来转发到对应的服务上。

启动服务器前,首先需要编辑 conf/linkis-mg-gateway.properties 配置文件,增加管理员用户名和密码,【用户名需要与你当前登录的机器用户名保持一致?待验证】。我配置为如下,用于dss登录。

wds.linkis.admin.user=hadoop
wds.linkis.admin.password=123456

设置 linkis-mg-gateway的启动Application:
在这里插入图片描述

服务名:

linkis-mg-gateway

启动类:

org.apache.linkis.gateway.springcloud.LinkisGatewayApplication

VM参数:

-DserviceName=linkis-mg-gateway -Xbootclasspath/a\:D:\\linkis\\linkis-package\\conf

启动服务,可正常启动,不过,在服务调用时,会报gatewayParsers空异常?
在这里插入图片描述

参考【关于linkis-spring-cloud-gateway 服务的空指针以及gatewayProperties无法赋值问题 · Issue #1086 · apache/linkis (github.com)】,做如下调整:

1.修改linkis-spring-cloud-gateway模块下的pom.xml。添加如下内容,并修改reactor-netty包版本,重新import。(不先import,下面修改Project Structure的修改会丢失)。

<!-- only for debug -->
<dependency><groupId>io.projectreactor.netty</groupId><artifactId>reactor-netty</artifactId><!-- <version>0.9.7.RELEASE</version>--><version>0.9.20.RELEASE</version>
</dependency><dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-pes-common</artifactId><version>${project.version}</version>
</dependency><dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-jobhistory</artifactId><version>${project.version}</version>
</dependency><!-- instance label -->
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-instance-label-server</artifactId><version>${project.version}</version>
</dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId>
</dependency>
<!-- only for debug -->

2.打开Project Structrue,删除linkis-engineplugin-openlookeng、linkis-eureka、linkis-metadata模块下重复的Source Folders和Resource Folders。【没有重复则跳过此步骤】。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.linkis-spring-cloud-gateway模块添加linkis-gateway-server-support-1.5.0-SNAPSHOT.jar到classpath。
在这里插入图片描述
在这里插入图片描述
4.修改linkis-mg-gateway.properties文件,在mybatis包扫描配置中添加jobhistory模块bean和entity包扫描。

5.保存设置,重新启动linkis-mg-gateway服务。调试gatewayParsers不为null。
在这里插入图片描述

1.4.3 linkis-ps-publicservice (公共服务)

publicservice 是 Linkis 的公共增强服务,为其他微服务模块提供统一配置管理、上下文服务、物料库、数据源管理、微服务管理和历史任务查询等功能的模块。

设置linkis-ps-publicservice的启动Application:
在这里插入图片描述

服务名:

linkis-ps-publicservice

启动类:

org.apache.linkis.filesystem.LinkisPublicServiceApp

VM参数:

-DserviceName=linkis-ps-publicservice -Xbootclasspath/a\:D:\\linkis\\linkis-package\\conf

如果需要物料上传需求,做以下调整

  1. 添加linkis-bmlserver到classpath

在这里插入图片描述

  1. 修改linkis.properties文件wds.linkis.bml.local.prefix参数,指定物料上传到本地的路径。
wds.linkis.bml.local.prefix=D:/data/dss/bml

如需其他服务,如linkis-instance-label-server,linkis-cs-server,linkis-udf-service等,可按上面添加linkis-bmlserver的方法添加到classpath,但稍微麻烦,开发调试直接修改linkis-ps-publicservice下的pom.xml,将需要添加的服务添加进来,例如:

<!-- only for debug -->
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-datasource-manager-server</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-bmlserver</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-metadata</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-cs-server</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-instance-label-server</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-udf-service</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-jobhistory</artifactId><version>${project.version}</version>
</dependency>
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-configuration</artifactId><version>${project.version}</version>
</dependency>
<!-- only for debug -->

1.4.4 linkis-cg-linkismanager (计算治理管理服务)

在这里插入图片描述

服务名:

linkis-cg-linkismanager

启动类:

org.apache.linkis.manager.LinkisManagerApplication

VM参数:

-DserviceName=linkis-cg-linkismanager -Xbootclasspath/a:D:\\linkis\\linkis-package\\conf

修改linkis-cg-linkismanager.properties,配置wds.linkis.engineconn.home参数【需解压linkis安装包到指定目录】

#wds.linkis.engineconn.home=/appcom/Install/LinkisInstall/lib/linkis-engineconn-plugins
#wds.linkis.engineconn.plugin.loader.store.path=/appcom/Install/LinkisInstall/lib/linkis-engineconn-plugins
wds.linkis.engineconn.home=D:\\linkis\\linkis-package\\lib\\linkis-engineconn-plugins

1.4.5 linkis-cg-entrance( 计算治理入口服务)

在这里插入图片描述

服务名:

linkis-cg-entrance

启动类:

org.apache.linkis.entrance.LinkisEntranceApplication

VM参数:

-DserviceName=linkis-cg-entrance -Xbootclasspath/a:D:\\linkis\\linkis-package\\conf

1.4.6 linkis-cg-engineconnmanager (引擎管理服务 )

服务名:

linkis-cg-engineconnmanager

启动类:

org.apache.linkis.ecm.server.LinkisECMApplication

VM参数:

-DserviceName=linkis-cg-engineconnmanager -Xbootclasspath/a:D:\\linkis\\linkis-package\\conf

linkis-cg-engineconnmanager模块调试暂只支持Mac OS 和 Linux系统。【可参考官方文档调试 Debug 指引 | Apache Linkis进行远程调试】

启动控制台可以看到如下异常:

    start register ecmRPC-Sender-Asyn-Thread-ListenerBus add a new listener => class org.apache.linkis.rpc.BaseRPCSender$$anon$1Flipping property: linkis-cg-linkismanager.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647Shutdown hook installed for: NFLoadBalancer-PingTimer-linkis-cg-linkismanagerClient: linkis-cg-linkismanager instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=linkis-cg-linkismanager,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:nullFlipping property: linkis-cg-linkismanager.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647Start to linkis-ec-clear shellShell linkis-ec-clear.sh execution failed, msg:Cannot run program "sh": CreateProcess error=2, 系统找不到指定的文件。End to linkis-ec-clear shellFlipping property: linkis-cg-linkismanager.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647org.apache.linkis.ecm.server.service.impl.DefaultECMHealthService@251b3e8a changed status Starting => Running.ECM:ServiceInstance(linkis-cg-engineconnmanager, DIGITAL-MAYANJ:9102, 0) is readySpringCloudInstanceLabelClient app state ACCEPTING_TRAFFICSpringCloudInstanceLabelClient init

至此,查看eureka界面,查看服务列表:

在这里插入图片描述


2 DSS:

2.1 数据库准备

新建数据库dss,前后执行db目录下的dss_ddl.sql、dss_dml.sql脚本文件

2.2 后端编译

如果您是本地第一次使用,必须在最外层工程pom.xml所在目录先执行以下命令:

mvn -N install

在最外层工程pom.xml所在目录执行以下命令

mvn clean install -DskipTests

2.3 调整配置文件

2.3.1 拷贝配置文件

在 DSS 源码文件夹下,子目录conf 中,是 dss 的一些默认配置文件,将配置文件复制到自己的配置文件目录,如D:\dss\dss-1.1.2\conf

在这里插入图片描述
在这里插入图片描述

2.3.2 修改log4j2.xml

增加日志输出到控制台的配置,修改内容如下:

<configuration status="error" monitorInterval="30"><appenders><Console name="Console" target="SYSTEM_OUT"><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%t] %logger{36} %L %M - %msg%xEx%n"/></Console></appenders><loggers><root level="INFO"><appender-ref ref="Console"/></root></loggers>
</configuration>

2.3.3 修改dss.properties数据库配置

在这里插入图片描述

2.4 服务配置及启动

2.4.1 dss-server

在这里插入图片描述

服务名:

dss-server

启动类:

com.webank.wedatasphere.dss.DSSServerApplication

VM参数:

-DserviceName=dss-framework-orchestrator-server -DDSS\_HOME=D:\\\dss\\\dss-1.1.2 -Xbootclasspath/a\:D:\\\dss\\\dss-1.1.2\\\conf

修改dss-server模块下的pom.xml,添加如下内容:

<!-- only for debug -->
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-rpc</artifactId><version>${linkis.version}</version>
</dependency>
<dependency><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><groupId>org.springframework.cloud</groupId><version>${spring.cloud.version}</version>
</dependency>
<dependency><groupId>com.webank.wedatasphere.dss</groupId><artifactId>dss-sender-service</artifactId><version>${dss.version}</version>
</dependency>
<dependency><groupId>com.squareup.okio</groupId><artifactId>okio</artifactId><version>2.2.2</version><scope>compile</scope>
</dependency>
<!-- only for debug -->

由于dss-server启动,com.webank.wedatasphere.dss.common.utils.ZipHelper会使用到zip命令,需要安装zip和unzip命令【下载地址zip and unzip for the windows command line (stahlworks.com)】,直接下载安装即可。

在这里插入图片描述

修改com.webank.wedatasphere.dss.common.utils.ZipHelper 源码。将源码中String[] strArr = dirPath.split(File.separator);修改为如下代码:

 String[] strArr = null;if (FsPath.WINDOWS) {strArr = dirPath.split("\\" + File.separator);} else {strArr = dirPath.split(File.separator);}

修改linkis项目中org.apache.linkis.storage.fs.impl.LocalFileSystem源码:

  @Overridepublic boolean create(String dest) throws IOException {LOG.info("try to create file with path:" + dest);File file = new File(dest);if (!FsPath.WINDOWS && !isOwner(file.getParent())) {throw new IOException("you have no permission to create file " + dest);}try {boolean created = file.createNewFile();if (created && !FsPath.WINDOWS) {setPermission(new FsPath(dest), this.getDefaultFilePerm());if (!user.equals(getOwner(dest))) {setOwner(new FsPath(dest), user, null);}}return created;} catch (Throwable e) {file.delete();if (e instanceof IOException) {throw (IOException) e;} else {throw new IOException(e);}}}

在这里插入图片描述

2.4.2 dss-apps-server

在这里插入图片描述

服务名:


dss-apps-server

启动类:

com.webank.wedatasphere.dss.apps.DSSAppsServerApplication

VM参数:

-DserviceName=dss-apps-server -DDSS\_HOME=D:\\\dss\\\dss-1.1.2 -Xbootclasspath/a\:D:\\\dss\\\dss-1.1.2\\\conf

修改dss-server模块下的pom.xml,添加如下内容:

<!-- only for debug -->
<dependency><groupId>org.apache.linkis</groupId><artifactId>linkis-rpc</artifactId><version>${linkis.version}</version>
</dependency>
<dependency><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><groupId>org.springframework.cloud</groupId><version>${spring.cloud.version}</version>
</dependency>
<dependency><groupId>com.webank.wedatasphere.dss</groupId><artifactId>dss-sender-service</artifactId><version>${dss.version}</version>
</dependency>
<dependency><groupId>com.squareup.okio</groupId><artifactId>okio</artifactId><version>2.2.2</version><scope>compile</scope>
</dependency>
<!-- only for debug -->

至此,查看eurake服务列表:

在这里插入图片描述

2.5 前端编译

参考【DataSphereStudio-Doc/zh_CN/开发文档/前端编译文档.md at main · WeDataSphere/DataSphereStudio-Doc (github.com)】

本地编译node版本为16.15.1 ,learna版本为 6.4.0

编译启动,浏览器打开http://localhost:8080。使用1.4.2中配置的用户名和密码登录。

在这里插入图片描述
在这里插入图片描述

3 备注

本文中调试过程基于linkis和DSS的master分支,由于社区活跃,代码变化频繁,部分内容会有一些出入,可按需和调试日志做适当调整。还有很多功能没有进行调试,如任务创建、执行等,各种appcon集成等。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于命令行模式设计退款请求处理

前言 这篇文章的业务背景是基于我的另一篇文章: 对接苹果支付退款退单接口-CSDN博客 然后就是说设计模式是很开放的东西,可能我觉得合适,你可能觉得不合适,这里只是做下讨论,没有一定要各位同意的意思.... 相关图文件 这里我先把相关的图文件放上来,可能看着会比较清晰点 代码逻…

从零开始的c语言日记day37——数组指针练习

一、 取地址数组储存在了*p里&#xff0c;里面储存的是整个数组的地址但本质也是第一个元素的地址解引用后1为4个字节所以就可以打印数组了。但一般不用这种方法 这样更方便一些 打印多维数组 如果不用这样传参&#xff0c;用指针传参怎么做呢&#xff1f; Main里函数的arr表示…

第1章 爬虫基础

目录 1. HTTP 基本原理1.1 URI 和 URL1.2 HTTP 和 HTTPS1.3 请求1.3.1 请求方法1.3.2 请求的网址1.3.3 请求头1.3.4 请求体 1.4 响应1.4.1 响应状态码1.4.2 响应头1.4.3 响应体 2. Web 网页基础2.1 网页的组成2.1.1 HTML2.1.2 CSS2.1.3 JavaScript 2.2 网页的结构2.3 节点树及节…

windows上 adb devices有设备 wsl上没有

终于解决了&#xff01;&#xff01;&#xff01;&#xff01; TAT&#xff0c;尝试了很多种办法。 比如WSL中的adb和Windows中的adb版本必须一致&#xff0c;一致也没用&#xff0c;比如使用 ln 建立链接也没用。 这个解决办法的前提是windows中的abd是好用的。 ●在windows…

JSP:JDBC

JDBC&#xff08;Java Data Base Connectivity的缩写&#xff09;是Java程序操作数据库的API&#xff0c;也是Java程序与数据库相交互的一门技术。 JDBC是Java操作数据库的规范&#xff0c;由一组用Java语言编写的类和接口组成&#xff0c;它对数据库的操作提供基本方法&#…

anaconda换源安装pytorch(附带bug解决办法)

1.安装anaconda 如何安装anaconda可以看这篇文章:如何安装anaconda 2.换源安装pytorch: 首先进入到pytorch官网&#xff0c;选对好参数之后复制命令进入到anaconda prompt即可: 然后进入自己的环境之后输入该命令(即conda install …)&#xff0c;则可以进行下载。下载完成…

pandas教程:USDA Food Database USDA食品数据库

文章目录 14.4 USDA Food Database&#xff08;美国农业部食品数据库&#xff09; 14.4 USDA Food Database&#xff08;美国农业部食品数据库&#xff09; 这个数据是关于食物营养成分的。存储格式是JSON&#xff0c;看起来像这样&#xff1a; {"id": 21441, &quo…

入侵redis之准备---Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制

入侵redis之准备—Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制 几点需要知道的信息 【1】crontab一般来说服务器都是有的&#xff0c;依赖crond服务&#xff0c;这个服务也是必须安装的服务&#xff0c;并且也是开机自启动的服务&#xff0c;也就是说&…

C语言做一个恶作剧关机程序

一、项目介绍 C语言实现一个简单的"流氓软件"&#xff0c;一个可以强制关机恶作剧关机程序&#xff0c;输入指定指令可以解除 二、运行截图 然后当你输入“n”才可以解锁关机。 三、完整源码 #include <stdlib.h> #include <stdio.h> #include <s…

机器学习8:在病马数据集上进行算法比较(ROC曲线与AUC)

ROC曲线与AUC。使用不同的迭代次数&#xff08;基模型数量&#xff09;进行 Adaboost 模型训练&#xff0c;并记录每个模型的真阳性率和假阳性率&#xff0c;并绘制每个模型对应的 ROC 曲线&#xff0c;比较模型性能&#xff0c;输出 AUC 值最高的模型的迭代次数和 ROC 曲线。 …

【传智杯】儒略历、评委打分、萝卜数据库题解

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; 蓝桥杯 &#x1f319;请不要相信胜利就像山坡上的蒲公英一样唾手…

Vue框架学习笔记——事件scroll和wheel的区别

文章目录 前文提要滚动条滚动事件 scroll鼠标滚动事件 wheel二者不同点 前文提要 本人仅做个人学习记录&#xff0c;如有错误&#xff0c;请多包涵 滚动条滚动事件 scroll scroll事件绑定html页面中的指定滚动条&#xff0c;无论你拖拽滚动条&#xff0c;选中滚动条之后按键盘…

【深度学习】CNN中pooling层的作用

1、pooling是在卷积网络&#xff08;CNN&#xff09;中一般在卷积层&#xff08;conv&#xff09;之后使用的特征提取层&#xff0c;使用pooling技术将卷积层后得到的小邻域内的特征点整合得到新的特征。一方面防止无用参数增加时间复杂度&#xff0c;一方面增加了特征的整合度…

揭秘周杰伦《最伟大的作品》MV,绝美UI配色方案竟然藏在这里

色彩在UI设计的基本框架中占据着举足轻重的位置。实际上&#xff0c;精心挑选和组合的色彩配色&#xff0c;往往就是UI设计成功的不二法门。在打造出一个实用的UI配色方案过程中&#xff0c;我们需要有坚实的色彩理论知识&#xff0c;同时还需要擅于从生活中观察和提取灵感。以…

C++进阶篇5---番外-位图和布隆过滤器

哈希的应用 一、位图 情景&#xff1a;给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff1f;&#xff1f;&#xff1f; 看到查找元素的范围&#xff0c;暴力肯定是过不了的&#xff0c;我们要么…

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…

【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

文章目录 概要读取图像获取轮廓轮廓排序小结 概要 在图像处理中&#xff0c;经常需要进行与物体轮廓相关的操作&#xff0c;比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息&#xff0c;通常使用OpenCV的findContours函数。然而&#xff0c;一旦获得轮廓信息后&#…

Redis跳跃表

前言 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每一个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。 跳跃表支持平均O(logN)&#xff0c;最坏O(N)&#xff0c;复杂度的节点查找&#xff0c;还可以通过顺序性来批量处理节点…

城市管理实景三维:打造智慧城市的新引擎

城市管理实景三维&#xff1a;打造智慧城市的新引擎 在城市管理领域&#xff0c;实景三维技术正逐渐成为推动城市发展的新引擎。通过以精准的数字模型呈现城市真实场景&#xff0c;实景三维技术为城市决策提供了全新的思路和工具。从规划设计到交通管理&#xff0c;从环境保护到…

HOOPS Web平台助力开发3D应用,实现超大规模3D web轻量化渲染与数据格式转换!

一、包含的软件开发工具包 HOOPS Web平台帮助开发人员构建基于Web的工程应用程序&#xff0c;提供高级3D Web可视化、准确快速的CAD数据访问和3D数据发布。 HOOPS Web平台包括三个集成软件开发工具包 (SDK)&#xff1a; &#xff08;1&#xff09;Web端3D可视化引擎 HOOPSCom…