数据湖之Hudi基础:入门介绍和编译部署
主要记录下Hudi的概述和打包编译等内容,方便参考
文章目录
- 简介
- 官网
- 发展历史
- Hudi特性
- 使用场景
- 安装部署
- 编译环境准备
- 编译hudi
- 1.源码包上传到服务器
- 2.修改pom文件
- 3.修改源码兼容hadoop3
- 4.手动安装kafka依赖(非必须)
- 5.解决spark模块依赖冲突
- 6.执行编译
- 7.测试hudi-client
- 简单测试编译后spark包可用性
简介
Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。
Apache Hudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。
Apache Hudi可以轻松地在任何云存储平台上使用。Hudi的高级性能优化,使分析工作负载更快的任何流行的查询引擎,包括Apache Spark、Flink、Presto、Trino、Hive等。
官网
https://hudi.apache.org/
Apache Hudi(Hadoop Upserts Delete and Incremental)
是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。
Apache Hudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。
Apache Hudi可以轻松地在任何云存储平台上使用。Hudi的高级性能优化,使分析工作负载更快的任何流行的查询引擎,包括Apache Spark、Flink、Presto、Trino、Hive等。
发展历史
2015 年:发表了增量处理的核心思想/原则(O’reilly 文章)。
2016 年:由 Uber 创建并为所有数据库/关键业务提供支持。
2017 年:由 Uber 开源,并支撑 100PB 数据湖。
2018 年:吸引大量使用者,并因云计算普及。
2019 年:成为 ASF 孵化项目,并增加更多平台组件。
2020 年:毕业成为 Apache 顶级项目,社区、下载量、采用率增长超过 10 倍。
2021 年:支持 Uber 500PB 数据湖,SQL DML、Flink 集成、索引、元服务器、缓存。
Hudi特性
-
可插拔索引机制支持快速Upsert/Delete。
-
支持增量拉取表变更以进行处理。
-
支持事务提交及回滚,并发控制。
-
支持Spark、Presto、Trino、Hive、Flink等引擎的SQL读写。
-
自动管理小文件,数据聚簇,压缩,清理。
-
流式摄入,内置CDC源和工具。
-
内置可扩展存储访问的元数据跟踪。
-
向后兼容的方式实现表结构变更的支持。
使用场景
近实时写入
-
减少碎片化工具的使用。
-
CDC 增量导入 RDBMS 数据。
-
限制小文件的大小和数量。
近实时分析
-
相对于秒级存储(Druid, OpenTSDB),节省资源。
-
提供分钟级别时效性,支撑更高效的查询。
-
Hudi作为lib,非常轻量。
增量 pipeline
- 区分arrivetime和event time处理延迟数据。
- 更短的调度interval减少端到端延迟(小时 -> 分钟) => Incremental Processing。
增量导出
- 替代部分Kafka的场景,数据导出到在线服务存储 e.g. ES。
安装部署
hudi是以lib包的形式提供功能,不同版本对spark、flink支持的依赖包不一样,具体要看官网对应版本的版本支持说明
本文会做的测试的环境如下
Linux Centos7
组件 | 版本 |
---|---|
Hudi | 0.12.1 |
Hadoop | 3.2.4 |
Hive | 3.1.3 |
Flink | 1.14 scala-2.12 |
Spark | 3.2.2 scala-2.12 |
hudi官网只提供了源码,需要自己编译
编译环境准备
linux环境编译
部署maven并配置环境变量
这个简单就不贴了
maven版本最好3.6以上别太低
这里贴下指定阿里仓库
修改setting.xml,指定为阿里仓库地址
vim $MAVEN_HOME/conf/settings.xml <!-- 添加阿里云镜像-->
<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
编译hudi
1.源码包上传到服务器
源码下载:https://dlcdn.apache.org/hudi/0.12.1/hudi-0.12.1.src.tgz
将hudi-0.12.1.src.tgz
上传到/opt/software
,并解压
tar -zxvf /opt/software/hudi-0.12.1.src.tgz -C /opt/software
2.修改pom文件
vim /opt/software/hudi-0.12.1/pom.xml
- 新增repository加速依赖下载
<repository><id>nexus-aliyun</id><name>nexus-aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots>
</repository>
- 修改Hive/Hadoop依赖的组件版本
<hadoop.version>3.2.4</hadoop.version>
<hive.version>3.1.3</hive.version>
3.修改源码兼容hadoop3
要兼容hadoop3,除了修改版本,还需要修改如下代码:
vim /opt/software/hudi-0.12.1/hudi-common/src/main/java/org/apache/hudi/common/table/log/block/HoodieParquetDataBlock.java
修改第110行,增加一个入参 null
vim 进入末行模式,然后输入set nu回车就可以看到行号
110行原先代码try (FSDataOutputStream outputStream = new FSDataOutputStream(baos)) {
修改后:try (FSDataOutputStream outputStream = new FSDataOutputStream(baos, null)) {
110 try (FSDataOutputStream outputStream = new FSDataOutputStream(baos, null)) {
111 try (HoodieParquetStreamWriter<IndexedRecord> parquetWriter = new HoodieParquetStreamWriter<>(outputStream, avroParquetConfig)) {
112 for (IndexedRecord record : records) {
113 String recordKey = getRecordKey(record).orElse(null);
114 parquetWriter.writeAvro(recordKey, record);
115 }
116 outputStream.flush();
117 }
118 }
4.手动安装kafka依赖(非必须)
0.12.0似乎是有这个问题,我这0.12.1编译没有这个问题
如果编译报错:common-utils-5.3.4.jar
、common-config-5.3.4.jar
、kafka-avro-serializer-5.3.4.jar
、kafka-schema-registry-client-5.3.4.jar
这几个jar找不到,那就要单独下载并install到你的maven仓库。
下载地址:http://packages.confluent.io/archive/5.3/confluent-5.3.4-2.12.zip
解压后找到以上报错找不到的jar包,上传服务器,并install
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-config -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-config-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=common-utils -Dversion=5.3.4 -Dpackaging=jar -Dfile=./common-utils-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-avro-serializer -Dversion=5.3.4 -Dpackaging=jar -Dfile=./kafka-avro-serializer-5.3.4.jar
mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=5.3.4 -Dpackaging=jar -Dfile=./kafka-schema-registry-client-5.3.4.jar
5.解决spark模块依赖冲突
修改了Hive版本为3.1.3,其携带的jetty是0.9.3,hudi本身用的jetty是0.9.4,存在依赖冲突。
不改可以编译通过,但是运行spark向hudi里插入数据会报错
个人测试是编译OK,但是执行插入数据就报如下错误
java.lang.NoSuchMethodError: org.apache.hudi.org.apache.jetty.server.session.SessionHandler.setHttpOnly(Z)V
-
修改
hudi-spark-bundle
的pom
文件,排除低版本jetty,添加hudi指定版本的jettyvim /opt/software/hudi-0.12.1/packaging/hudi-spark-bundle/pom.xml
大概
369
行位置开始的hive-service
、hive-jdbc
、hive-metastore
、hive-common
增加下方的
<exclusions>...</exclusions>
部分
<!-- Hive --><dependency><groupId>${hive.groupid}</groupId><artifactId>hive-service</artifactId><version>${hive.version}</version><scope>${spark.bundle.hive.scope}</scope><exclusions><exclusion><artifactId>guava</artifactId><groupId>com.google.guava</groupId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.pentaho</groupId><artifactId>*</artifactId></exclusion></exclusions></dependency><dependency><groupId>${hive.groupid}</groupId><artifactId>hive-jdbc</artifactId><version>${hive.version}</version><scope>${spark.bundle.hive.scope}</scope><exclusions><exclusion><groupId>javax.servlet</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>javax.servlet.jsp</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion></exclusions></dependency><dependency><groupId>${hive.groupid}</groupId><artifactId>hive-metastore</artifactId><version>${hive.version}</version><scope>${spark.bundle.hive.scope}</scope><exclusions><exclusion><groupId>javax.servlet</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.datanucleus</groupId><artifactId>datanucleus-core</artifactId></exclusion><exclusion><groupId>javax.servlet.jsp</groupId><artifactId>*</artifactId></exclusion><exclusion><artifactId>guava</artifactId><groupId>com.google.guava</groupId></exclusion></exclusions></dependency><dependency><groupId>${hive.groupid}</groupId><artifactId>hive-common</artifactId><version>${hive.version}</version><scope>${spark.bundle.hive.scope}</scope><exclusions><exclusion><groupId>org.eclipse.jetty.orbit</groupId><artifactId>javax.servlet</artifactId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion></exclusions></dependency>
在此文件增加依赖
<!-- 增加hudi配置版本的jetty --><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-util</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-webapp</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-http</artifactId><version>${jetty.version}</version></dependency>
-
修改
hudi-utilities-bundle
的pom
文件,排除低版本jetty,添加hudi指定版本的jetty解决的是:使用DeltaStreamer工具向hudi表插入数据时,也会报Jetty的错误使用DeltaStreamer工具向hudi表插入数据时,也会报Jetty的错误
vim /opt/software/hudi-0.12.1/packaging/hudi-utilities-bundle/pom.xml
hudi依赖相关:搜索找到hudi-common位置
hudi-0.12.1中,此包使用的是maven-shade-plugin插件进行include hudi相关依赖,故我们也是用相同方式进行exclude
在的下一级(与同级)增加
<excludes><exclude>org.eclipse.jetty:*</exclude>
</excludes>
另外:如果是hudi-0.12.0版本,可能不是使用maven-shade-plugin插件进行include hudi相关依赖,而使用的是正常depency的依赖引入,那么需要做如下几个依赖的exclude
hudi-common
和hudi-client-common
增加exclude项【hudi-0.12.1不用此操作】
<exclusions><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion></exclusions>
Hive依赖相关:搜索hive-service的依赖位置,对如下几个依赖进行处理
hive-service
增加exclude项
<exclusions><exclusion><artifactId>servlet-api</artifactId><groupId>javax.servlet</groupId></exclusion><exclusion><artifactId>guava</artifactId><groupId>com.google.guava</groupId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.pentaho</groupId><artifactId>*</artifactId></exclusion></exclusions>
hive-jdbc
增加exclude
<exclusions><exclusion><groupId>javax.servlet</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>javax.servlet.jsp</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion></exclusions>
hive-metastore
增加exclude项
<exclusions><exclusion><groupId>javax.servlet</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.datanucleus</groupId><artifactId>datanucleus-core</artifactId></exclusion><exclusion><groupId>javax.servlet.jsp</groupId><artifactId>*</artifactId></exclusion><exclusion><artifactId>guava</artifactId><groupId>com.google.guava</groupId></exclusion></exclusions>
hive-common
<exclusions><exclusion><groupId>org.eclipse.jetty.orbit</groupId><artifactId>javax.servlet</artifactId></exclusion><exclusion><groupId>org.eclipse.jetty</groupId><artifactId>*</artifactId></exclusion></exclusions>
增加jetty单独依赖
<!-- 增加hudi配置版本的jetty --><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-util</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-webapp</artifactId><version>${jetty.version}</version></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-http</artifactId><version>${jetty.version}</version></dependency>
6.执行编译
mvn clean package -DskipTests -Dspark3.2 -Dflink1.14 -Dscala-2.12 -Dhadoop.version=3.2.4 -Pflink-bundle-shade-hive3
编译完成后,相关的包在packaging目录的各个模块中的target里:
[root@m1 packaging]# pwd
/opt/software/hudi-0.12.1/packaging
[root@m1 packaging]# ls
hudi-aws-bundle hudi-hadoop-mr-bundle hudi-presto-bundle hudi-utilities-bundle
hudi-datahub-sync-bundle hudi-hive-sync-bundle hudi-spark-bundle hudi-utilities-slim-bundle
hudi-flink-bundle hudi-integ-test-bundle hudi-timeline-server-bundle README.md
hudi-gcp-bundle hudi-kafka-connect-bundle hudi-trino-bundle
7.测试hudi-client
/opt/software/hudi-0.12.1/hudi-cli/hudi-cli.sh
出现如下即OK
Main called
===================================================================
* ___ ___ *
* /\__\ ___ /\ \ ___ *
* / / / /\__\ / \ \ /\ \ *
* / /__/ / / / / /\ \ \ \ \ \ *
* / \ \ ___ / / / / / \ \__\ / \__\ *
* / /\ \ /\__\ / /__/ ___ / /__/ \ |__| / /\/__/ *
* \/ \ \/ / / \ \ \ /\__\ \ \ \ / / / /\/ / / *
* \ / / \ \ / / / \ \ / / / \ /__/ *
* / / / \ \/ / / \ \/ / / \ \__\ *
* / / / \ / / \ / / \/__/ *
* \/__/ \/__/ \/__/ Apache Hudi CLI *
* *
===================================================================
10137 [main] INFO org.apache.hudi.cli.Main [] - Starting Main v0.12.1 using Java 1.8.0_181 on m1 with PID 6681 (/opt
/software/hudi-0.12.1/hudi-cli/target/hudi-cli-0.12.1.jar started by root in /opt/software/hudi-0.12.1/packaging)
10145 [main] INFO org.apache.hudi.cli.Main [] - No active profile set, falling back to 1 default profile: "default"
Table command getting loaded
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/software/hudi-0.12.1/hudi-cli/target/lib/log4j-slf4j-impl-2.17.2.jar!/org/slf4
j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/software/hudi-0.12.1/hudi-cli/target/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/
impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
11689 [main] WARN org.jline [] - The Parser of class org.springframework.shell.jline.ExtendedDefaultParser does not
support the CompletingParsedLine interface. Completion with escaped or quoted words won't work correctly.
11768 [main] INFO org.apache.hudi.cli.Main [] - Started Main in 2.031 seconds (JVM running for 11.806)
hudi->
简单测试编译后spark包可用性
需要有hadoop环境和spark
1.部署好hadoop集群、spark组件
这里不过多赘述如何安装这俩,spark只需要解压就行
spark下载:https://dlcdn.apache.org/spark/spark-3.2.2/spark-3.2.2-bin-hadoop3.2.tgz
2.拷贝编译好的包到spark的jars目录
cp /opt/software/hudi-0.12.1/packaging/hudi-spark-bundle/target/hudi-spark3.2-bundle_2.12-0.12.1.jar /opt/module/spark-3.2.2/jars
3.启动hadoop
4.spark-shell方式测试
-
启动spark-shell
spark-shell \--conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \--conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' \--conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
-
执行如下scala代码
// 设置表名,基本路径和数据生成器 import org.apache.hudi.QuickstartUtils._ import scala.collection.JavaConversions._ import org.apache.spark.sql.SaveMode._ import org.apache.hudi.DataSourceReadOptions._ import org.apache.hudi.DataSourceWriteOptions._ import org.apache.hudi.config.HoodieWriteConfig._val tableName = "hudi_trips_cow" val basePath = "file:///tmp/hudi_trips_cow" val dataGen = new DataGenerator// 插入数据 val inserts = convertToStringList(dataGen.generateInserts(10)) val df = spark.read.json(spark.sparkContext.parallelize(inserts, 2)) df.write.format("hudi").options(getQuickstartWriteConfigs).option(PRECOMBINE_FIELD_OPT_KEY, "ts").option(RECORDKEY_FIELD_OPT_KEY, "uuid").option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").option(TABLE_NAME, tableName).mode(Overwrite).save(basePath)// 查询数据 val tripsSnapshotDF = spark.read.format("hudi").load(basePath) tripsSnapshotDF.createOrReplaceTempView("hudi_trips_snapshot") spark.sql("select fare, begin_lon, begin_lat, ts from hudi_trips_snapshot where fare > 20.0").show()
也可以去/tmp/hudi_trips_cow/目录下查看是否有数据文件
-
执行示例
[root@m3 spark3]# bin/spark-shell --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' --conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension' Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 2023-01-16 01:40:40,221 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Spark context Web UI available at http://m3:4040 Spark context available as 'sc' (master = local[*], app id = local-1673851241535). Spark session available as 'spark'. Welcome to____ __/ __/__ ___ _____/ /___\ \/ _ \/ _ `/ __/ '_//___/ .__/\_,_/_/ /_/\_\ version 3.2.2/_/Using Scala version 2.12.15 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181) Type in expressions to have them evaluated. Type :help for more information.scala> import org.apache.hudi.QuickstartUtils._ import org.apache.hudi.QuickstartUtils._scala> import scala.collection.JavaConversions._ import scala.collection.JavaConversions._scala> import org.apache.spark.sql.SaveMode._ import org.apache.spark.sql.SaveMode._scala> import org.apache.hudi.DataSourceReadOptions._ import org.apache.hudi.DataSourceReadOptions._scala> import org.apache.hudi.DataSourceWriteOptions._ import org.apache.hudi.DataSourceWriteOptions._scala> import org.apache.hudi.config.HoodieWriteConfig._ import org.apache.hudi.config.HoodieWriteConfig._scala> val tableName = "hudi_trips_cow" tableName: String = hudi_trips_cowscala> val basePath = "file:///tmp/hudi_trips_cow" basePath: String = file:///tmp/hudi_trips_cowscala> val dataGen = new DataGenerator dataGen: org.apache.hudi.QuickstartUtils.DataGenerator = org.apache.hudi.QuickstartUtils$DataGenerator@2b2bcb4ascala> val inserts = convertToStringList(dataGen.generateInserts(10)) inserts: java.util.List[String] = [{"ts": 1673839191417, "uuid": "0b652f6a-1349-444e-8442-976fc149b589", "rider": "rider-213", "driver": "driver-213", "begin_lat": 0.4726905879569653, "begin_lon": 0.46157858450465483, "end_lat": 0.754803407008858, "end_lon": 0.9671159942018241, "fare": 34.158284716382845, "partitionpath": "americas/brazil/sao_paulo"}, {"ts": 1673565741975, "uuid": "20e0932b-5baa-4c74-a423-8e72a3c1dcef", "rider": "rider-213", "driver": "driver-213", "begin_lat": 0.6100070562136587, "begin_lon": 0.8779402295427752, "end_lat": 0.3407870505929602, "end_lon": 0.5030798142293655, "fare": 43.4923811219014, "partitionpath": "americas/brazil/sao_paulo"}, {"ts": 1673405567377, "uuid": "2417e9e6-c5a7-4399-b7a1-4b6e2fb90372", "rider": "rider-213", "driver"...scala> val df = spark.read.json(spark.sparkContext.parallelize(inserts, 2)) warning: one deprecation (since 2.12.0) warning: one deprecation (since 2.2.0) warning: two deprecations in total; for details, enable `:setting -deprecation' or `:replay -deprecation' df: org.apache.spark.sql.DataFrame = [begin_lat: double, begin_lon: double ... 8 more fields]scala> df.write.format("hudi").| options(getQuickstartWriteConfigs).| option(PRECOMBINE_FIELD_OPT_KEY, "ts").| option(RECORDKEY_FIELD_OPT_KEY, "uuid").| option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").| option(TABLE_NAME, tableName).| mode(Overwrite).| save(basePath) warning: one deprecation; for details, enable `:setting -deprecation' or `:replay -deprecation' 2023-01-16 01:41:57,422 WARN config.DFSPropertiesConfiguration: Cannot find HUDI_CONF_DIR, please set it as the dir of hudi-defaults.conf 2023-01-16 01:41:57,443 WARN config.DFSPropertiesConfiguration: Properties file file:/etc/hudi/conf/hudi-defaults.conf not found. Ignoring to load props file 2023-01-16 01:41:57,471 WARN hudi.HoodieSparkSqlWriter$: hoodie table at file:/tmp/hudi_trips_cow already exists. Deleting existing data & overwriting with new data. 2023-01-16 01:41:58,404 WARN metadata.HoodieBackedTableMetadata: Metadata table was not found at path file:/tmp/hudi_trips_cow/.hoodie/metadatascala> val tripsSnapshotDF = spark.| read.| format("hudi").| load(basePath) tripsSnapshotDF: org.apache.spark.sql.DataFrame = [_hoodie_commit_time: string, _hoodie_commit_seqno: string ... 13 more fields]scala> tripsSnapshotDF.createOrReplaceTempView("hudi_trips_snapshot")scala> spark.sql("select fare, begin_lon, begin_lat, ts from hudi_trips_snapshot where fare > 20.0").show() +------------------+-------------------+-------------------+-------------+ | fare| begin_lon| begin_lat| ts| +------------------+-------------------+-------------------+-------------+ | 64.27696295884016| 0.4923479652912024| 0.5731835407930634|1673405567377| | 93.56018115236618|0.14285051259466197|0.21624150367601136|1673491795155| | 27.79478688582596| 0.6273212202489661|0.11488393157088261|1673772916404| | 33.92216483948643| 0.9694586417848392| 0.1856488085068272|1673347004963| |34.158284716382845|0.46157858450465483| 0.4726905879569653|1673839191417| | 66.62084366450246|0.03844104444445928| 0.0750588760043035|1673613988097| | 43.4923811219014| 0.8779402295427752| 0.6100070562136587|1673565741975| | 41.06290929046368| 0.8192868687714224| 0.651058505660742|1673298206656| +------------------+-------------------+-------------------+-------------+
如果插入时报错:java.lang.NoSuchMethodError: org.apache.hudi.org.apache.jetty.server.session.SessionHandler.setHttpOnly(Z)V
去看下上文:解决spark依赖冲突小节解决
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4505227.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
新晋院士,任大学校长!
来源丨科研城邦中南林业科技大学官网“现任领导”页面更新显示,此前担任中南林业科技大学党委副书记的中国工程院院士吴义强,已于今年10月起任中南林业科技大学党委副书记、校长。吴义强院士是林业工程专家,主要从事木竹、秸秆资源高效利用与…...

基于PHP+小程序(MINA框架)+Mysql数据库的共享充电桩小程序系统设计与实现
项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信共享充电桩小程序系统,前台用户使用小程序,小程序使用微信开发者工具开发;后台管理使用基PHPMySql开发,开发工具使用phpstorm;通过后台添加…...

Matlab 官网培训 - 大型项目-风力发电机数据模型构建-Catching the Wind
前言: 这是Matlab在风力发电里面的研究风向变换并提供给风力发电机的DEMO,之前在Help文件里面推荐的后面下架了,在老版本里面翻出来看看。 在本章内容,除了介绍出MT在风能应用这种大型数据处理方法外,该培训工程师&a…...
html点击图片后图片移动,移动端点击图片放大图片,可左右切换图片
实现方式:借助插件:jquery.SuperSlide.2.1.3.js在使用之前需要先引入jquery然后再引入第三方插件!!!!点击缩略图显示的大图需要借助插件的一个属性::defaultIndeximage.png从你点击图…...

c语言方框透视原理,FPS游戏的方框透视+自瞄原理
目录一,自瞄准备工作:计算工作:准备工作:计算工作:一,自瞄基于所有的FPS游戏,都有一个人物结构,包含人物在地图上的三维坐标,人物的准心数据。而实现内存自瞄就是通过查找…...

Nginx反向代理Redis服务
Nginx反向代理Redis服务 Nginx代理Redis 第一步:redis 配置及启动 vim redis.conf port 6379 # bind 127.0.0.1 daemonize yes requirepass test1234redis-server /software/redis-5.0.5/redis.conf ps -ef |grep redis root 2081 1 0 09:23 ? …...

垃圾分类数据集+垃圾分类识别训练代码(支持googlenet, resnet, inception_v3, mobilenet_v2)
垃圾分类数据集垃圾分类识别训练代码(支持googlenet, resnet, inception_v3, mobilenet_v2) 目录 垃圾分类数据集垃圾分类识别训练代码(支持googlenet, resnet, inception_v3, mobilenet_v2) 1. 前言 2. 垃圾数据集说明 (1)垃圾数据集dataset1 &am…...

苹果电脑更改sd卡只读_sd卡反复变成只读解决办法
首先推荐两个网页:我们的相同之处就是用的fat文件系统,我的应用和第二个同志的一样,解决办法:移植一个修复工具dosfsck,其详细用法请参看:http://linux.about.com/library/cmd/blcmdl8_dosfsck.htmFAT (dosfsck)依次序检查以下&am…...
初识 PS CS6(五)___透视变换, 精确变换
一. 透视变换 先看原图: 先用鼠标拉开一个矩形,选中图片, 按Shift Ctrl Alt 键, 再拖动 图片 的一角, 即可做到透视变换 按 Enter 可确定操作。 二. 精确变换 按Ctrl T, 显示定界框, 在工具选项栏中&#…...

传奇服务器如何修改装备,架设传奇私服时怎样修改装备图标
满意答案pcecbec2013.09.03采纳率:47% 等级:12已帮助:14119人所有装备 在地上 包里 穿戴 都是对应的 只有衣服和武器有外观还有那个翅膀坐骑什么的要想修改 可以直接修改补丁算法好像就是stateitem.wil或Items.wil或DnItems.wil里面的序列…...

Keytool配置 Tomcat的HTTPS双向认证
Keytool配置 Tomcat的HTTPS双向认证证书生成 keytool 简介 Keytool是一个Java数据证书的管理工具, Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。 在keystore里,包含两种数据:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公…...

BAT、滴滴们都在鼓吹车联网,但谁知它的困境与真相
“每一年都是中国车联网的元年。”看到有关车联网的报道,不由发出这样的感慨。这当然不是什么好的评价。因为这意味着每年都在推倒重来。从08年国内开始提到车联网,到2010年后各大车厂陆续发布车载系统,每年都能看到轰轰烈烈的车联网论坛沙龙…...

ROM、RAM、DRAM、SRAM、SDRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。 ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 1:ROM …...

虚拟机Ubuntu20.04开机无网络连接图标
虚拟机Ubuntu20.04开机无网络连接图标 解决方案 1.右键虚拟机->设置->网络适配器,选择->NAT模式 2.停止network-manager服务 sudo service network-manager stop3.备份文件 sudo sudo cp /var/lib/NetworkManager/NetworkManager.state /var/lib/Netw…...

如何在JavaScript中合并两个数组并删除重复项
本文翻译自:How to merge two arrays in JavaScript and de-duplicate itemsI have two JavaScript arrays: 我有两个JavaScript数组: var array1 ["Vijendra","Singh"]; var array2 ["Singh", "Shakya"];I…...
使用DOTA_devkit进行旋转框mAP计算
最近做了个旋转框的任务,leader说要计算mAP和每个类的AP,任务比较急,自己写脚本的话,恐怕一下子搞不定。后面得到遥感界大佬杨学小哥的帮助,找到并运行成功DOTA_devkit这个工具,发现很强大。先贴出github地…...

系统移植——<board_name>名字确定
通过分析README文件可知,编译板子的命令为:make <board_name>_defconfig,那么该如何确定<board_name>? 方式一: 1、在uboot源码目录下执行:make fsmpla_defconfig 2、可见如下所示,打印错误…...

sklearn.exceptions.NotFittedError: This MinMaxScaler instance is not fitted yet. Call ‘fit‘ with app
出现这个异常的时候,首先先声明 min_max_scaler preprocessing.MinMaxScaler() # 注意:此处的tansform方法改成fit_transform函数方法 train_data_scaler min_max_scaler.fit_transform(train_data) test_data_scaler min_max_scaler.transform(test…...

传奇私服架设教程 2
要找到个好的,完整的服务端还真不容易,下载得到的目录格式如下: ?:\MIRSERVER ├─gate_server │ ├─LoginGate │ ├─RunGate │ └─SelChrGate ├─Mir200 │ ├─ConLog │ ├─Envir │ │ ├─Castle │ │ ├─Defines …...

python中unicode_Unicode 范围以及python中生成所有Unicode的方法
Unicode范围和表示语言Unicode是一个通用的字符集,包含了65535个字符。计算机在处理特殊字符(除了ASCII表以外的所有字符)时都是把Unicode按照一种编码来保存的。当然了,unicode的统一花了不少人的精力,而且不同编码到今天还有一些不兼容的问…...

JSP页面动态生成表格并为表格添加事件(续)
在上一篇文章中虽然已经为动态生成的表格添加了事件,但是运行后会发现还是有局限性的(选中一行后再选下一行这两行都会变色,肯定是不行的),在实际开发中会用到的可能就是选中表格中的某行记录并使之变色,你可以选第一行࿰…...

云场景实践研究第33期:神州优车
更多云场景实践研究案例,点击这里:【云场景实践研究合集】联合不是简单的加法,而是无限的生态,谁会是下一个独角兽 摘要:专注于汽车出行,汽车买卖和围绕汽车的相关金融行业的神州优车,曾一度通…...

火车票购买技巧
又到了春运,火车票格外的难抢,然而我对火车票的流程还不懂,这可怎么帮女朋友抢票啊。。。嗯,这里就学习一下吧。 第一部分:火车票购票的几种方式 一般,火车票分为网上订票(pc端和移动端…...

MDClub 轻量级网论坛源码
源码简介: MDClub 是一个漂亮、轻量的开源论坛系统。运行在 PHP 、MySQL 之上。 为了让它更轻量好用,造了不少轮子。富文本编辑器、UI 框架、 类 jQuery 的 DOM 操作库,全部自主开发 源代码地址:轻量级论坛源码.zip - 蓝奏云...

matlab组织的培训讲义,matlab培训讲义.doc
matlab培训讲义.doc x-0.6*sin(x)-0.3*cos(y) );f{2}inline( y-0.6*cos(x)0.3*sin(y) );holdonharrayfun((i)ezplot(f{i},[-1,1,-1,1]),[1,2]);set(h(1), color , r )-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81xyy-0.6cos(x)0.3sin(y)0X0.62249Y0.3815…...

覆盖率类型
覆盖率是衡量激励生成种类和功能点验证的量化指标。 覆盖率类型 覆盖率是衡量设计验证完备性的一个通用词语。随着测试逐步覆盖各种合理的组合,仿真过程会慢慢勾画出你的设计情况。覆盖率工具会在仿真过程中收集信息,然后进行后续处理并且得到覆盖率报告…...

Android 深入系统完全讲解(21)
关键性 EGLSurface 代码位置 继续再看看,代码跑到 C 里面去了。 然后关键点: 获取本地窗口,创建 Surface,然后 toEGLHandle 进行包裹,变成 EGL 上下文。 EGLSurface 。 绘制的设计本质逻辑 在这里就回归一点ÿ…...

什么是JavaBean?
JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。 --from…...

传奇私服搭建+微端
微端服务器引擎 数据库 客户端 版本 本来想发网盘链接,文件涉及敏感无法分享,需要的可以私下给你发。 企鹅号:1404765471 首先准备 1.三台服务器(服务端服务器 微端服务器 列表服务器)推荐Windows2008系统 2.私服…...

XTU,C语言,纸牌
题目描述 有2N张纸牌,标号从1到2N。一次洗牌,可以将牌的排列改成N1,1,N2,2,...,2N,N。请问这样洗牌几次,可以让牌回到原始的状态。比如N2时,1234->3142->4321->2413->1234 一共洗4次。 输入 每行输入一个整数N(1≤…...

畅通工程之最低成本建设问题 (30分)
某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可࿰…...

打造自己的专属游戏(传奇私服搭建)
想拥有你知道的专属游戏吗 想当GM吗 想在游戏里最强吗 教你架设传奇SF あ年轻帅靓正文章教程 需要的两个文件. DBC_2000.EXE (数据库)MirServer (SF服务端)OK 开始 下载好这两个文件之后 首先把DBC_2000.EXE 安装 安装很简单下一步下一步点到最后一步 安装好数据…...

java阶乘递归_java递归求阶乘,java实现递归阶乘详解
下面要给大家讲到的就是和java递归求阶乘相关的内容,那么你知道应该如何实现吗?一起通过下面的例子来详细的了解吧。话不多说,就直接给大家上代码了!public class Factorial{public static void main(String[] args){for (int i -5; i < 5; i){Syst…...

Questasim覆盖率数据分析
文章目录覆盖率浏览编辑模式验证计划表格采用TCL脚本编译仿真和收集覆盖率验证计划数据追踪覆盖率结果分析覆盖率贡献排名(rank)验证计划报告(文本/html)验证趋势分析(-trend)本文记录使用Questasim的一些coverage分析和验证管理方…...

2018免费的隐私保护工具
简评:好习惯 好工具 隐私。 我推荐了以下的免费工具列表,它们可以让你在各种广告、 ISP、社交媒体中更好地保护自己。 Email: TutaNota:位于德国的具有隐私保护意识的电子邮件提供商,这个国家拥有比美国更强大的数…...

如何搭建网课查题公众号
如何搭建网课查题公众号 本平台优点:免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库:题库后台http://daili.jueguangzhe.cn/ …...

电路分析:运放和三极管组成的恒流源电路
大家好,我是蜗牛兄。今天跟大家分享一个由运放和三极管组成的恒流源电路。希望对你有帮助。 本文将从以下五个方面对该电路进行阐述: 图1 讲解框图 一、运放和三极管的基本公式 1.1关于运放: 图2 运放 运放的计算过程中基本都会用到虚短和虚…...

如何学好MATLAB
今天早上在知乎上看到“如何学好MATLAB”问题中白小鱼的回答(链接https://www.zhihu.com/question/20111076/answer/757537410)让我想到了一些别的东西。 一般大的软硬件厂商都有对应的官方文档,案例,社区 ,培训等。如…...

十四、Java String 类
Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 创建字符串 创建字符串最简单的方式如下: String str "xxx"; 在代码中遇到字符串常量时,这里的值是 &q…...

传奇私服服务端制作详细教程
首 先,必须下载一个传奇私服的服务端,或者完整的商业版 现在一般下载的都是数据不全的,说什么可以开区的也是些N手货,数据容易错误. (所以要版本的话可以找我,我这里版本不多但是都是正确无误的.) 起个名字叫MirServer放在D盘!(不是一定要放在…...

vue项目的搭建及对应目录详解
一、安装好nodejs、npm 首先:先从nodejs.org中下载nodejs 然后:打开控制命令行程序(CMD):通过node-v 、npm -v命令检查是否正常 注:使用淘宝NPM 镜像大家都知道国内直接使用npm 的官方镜像是非常慢的,这里推…...

matlab如何进对图像进行透视变换,如何根据已知的内在和外在参数在Matlab中进行透视校正?...
对于那些在这么多个月后仍对此感兴趣的人,我的代码(http://www.csse.uwa.edu.au/~pk/research/matlabfns),尤其是homography2d.m函数 . 但是,您将需要钻机四个角的像素值 . 如果摄像机稳定固定,则需要执行一次 . 请参阅以下示例代…...

手机如何打开.html,手机怎么打开HTML
2回答2021-05-06浏览:9分类:其他问题回答:1、以小米手机为例,首先在手机上利用QQ接收一个HTML文件。2、然后在手机QQ中点击该HTML文件,选择用其他应用打开。3、然后在其他应用中选择浏览器,点击下方的仅此一…...

易语言一个窗口怎么解决注册多个快捷键混乱和无效问题
易语言一个窗口用精易模块热键注册函数,注册多个快捷键会出现混乱和无效的情况,如下情况: 会出现 一个快捷键无效,一个快捷键启动的程序 是另一个快捷键的 如何解决这个问题呢,可以用标签的”反馈事件“来注册热键也不…...

乐优商城_第1章_springboot
乐优商城_第1章_springboot 文章目录乐优商城_第1章_springboot0.学习目标1. 了解SpringBoot1.1.什么是SpringBoot1.2.为什么要学习SpringBoot1.3.SpringBoot的特点2.快速入门2.1.创建工程2.2.添加依赖2.2.1.添加父工程坐标2.2.2.添加web启动器2.2.3.管理jdk版本2.2.4.完整pom2…...

用于游戏开发和其他目的的光线投射教程
用于游戏开发和其他目的的光线投射教程前言介绍一个简短的历史什么是光线投射用于游戏开发的光线投射与光线追踪光线投射的局限性光线投射第 1 步:创造一个世界光线投射第 2 步:定义投影属性寻找到投影平面的距离光线投射第 3 步:寻找墙壁寻找…...

鸿蒙os系统与安卓10那个更好,华为鸿蒙OS系统与安卓、iOS有什么区别,有哪些优缺点...
原标题:华为鸿蒙OS系统与安卓、iOS有什么区别,有哪些优缺点华为鸿蒙系统,终于来了!昨日,华为召开Harmony OS 2及华为全场景发布会,正式推出了鸿蒙OS系统。据称,除了笔记本电脑,华为l…...

matlab怎么设置参数设置,matlab设置参数
matlab精度设置_计算机软件及应用_IT/计算机_专业资料。format 这个函数不是用于控制运算精度的,它只能控制结果显示类型。运 算的时候还是用 matlab 自己的精度,具体......参数:filename 是文件名,fmt 是图像文件的格式。如果图像文件不在 Matlab 默认路径中(当前默 认路径可用…...

免费YY协议下载
yY协议官网:http://www.yyfass.cn/ 协议更新完毕 yY小号商铺:http://shop.91kami.com/yyfass 发卡网更新完毕...

13-垃圾回收:垃圾数据是如何自动回收的?
在上一篇文章中,我们提到了 JavaScript 中的数据是如何存储的,并通过例子分析了原始数据类型是存储在栈空间中的,引用类型的数据是存储在堆空间中的。通过这种分配方式,我们解决了数据的内存分配的问题。 不过有些数据被使用之后&…...

js动态给textarea赋值
document.getElementById("new_analysed_news").valuedatas.weatherContent;转载于:https://www.cnblogs.com/guolsblog/p/6020520.html...

智能物业管理系统为物业带来哪些便利?
传统物业管理存在服务内容少、运营成本高、盈利渠道少以及业主满意度低等问题。快鲸物业管理直接冲击传统物业管理痛点和难点,指利用大数据、物联网等先进的信息技术手段,通过统一的大数据云平台,将物业的各个单位紧密连接起来,从…...

电脑常见垃圾数据删除
目录 1、微信过期文件 2、wps过期备份 3、浏览器的下载文件删除 3.1 谷歌浏览器 3.2 搜狗浏览器 3.3 360安全浏览器 3.4 QQ浏览器 3.5火狐浏览器 4、常见的系统访问日志或者浏览器插件记录等 1、微信过期文件 鼠标单击左下角图标——点击设置——点击文件管理——点击…...

MATLAB学习笔记3:MATLAB编程基础(前半)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳、拓展阅读。博客内容由 K2SO4钾 撰写、编辑,发布于 K2SO4钾 的个人投稿与华中师范大学HelloWorld程序设计协…...

nas做服务器虚拟化共享存储,为何使用NAS来做数据中心虚拟化存储?
如果说所有的虚拟化环境都有一个共同的主题,那就是数据中心虚拟化存储空间需求。尽管现在市场上更倾向于使用Storage Area Network (SAN)技术,但是Network Attached Storage (NAS)也能满足企业数据中心这方面的需求。随着数据中心中虚拟机镜像的数量越来…...

matlab预测缺失,matlab数据缺失预测
matlab 建立多元线性回归模型并进行显著性检验及预测问题例子; x[143...灰色预测模型的MATLAB 程序及检验程序_电子/电路_工程科技_专业资料。灰色预测模型的 Matlab 程序及检验程序 %灰色预测模型程序 clear syms a b; c[a b]; ......人口预测_非线性拟合_matlab源程序_数学_自…...

RxJava响应式编程学习笔记
1、概述 RxJava是一个著名的开源库,是ReactiveX(Reactive Extensions)的一种java实现。ReactiveX是一种响应式扩展框架,有很多实现,如RxAndroid,RxJS,RxSwift,RxRuby,RxCpp,RxGo等。RxJava有1.x和2.x两个主要的分支,分别代表着Rx…...

VB Instr 函数精讲
InStr(start, string1, string2, compare) start:设置开始查找的位置,可以省略,省略时默认从第一个字符开始查找, string1:接受查找的源字符,不可以省略 string2:要查找的目标字符࿰…...

传奇世界私服务器端制作,关于内网架设传奇世界私服问题的一些解答
关于内网架设传奇世界私服问题的一些解答传世服务端七个要开启的服务端文件 (换句话说:你要开传奇服务器,就要开这7个服务端文件)第一个 M2server.exe 服务器主控制端(在mirserver\MIR200文件架下找)第二个 DBserver.exe 游戏数据库服务器 (在mirserver\DBserver文件架下找)第三…...

系统移植(make <board_name>_defconfig/make menuconfig/make all)
1、make <board_name>_defconfig 是配置板子的默认缺省命令,其执行过程分析为 scripts/kconfig/conf --defconfigarch/../configs/fsmp1a_defconfig Kconfig scripts/kconfig/conf为elf可执行文件 --defconfigarch/../configs/fsmp1a_defconfig和Kconfig作为…...

合伙人退出机制如何设定
一、合伙人退出机制如何设定 合伙人退出机制: 退出条件在一定期限内(比如,一年之内),约定股权由创始股东代持。约定合伙人的股权和服务期限挂钩,股权分期成熟(比如4年)。股东中途退…...

机制
什么叫作机制 机制一词最早源于希腊文。原指机器的构造和动作原理。生物学和医学通过类比借用此词。生物学和医学在研究一种生物的功能(例如光合作用或肌肉收缩)时,常说分析它的机制。机制这个概念用以表示有机体内发生生理或病理变化时,各器官之间相互联系、作用和调节的方式。…...

CAS机制是什么?
首先我们需要了解为什么有CAS机制的存在?那我们就不得不先知道互斥同步和非阻塞同步。 互斥同步 互斥同步面临的主要问题是进行线程阻塞和唤醒带来的性能开销,因此这种同步也叫阻塞同步。互斥同步属于悲观的并发策略,其总是认为只要不做同步…...

沪深证券交易机制概述
证券交易机制是证券市场具体交易制度设计的基础,如上海证券交易所和深圳证券交易所的集合竞价和连续竞价,其设计依据就是定期交易和连续交易的不同机制; 而上海证券交易所固定收益平台交易中一级交易商提供的双边报价,就采用了报…...

C语言肥胖指数,身体肥胖指数在上海地区中国人中的应用初探
摘要:目的探讨身体肥胖指数(BAI)在上海地区中国人中的适用性.方法选取2013年至2014年上海地区年龄20~81岁人群487人为研究对象.分别以总组(全部研究对象),性别,年龄,体质指数(BMI)进行分组分析.采用磁共振成像技术(MRI)测量腹部皮下脂肪面积(SA),腹内脂肪面积(VA)及…...

CSDN网站勋章获取介绍
持之以恒:已下线,目前无法获取 签到勋章:签到新秀、签到达人、签到王者都已下线,目前无法获取 分享勋章:分享学徒、分享小兵、分享达人、分享精英、分享宗师、分享王者、至尊王者都已下线,目前无法获取 …...

内存映射MMAP和DMA【转】
转自:http://blog.csdn.net/zhoudengqing/article/details/41654293 版权声明:本文为博主原创文章,未经博主允许不得转载。 这一章介绍Linux内存管理和内存映射的奥秘。同时讲述设备驱动程序是如何使用“直接内存访问”(DMA&#…...

基于mips架构的uboot 启动流程 (2)
对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程,这个引导程序就叫作 Bootloader 。 Bootloader 是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适…...

第六章 PL/SQL与Oracle间交互
第六章 PL/SQL与Oracle间交互一、PL/SQL支持的SQL一览 PL/SQL扩展了SQL,变得更加强大和易用。我们可以用PL/SQL灵活安全地操作Oracle数据,因为它支持所有的SQL数据操作语句(除 了EXPLAIN PLAN),事务控制语句,函数,伪列…...

Ardupilot Pre-Arm安全检查程序分析
目录 目录摘要第一:Pre-Arm简介第二:Pre-Arm报错需知 1.使用前准备 使用Pre-Arm信息分析不能解锁原因:2.解锁失败的原因3.解锁失败的原因(自己对照官网进行翻译)#1解锁前安全检查#2采用GCS识别是什么导致的Pre-Arm报错#3错误信息 RC故障(即发射机/接收机故障):(2)气压…...

以太坊中常见的代码安全问题以及在Ethernaut平台解题的演示
以太坊中常见的代码安全问题 原文链接:郭老师备课资料 下面列出了已知的常见的 Solidity 的漏洞类型: Reentrancy - 重入Access Control - 访问控制Arithmetic Issues - 算术问题(整数上下溢出)Unchecked Return Values For Lo…...

python ATM + 购物车
一、项目介绍 ATM 购物商城程序其实是通过模拟银行ATM机功能以及电商平台<购物商城程序>功能的实现,将前面大部分所学的知识点串联起来, 更好的去巩固python基础。这也是在学习python这门语言的第一个程序。项目需求如下:- 额度 15000…...
如何避免被以太坊天价 gas 费 PUA?
近日,随着 ETH 价格突破年内新高一度甚至超过 400 美元(截稿日前价格),ETH2.0 多客户端测试网 Medalla 即将启动,Yield Farming 热潮持续火爆等多重利好,让很多重仓 ETH 的朋友喜笑颜开的同时,涨…...

Scanner类的close()用法的注意点
在写练习的时候碰到了NoSuchElementException异常,编译器显示是Scanner类的使用产生的异常。 代码如下: package javaExp5; import java.util.Vector; import java.util.Scanner; public class Exp56 {public static void main(String []args){Scanner…...

FAST-LIO2:快速且直接的激光雷达与惯导里程计
1. 摘要 本文介绍了FAST-LIO2:一种快速、稳健且通用的激光惯性里程计框架。FAST-LIO2建立在高效的紧耦合迭代卡尔曼滤波器的基础上,有两个关键的创新之处可以实现快速、稳健和准确的激光雷达导航(和建图)。第一个是不提取特征直接…...

python模拟银行_python练习之银行模拟系统
创建 atm.pyfromcard import Cardfromuser import Userimport randomclass Atm(object):def __init__(self):self.user_dict{}def print_ui(self):print("".center(50, "*"))print("*".ljust(16, " "), "开户(1) 查询(2)", …...

Python2中使用input出现的NameError: name ‘***‘ is not defined问题原因及解决办法
上Python官网上查询了一下文档,原因定位如下: Python2中对于input函数来说,它所希望读取到的是一个合法的Python表达式,我的Python版本为2.7,因此出现这个问题,而在Python 3中,input默认接受的是…...

BUUCTF-WEB(1-16)
BUUCTF-WEB(1-16) 1.[HCTF 2018]WarmUp 根据点开靶机时的一个提示:代码审计,可知主要考察代码审计,在点开靶机之后,出现了一个滑稽表情,右键检查网页源码,发现在图片的上方有个…...

mongodb java 日志分析_如何禁用mongoDB Java驱动程序日志记录?
我正在尝试禁用的日志输出mongo-java-driver-3.0.0。在加载mongo驱动程序之前,我曾尝试在应用程序的开头设置这些设置,但没有帮助。// Enable MongoDB logging in generalSystem.setProperty("DEBUG.MONGO", "false");// Enable DB …...

php curl返回body,获取CURL中返回的body内容
在 PHP 使用 CURL 来做与远程 API 的数据交互,在某些情况下,curl_exec (或 curl_multi_getcontent)返回中会出现 header 和 body 的混合体,最近在做 PHP 与 NodeJs 写的 webApi 时就遇到这种情况,解决的方法就只能想办法将 headle…...

php字符串处理函数
1 <?php2 // ----------------------------------------------------------------------3 // | EBACERA [ WE CAN DO IT JUST THINK IT ]4 // ----------------------------------------------------------------------5 // | Copyright (c) 2016 http://www.ebacera.com A...

asd f sdfsd f afsda fsdasC ASDF
SDF SDF SDF SDF SDF SDAF SDF GDF GDF DFG DFG DFG DG D...

adf sdfsd
sdf sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyhdfh dfhgfdhg sdfsdfrtyh...

asdfsdfsd
#include <iostream> #include <map> #include <stack> using namespace std; int partaction(int *a,int left,int right) { int tmpa[left]; while(left<right) { while(left<right&&a[right]>tmp) { right--; } if(righ...

sdfsd
sdafsdf...

Linux三剑客(grep、sed、awk)
Linux三剑客 正则表达式 正则表达式(regular expression)? 匹配有规律的东西:手机号、身份证号、匹配日志; 使用一些符号表达一些重复出现、大小写、开头/结尾含义; 应用场景 Linux三剑客使用,开发语言&a…...

神秘的控制-到底谁在操作你?
有好友说“认知否定”这种攻击方式太复杂了,几近于玄学,让我详细讲讲进行认知攻击有什么通俗易懂的东西。因此为了满足好友的好奇,就尝试写篇小的科普文章来介绍一些小的知识点,说的不对的地方也欢迎指正。 1.首先讲讲标题所说的神…...

【JAVA SE】第七章 继承和多态
第七章 继承和多态 文章目录第七章 继承和多态一、继承1.概念2.继承的特性2.继承关键字3.构造器4.子类重写父类方法的规则二、多态1.概念2.多态的优点3.多态存在的三个必要条件4.虚函数5.多态的实现方式6.什么时候创建多态对象一、继承 1.概念 继承是java面向对象编程技术的一…...

计算机考试前的心情作文,考试要写在考试时紧张的作文(共七篇)
紧张的考试 海盐县沈荡小学六(3)班“叮铃铃,叮铃铃”上课了,王老师把卷子传下来,准备进行考试。我匆匆忙忙地把课本放好,试卷早已传下。我一看到试卷,马上傻了眼,呆若木鸡。咦,怎么有几题都没见过呀&…...

负数(一):猎人的过冬“法宝”
【导语】:用未来的“获得”去换取现在的“所需”,此刻得到的不只是“所需”还有“负债”,用什么数字来表示负债呢?我们可以用上次讨论的自然数来表示拥有的苹果数量,例如,我有5个苹果。但是如果我问别人借了…...
在“打破次元壁”这件事上,以太坊做得超乎你想象
原文来自 Decrypt 作者 | Robert Stevens译者 | 秦晓峰出品 | Odaily星球日报(ID:o-daily)以太坊是目前最大的用于去中心化应用程序(DAPP)的区块链网络,也是市值第二的加密货币。自 2015 年诞生以来&#…...
Java封装、继承、多态
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父…...

JS实现新闻播报滚动效果
效果图 1. 横向滚动播报 2. 纵向滚动播报 横向滚动 <template><div class"wrapper"><div class"top"><div class"top-cont" ref"top_cont"><div class"begin" ref"top_begin&q…...

Python编程基础与应用(陈波著)微实践
微实践1——鸡兔同笼 有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 解决方案:iHead 35 iFeet 94 a iFeet - iHead*2 iRabbits a/2 iChicken iHead - iR…...

《我是一只IT小小鸟》连载之五——掉进读书的兔子洞(1)
/*本期开始连载徐宥的故事。他目前在美国留学,是一个计算机专业在读Ph.D.,在网上开有博客——4G spaces,并写下了《编程珠玑番外篇》等一系列精彩的文章。*/ 掉进读书的兔子洞 徐宥 大学前: 数理化 好老爸 虽然标题是"我…...

java基础----(三大特性:封装,继承,多态)
封装 将对象的转态信息隐藏在对象内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对内部信息的访问和操作。 封装的好处: 隐藏类的实现细节使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑…...

GC标记-清除算法
GC标记-清楚算法 面试官:什么是GC标记-清除算法?我:就是由标记阶段和清除阶段组成的垃圾回收算法。面试官:然后呢?我: 我已经说完了啊。面试官:下一位。我: 我说错了吗?面试官:你没…...

day3 203移除链表元素 707设计链表 206反转链表
203 移除链表元素 定义一个虚拟头节点 这样子可以不用分开处理头结点 统一了写法 思路就是找到cur -> next -> val,借助前一个节点,直接连接到后一个 class Solution { public:ListNode* removeElements(ListNode* head, int val) {//new一个新指…...

2022年神仙打架,各家主机PC游戏厂商都拿出了招牌菜
此前,游戏新知曾报道过2022年值得关注的手游作品,有不少读者在文章评论区提出,2022年PC与主机上的新作品同样值得期待,因此游戏新知也对未来一年的PC与主机游戏作品做了盘点。 需要注意的是,这份名单并非涵盖了2022年…...

【MyBatis】| MyBatis核⼼配置⽂件详解
目录 一:MyBatis核⼼配置⽂件详解 1. Mybatis核心配置文件之多环境 2. Mybatis事务管理器 3. 对数据源的深度剖析 4. properties和mapper标签的配置和使用 一:MyBatis核⼼配置⽂件详解 (1)configuration:根标签&a…...

【英文】地名写法
https://wenku.baidu.com/view/97eb546f4a35eefdc8d376eeaeaad1f3469311d4.html 中文: 国省市 区路号 姓名 —————— 英文: 姓名 号路区 市省国 中文地名对应英文X室Room XX号(户)No.X36层36th FloorB座Tower B甲AX号楼Buil…...

中英文地址的写法(转贴)
中英文地址的写法:***室 / 房 RM. *** ***村(乡) *** Village ***号 No. *** ***号宿舍 *** Dormitory ***楼 / 层 *** /F ***住宅区 / 小区 *** Residential Quater 甲 / 乙 / 丙 / 丁 A / B / C / D ***巷 / 弄 *** Lane ***单元 Unit *** ***号楼 /…...

英文地址的书写
填写英文地址目前还是蛮需要的,综合网上文章和自己实际填写经验,整理如下: 把中国地址翻译成英文,有三种写法:英文书写、汉语拼音书写、英文和汉语拼音混合书写。要用哪种写法,要看你的应用! …...

更新日志写法
很多人写的更新日志要么不写,要么看不懂,严重影响了后续的测试、上线的通知、后期的维护查看,所以我把flyme的更新日志搬出来大家看看,每句话要做到言简意赅 新增 输入法 调整 emoji 表情进入一级入口,增加大量 emoji…...

引用地址的写法,同级目录,上级目录,下级目录
一般的话 ../ 代表上一级目录 ./代表同级目录 直接写img/aa.jpg代表同级目录 php中好像不能像asp那样用“/”表示根目录,代之以$_SERVER[DOCUMENT_ROOT],其它则相同:../表示向上一层。./表示当前层。假如现在a/b/c/s.php要调用根…...

background 组合写法_简单学习css组合与CSS嵌套的写法
简单学习css组合与CSS嵌套的写法互联网 发布时间:2009-04-02 19:38:24 作者:佚名 我要评论网页制作Webjx文章简介:简单学习css组合与CSS嵌套的写法.CSS组合你不必重复有相同属性的多个选择符,你只要用英文逗号(,)隔开选择符…...

英文地址书写方式
一、寄达城市名的批译: 我国的城市名有用英文书写的,也有用汉语拼音书写的。例如“北京”英文写为“Peking”,汉语拼音写为“Beijing”,二者虽然都是用拉丁字母,但拼读方法不同,前者是以音标相拼࿰…...

中英文地址的写法
中英文地址的写法~如果不会写的或者忘记的可以看看 ***室 / 房 RM. *** ***村(乡) *** Village ***号 No. *** ***号宿舍 *** Dormitory ***楼 / 层 *** /F ***住宅区 / 小区 *** Residential Quater 甲 / 乙 / 丙 …...

css 中英文换行的相关写法
强制换行用white-space的normal,pre-wrap,pre-line换行,即使有overflow: hidden; text-overflow: ellipsis;也不影响换行。 值描述normal默认。空白会被浏览器忽略。pre空白会被浏览器保留。其行为方式类似 html 中的 <pre> 标签。now…...

英文地址的写法
许多网友问我英文地址的写法,归纳了一些如下。 (一)格式: 英文地址一般的写法与我们描述的相反,由小写到大;其次要注意标点符号和英文字母的大小写。格式如下: (1)*** 室…...

备份转贴:英文地址写法
(一)格式:英文地址一般的写法与我们描述的相反,由小写到大;其次要注意标点符号和英文字母的大小写。格式如下:(1)*** 室 / 房 :RM.*** ; (2&#…...

DTO 与 PO的相互转换
目录 常见Bean映射框架 Dozer Orika MapStruct ModelMapper JMapper 测试模型 转化器 OrikaConverter DozerConverter MapperStructConvert JMapperConvert ModelMapperConverter 测试 平均时间 吞吐量 SingleShotTime 采集时间 DTO(Data Transfer …...

Redis 源码简洁剖析 - SDS 字符串
C 语言的字符串函数 C 语言 string 函数 ,在 C 语言中可以使用 char* 字符数组实现字符串,C 语言标准库 string.h 也定义了多种字符串操作函数。 字符串使用广泛,需要满足: 高效的字符串操作,比如追加、拷贝、比较、…...

redis源码学习-03_动态字符串SDS
概述 简单动态字符串(SDS, Simple Dynamic String)是 Redis 底层所使用的的字符串表示(而不是使用传统的 C 字符串)。 redis需要的不仅仅是一个字符串变量,而是一个可以被修改的字符串值,我们设置的所有键…...

GBase 8s部署SDS集群
一、环境准备 1、主备服务器 SDS主备服务器需要满足以下前提条件。 主备服务器的GBase 8s版本完全相同。 主备服务器的硬件和操作系统版本相同,建议完全相同。 2、准备共享存储 SDS支持如下存储管理方式。 并发裸设备:CLVM。 并发文件系统:G…...

Redis数据结构-字符串对象(SDS)
Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS…...

01 关于 sds
前言 关于 redis 的数据结构 sds 相关介绍主要围绕着如下测试用例, 来看看 sds 的存储, 以及 相关的 api 本文的 sds 相关代码 拷贝自 Redis 2.9.11 (1ce33fe5/1) 64 bit 我这的代码基于 redis-3.0-annotated-cmake-in-clion, 来自于 https://github.com/htw0056/redis-…...

深入解读Redis之数据类型解析-SDS
Redis源码之数据类型解析-SDS 当前分析Redis版本为6.2,需要注意。 SDS(Simple Dynamic Strings),简单动态字符串,主要用于存储字符串和整型数据(二进制安全)。在其头文件中是这样定义typedef …...

redis源码之sds
sds是redis中一个很重要的数据结构,今天看学一下它源码的实现。 typedef char *sds;/* Note: sdshdr5 is never used, we just access the flags byte directly.* However is here to document the layout of type 5 SDS strings. */ struct __attribute__ ((__pac…...

redis源码--SDS结构解析
众所周知,redis使用的是SDS代替C字符串处理,其原因主要有三见下。 目录 1 特点 2 SDS结构 3 结构函数 4 紧凑型头结构 5 总结 1 特点 C语言特点: 1 O(n)字符串长度访问复杂度。 2 不能存储带\0的二进制字符串。 3 内存访问碎片严重。 …...

数字温湿度传感器DHT11模块资料
模块实例https://blog.csdn.net/qq_38393591/article/details/111269994 1.1产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器…...

2023面试题汇总二
一、CSS面试题 1. 清除浮动的方式有哪些? 为什么要清除浮动?因为浮动的盒子脱离标准流,如果父盒子没有设置高度的话,下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置cle…...

孩子用什么样的灯对眼睛没有伤害呢?2023这样的灯光更护眼
现代社会高速发展,越来越多的人开始重视身体健康,尤其是很多家长,非常关心孩子的眼睛健康问题。现如今我们的青少年儿童近视率常年高居世界第一,情况不容乐观,这个与习惯、学习、照明环境等众多因素有关。 其中照明环境…...

GitHub的Repository权限将public转为private(转)
转自: GitHub的Repository权限将public转为private 2019年1月7日,GitHub CEO Nat Friedman 于官方博客公开发文,称“New year, new GitHub”,宣布从此将免费无限地为普通用户提供私有仓库服务。 因此,我们可以将之前创建的公开仓库…...

《钢琴调律原理及应用》 笔记
【第一章 绪论】 美国人威廉布雷德怀特于 1917 年发表了世界上第一部关于钢琴调律理论与技术的著作,书名为《钢琴调律与相关技术》 福岛琢郎于1950年发表一部名为《钢琴的构造调律修理》的专著 80年代初,在沈阳音院任教的张琨先生写出了我国第一部有关…...

Java OFD文件转PDF、图片、SVG、TXT、HTML
OFDRW 提供了将 OFD 文档导出为其他格式文档的能力,如导出为 PDF、图片、SVG、TXT、HTML 等。 OFDRW 转换模块在 2.0.0 之后抽象了多种文档导出接口,使用统一的 API 实现 OFD 文档导出功能。 之前整合的 2.0.0 以前版本,可参考 OFD 文件转换…...

WuThreat身份安全云-TVD每日漏洞情报-2023-03-23
漏洞名称:Windows Installer 特权提升漏洞 漏洞级别:高危 漏洞编号:CVE-2023-21800,CNNVD-202302-1117 相关涉及:Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD…...

gan实战(DCGAN、)
一、DCGAN 1.1 参数 (1)输入:会被放缩到6464 (2)输出:6464 (3)数据集: 1.2 实现 import glob import torch from PIL import Image from torch import nn from torch.u…...

视频编辑场景下的文字模版技术方案
作者 | Lok’tar ogar 导读 本文根据度咔剪辑APP文字模版开发实践,分享视频编辑场景下,静态文字模版渲染能力的技术方案。作为富文本渲染方案的父集,此技术方案可以扩展到其他需要复杂富文本渲染的场景下。 全文6745字,预计阅读时…...

移动应用架构设计:如何转变开发流程
移动应用架构设计:如何转变开发流程 2023 年掌握移动应用程序架构的指南(附案例研究) 如果他们要解决这个问题,开发人员需要了解移动架构设计的最佳实践,使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…...

【服务器数据恢复】误操作导致NetApp存储卷丢失的数据恢复案例
服务器数据恢复环境: 某公司的一台NetApp某型号存储; 几十块磁盘组建两组存储池,两组存储池互为镜像; 存储池划分卷并映射到ESXI作为数据存储使用,卷内有数百台虚拟机。 服务器故障: 管理员操作失误导致卷…...

QML- QML视觉元素类型
QML视觉元素类型一、概述一、图像类型三、共享视觉属性1. 不透明度和可见性2. 转换(转置)一、概述 对于最基本的视觉效果,Qt Quick提供了一个 Rectangle 类型来绘制矩形。这些矩形可以用颜色或垂直渐变来着色。 Rectangle 还可以在矩形上绘制…...

nodejs+vue+elementui水果购物商城vue
水果购物商城系统的主要使用者分为管理员;个人中心、用户管理、水果分类管理、水果信息管理、系统管理、订单管理;前台首页;首页、水果信息、个人中心、后台管理、购物车、人工服务;用户后台;首页、个人中心、水果信息…...

从NVIDIA GTC大会,看AI算力行业信号
从NVIDIA GTC 2023这场全球行业盛宴,我们可以解读出AI算力行业的哪些重要信号?一年一度的NVIDIA GTC如期而至汇聚了全球AI与元宇宙开发者的目光焦点,NVIDIA GTC 2023于美国当地时间3月20日如期而至。众所周知,作为全球一年一度的行…...

Docker 在未来应用场景的有哪些?
Docker是一种流行的容器化技术,可以将应用程序和其依赖项打包到一个可移植的容器中,使得应用程序可以在任何平台上运行。Docker的应用场景非常广泛,下面列举了一些常见的应用场景: 应用程序部署和管理:Docker可以使应…...

部署+使用集群的算力跑CPU密集型任务
我先在开头做一个总结,表达我最终要做的事情和最终环境是如何的,然后我会一步步说明我是如何搭建。 要做的事情 尝试如何使用多台机器的算力共同跑一个CPU密集型或者GPU密集型的任务。这里以CPU密集型为例子。 在多台机器搭建MPI环境,构建…...

MATLAB算法实战应用案例精讲-【智能优化算法】森林优化算法(FOA) (附MATLAB代码实现)
目录 前言 算法原理 算法思想 (一)树的初始化 (二)局部播种...

后端接口返回近万条数据,前端渲染缓慢,content Download 时间长的优化方案
前言 性能优化,是前端绕过不去的一道门槛,甚是重要。最近一年,也很少有机会在项目中进行前端性能优化,一直在忙于业务开发。 最近终于是来了机会,遇到了这样的场景,心里也甚是激动,写个随笔记…...

三天吃透MongoDB面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...

游戏服务器开发指南(一):设置合适的Socket选项
前言 上周写完系列序言,得到不少读者朋友的关注,这也给了我额外的动力。写东西就是这样,都希望获得更多的关注,如果写出来没什么人看,那就无异于闭门造车、自娱自乐。欢迎朋友们在文后留言,我也会根据大家…...

为什么电路板上的线路总是弯曲的?
不知道小伙伴有没有发现,电路板上的线路虽然密密麻麻,但线路总是弯曲延伸而不是直径到达,毕竟学过小学数学都知道:两点之间直线最短,所以为什么要花那么多线路来设计PCB板?难道不能直接设计成直线。小伙伴们…...

计算机网络(第十三弹) --- ARP 协议及子网掩码的相关概念
ARP 协议及子网掩码1 ARP 协议2 子网掩码1 ARP 协议 ARP 协议就是介于数据链路层和网络层之间的协议; 建立了主机 IP 协议和 MAC 地址的映射关系. 在网络通讯时, 源主机的应用程序知道目的主机的 IP 地址和端口号, 却不知道目的主机的硬件地址, 数据报首先是被网卡接收到再去处…...

Tlsr8258开发-小问题汇总
默认情况如果不指定时钟源,则使用外部晶振,并且默认为16M如果想要在一开始就调用读取flash的函数,一定要先cpu_wakeup_init(); delay_us(150)。我这里是通过读取flash中的值,然后来选择初始化BLE还是2.4G如果想要在BLE…...

python 基础系列篇:四、编写两个简单的小游戏(猜数字及2048)
python 基础系列篇:四、编写两个简单的小游戏(猜数字及2048)猜数字游戏游戏进程示例需求分析并逐步实现1、使用随机函数包 random2、记录用户输入3、提前做好的结果反馈4、判定A的实现5、判定B的范围6、判定B的判定内容7、判定B的实现8、用户…...

网络安全——网络层安全协议
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 引言 一.网络攻击与防御 1.常见的网络攻击 (1)窃听…...

8种特“坑”的 SQL 写法,性能降低100倍
给大家分享几个SQL常见的“坏毛病”及优化技巧。 SQL语句的执行顺序: 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type、 name、 create_time 字段上加组…...

用c++手写一个带箭头的线
根据经纬度,和uv。算出开始点位和结束点位,并在结束点位画一个小箭头。根据需要调整0.2和0.8以及箭头的headSize 。 #include <iostream> #include <vector> #include <cmath> #include "matplotlibcpp.h" namespace plt …...

JVM-Java虚拟机(二)
执行引擎概述1.执行引擎是 Java 虚拟机核心的组成部分之一。2.JVM 的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被 JVM 所识别的字节码指…...

Golang中的边界检查和边界检查消除(bounds check elimination)
边界检查大家都知道Golang是内存安全型语言,在根据索引获取数组/切片元素时,Golang runtime 会检查索引是否超出范围,如果索引超出了范围,程序就会 panic,这种机制叫做边界检查(bounds check)。…...

发现一个不错的golang框架,文档非常详细,自带代码生产dao工具,可以快速的进行项目开发,还有社区也是非常的活跃
目录前言1,关于goframe框架介绍2,创建Dao代码3,测试Dao的方法4,总结前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/129698017 未经博主允许不得转载。 博主CSDN地址是:https://blog.csdn…...

使用Python开启局域网传送数据(3):使用 simple_http_server 实现上传下载功能
💡温馨提示:本文测试环境:windows11 64位、Python3.9。 摘要:本文将介绍在 Windows 系统中如何使用 Python 的第三方模块 simple_http_server 实现在局域网中传送数据,仅限于别人上传文件给自己的功能,不具…...

Flink 第1章 基础介绍和特性
一 Flink概念 1.1 Flink的概念 Flink是一个框架和分布式处理引擎,用于对无界和有解数据流进行状态计算。如下图所示: 1.2 Flink的应用场景 1.3 Flink的目标 1.高吞吐量 2.低延迟 3,结果的准确性和良好的容错性。 1.4 Flink与spark的区别…...

JavaScript查找数组内的元素的方法 filter() find includes findIndex lastIndexOf indexOf
需求:查找数组内元素6是否存在 let arr [1, 3, 6, 5, 7, 6]; 方法1、indexOf方法 let index1 arr.indexOf(6); console.log(index1);//2方法2、lastIndexOf方法 从右至左查找,找到返回索引,找不到返回-1 let index2 arr.lastIndexOf(6)…...

mybatis-plus的批量新增insertBatchSomeColumn
MyBatis-Plus 是基于 MyBatis 进行封装的一套优秀的持久层框架,它提供了丰富的便捷操作方法和强大的代码生成器,大大简化了 MyBatis 的使用。在 MyBatis-Plus 中,我们可以使用 insertBatchSomeColumn 方法来实现批量新增指定字段的操作。 myb…...

2023-第十四届蓝桥杯冲刺计划!
💬前言 💡本文以目录形式列举大纲,可根据题目点击跳转 🌈冲刺阶段目的:把握高频重点,结合基础算法和常考题型总结,用真题进行模拟练习 根据自己的能力熟练目前已掌握的算法,不会的还可以暴力 ⏳最后三个星期大家一起冲…...

通过Linux串口实现树莓派与电脑通信
目录 一 串口说明 二 USB—TTL模块 ● usb-ttl模块接口 三 串口通信常用的API 四 修改串口的配置文件 五 串口通信代码验证 ● 发送一个字符/字符串到串口 ● 树莓读取串口数据(字符) ● 代码拓展(双方) 一 串口…...

「解析」Linux使用Screen挂起线程
之前一直使用 nohup进行挂起,但是在进行训练的时候发现通过Pyhton脚本调用的时候虽然可以挂起,但是貌似没办法真正的执行命令,目前还不知道具体什么原因造成的,因此更加推荐 screen 进行挂起,并且 screen 还可以跨设备…...

【Unity 手写PBR】Build-in管线:实现直接光部分
写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技术美术图形部分】PBR直接光部分:Disney原则的BRDF和次表面散射模型 【技术美术图形部分】PBR全局光照:理论知识补充 算是对光照模型计算的查漏补缺吧ÿ…...

Java Druid,反射,反射封装DBUtil
零、 复习昨日SQL注入预处理语句String sql "select * from user where id ?"; PreparedStatement ps conn.preparedStatement(sql); ps.setInt(1,id); // ps.setDate(1,new java.sql.Date(user.getDate().getTime())) ps.executeQuery();DBUtil一、数据库连接池…...

5G-Advanced时代,移动终端将迎来哪些新特性?
去年6月,3GPP R17版本正式冻结,标志着5G第一阶段的技术研究基本完成。接下来,5G将迈入以R18、R19、R20为代表的第二阶段,开启后半段的征程。这个后半段,3GPP将其定义为5G-Advanced阶段。回顾过去几年的5G发展ÿ…...

设计模式:单例设计模式总结
单例模式的概念 保证一个类在内存中的对象唯一性(单个实例设计模式) 应用场景 单例模式一般用在对实例数量有严格要求的地方,比如数据池,线程池,缓存,session回话等等。数据库连接池的设计一般也是采用单…...

Applications of fractional calculus in computer vision: A survey
Abstract 分数阶微积分是一种抽象的概念,探索了具有非整数阶微分的解释。很长一段时间以来,它被认为是一个纯理论问题。然而,引入了几个有用的分数阶导数定义,扩展了其应用范围。在计算能力和算法表示的支持下,分数阶…...

报名开启 | 共赴一场 Flutter 的春日宴
2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕成功举办,吸引了全球范围内开发者广泛的关注和反馈。为了扩大 Flutter Forward 活动在全球的影响力,并以中国本地语言回顾最新的 Flutter 相关发布,谷歌开发者社区 (GD…...

JVM知识整理
JVM知识整理 JVM的主要组成部分 JVM包含两个两个子系统(类加载子系统和执行引擎)和两个组件(运行时数据区与和本地库接口) 类加载子系统:根据给定的全限定类名来加载class文件到运行时数据区域中的方法区。执行引擎&a…...

iptables-ipset仅允许国内访问---端口白名单
前言:境外肉鸡攻击有点多,并业务无境外访问需求,IDC机房网络防火墙无法实现8K多条的china大陆地址导入;为实现仅china大陆地址访问,在业务端口如这里的80,使用iptables防火墙ipset过滤实现访问控制,对于访问…...

Docker安装记录
一、安装过程 1.安装Docker Engine arm64 推荐使用官网安装中的Install from a package docker官网安装Docker Engine Docker Engine(arm64版本)的相关deb包下载地址 amd64 卸载系统自带的旧版本 sudo apt-get remove docker docker-engine docke…...

聚观早报 | 拼多多驳斥Google的指控;80%美国人工作将被AI影响
今日要闻:拼多多驳斥Google“恶意软件”的指控;80%美国人工作将被AI影响;iPhone 15 Pro设计图上热搜;贾扬清离职阿里投身AI大模型创业;OPPO Find X6 系列发布拼多多驳斥Google“恶意软件”的指控 3 月 21 日࿰…...

【Linux】autofs自动挂载
文章目录前言一、简介二、autofs安装与配置三、挂载效果验证四、总结前言 在Linux中,若要访问硬件资源,则需使用mount命令对其进行挂载(或者写入/etc/fstab文件开机自动挂载),将硬件资源与本地目录相关联,…...

ModalForm的使用
一、ModalForm销毁配置了modalProps{{ destroyOnClose: true }},弹框在隐藏时会销毁,同时清除原有数据。二、ModalForm编辑赋值首先发现有一个初始值赋值方法initialValue,但是使用后一直显示原来的值,这样就无法使用,…...

数据结构与算法——堆的基本存储
目录 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 五.堆和栈的区别 一、概念及其介绍 堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆满足下列性质: 堆中某个节点的值总是不大…...

yarn环境配置
一、安装node.js 1、在想安装的位置创建一个Node文件夹(不要有空格) 2、直接在官网下载进行安装 二、配置环境 1、在node.js安装目录下新建两个文件夹 node_global和node_cache 2、在C盘找到cmd.exe,以管理员身份运行 npm config set p…...

git 相关操作-提交代码步骤
https://blog.csdn.net/matrix_google/article/details/87988330 clone代码和切换分支 git clone -b v1.2 git192.168.3.198:qq/pp.gitgit checkout 分支名# git从远程仓库中拉取新的指定分支:若本地分支不存在的情况: git checkout -b 本地分支名称 origin/远程分…...

Windows IDEA 导入java maven项目
Windows 参考https://www.bilibili.com/video/av78474321/ 准备 java jdk1.8 安装教程配置环境变量 https://www.cnblogs.com/mr-wuxiansheng/p/6850437.html maven apache-maven-3.6.3 建议放在用户权限的位置,有修改内容,保证有权限修改配置环境…...

网络安全文章汇总导航(持续更新)
网络安全文章汇总导航(持续更新)1.基础篇(已完结):2.工具篇(持续更新):3.靶场安装(持续更新,但不确定):4.权限提升(持续更…...

基于深度学习的海洋动物检测系统(Python+YOLOv5+清新界面)
摘要:基于深度学习的海洋动物检测系统使用深度学习技术检测常见海洋动物,识别图片、视频和实时视频中的海洋动物,方便记录、展示和保存结果。本文详细介绍海洋动物检测系统,在介绍算法原理的同时,给出Python的实现代码…...

AIGC图像生成的原理综述与落地畅想
AIGC,这个当前的现象级词语。本文尝试从文生图的发展、对其当前主流的 Stable Diffusion 做一个综述。以下为实验按要求生成的不同场景、风格控制下的生成作品。概述▐ 技术演进一:昙花初现 GAN 家族GAN 系列算法开启了图片生成的新起点。GAN的主要灵感…...

三级数据库备考--数据库应用系统开发方法(二)(错题整理)
1.数据库应用系统设计包括概念设计、逻辑设计、物理设计3个步骤,每个步骤的设计活动按照数据组织与存储、数据访问与处理、应用设计等几个方面进行。在数据库概念设计阶段,采用自下而上的 E-R 设计。将关系模式转换为具体 DBMS 平台支持的关系表是数据库…...

驯服奇特数字:java.text.DecimalFormat的神奇之力
前言我们在实际项目中可能会遇到各种奇特的数字格式。这些非常规的数字表现形式可能会在PPT演示、报表或其他文档中出现。对于研发人员而言,如果没有合适的数字格式化工具,处理这些数字可能会让你走很多弯路。今天,我们将介绍一款专门用于处理…...

2023年全国最新安全员精选真题及答案30
百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 91.(单选题)根据《建筑施工企业安全生产管理规范》,…...

浙江咪咕MGV3200_KLH_国科GK6323_2+8_免拆机卡刷固件包
浙江咪咕MGV3200_KLH_国科GK6323_28_免拆机卡刷固件包 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行…...