Flink链接Kafka

一、基于 Flink 的 Kafka 消息生产者

  • Kafka 生产者的创建与配置
    • 代码通过 FlinkKafkaProducer 创建 Kafka 生产者,用于向 Kafka 主题发送消息。
  • Flink 执行环境的配置
    • 配置了 Flink 的检查点机制,确保消息的可靠性,支持"精确一次"的消息交付语义。
  • 模拟数据源
    • 通过 env.fromElements() 方法创建了简单的消息流,发送了三条消息 "a", "b", 和 "c"
package com.example.kafka_flink.service;import com.example.kafka_flink.util.MyNoParalleSource;
import org.apache.flink.api.common.serialization.SimpleStringSchema;
import org.apache.flink.streaming.api.CheckpointingMode;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer;
import org.springframework.stereotype.Service;import javax.annotation.PostConstruct;
import java.util.Properties;
@Service
public class SimpleKafkaProducer {public static void main(String[] args) throws Exception {// 创建 SimpleKafkaProducer 的实例SimpleKafkaProducer kafkaProducer = new SimpleKafkaProducer();// 调用 producer 方法kafkaProducer.producer();}public void producer() throws Exception {// 设置 Flink 执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 配置检查点机制,设置检查点模式为 "Exactly Once"(精确一次)env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);// 启用检查点机制,设置检查点时间间隔为 5000 毫秒(5 秒)env.enableCheckpointing(5000);// 配置 Kafka 属性,包括身份验证信息Properties properties = new Properties();properties.setProperty("bootstrap.servers", "xxxx");properties.setProperty("security.protocol", "SASL_PLAINTEXT");properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"xxx\" password=\"xxx\";");// 创建 Kafka 生产者实例,并设置目标主题和序列化模式FlinkKafkaProducer<String> producer = new FlinkKafkaProducer<>("WJ-TEST",// 使用 SimpleStringSchema 进行字符串序列化new SimpleStringSchema(),properties);// 模拟数据源,生产一些简单的消息,并将消息写入 Kafkaenv.fromElements("a", "b", "c").addSink(producer);// 启动 Flink 作业env.execute("Kafka Producer Job");}
}

二、基于 Flink 的 Kafka 消息消费者

2.1 消费一个Topic

  • 设置 Flink 执行环境

    • 使用 StreamExecutionEnvironment.getExecutionEnvironment() 创建执行环境。
  • 启用检查点机制

    • 调用 env.enableCheckpointing(5000),设置检查点时间间隔为 5 秒。
    • 配置检查点模式为 EXACTLY_ONCE,确保数据一致性。
  • 配置 Kafka 属性

    • 设置 Kafka 服务器地址(bootstrap.servers)。
    • 指定消费组 ID(group.id)。
    • 配置安全协议和认证机制(SASL_PLAINTEXTSCRAM-SHA-512)。
  • 创建 Kafka 消费者

    • 使用 FlinkKafkaConsumer<String> 指定单个 Kafka Topic(如 "WJ-TEST")。
    • 设置消息反序列化方式为 SimpleStringSchema
    • 配置消费者从最早偏移量开始消费(setStartFromEarliest())。
  • 将 Kafka 消费者添加到 Flink 数据流

    • 调用 env.addSource(consumer) 添加 Kafka 消费者作为数据源。
    • 使用 FlatMapFunction 处理消息,将其打印或进一步处理。
  • 启动 Flink 作业

    • 使用 env.execute("start consumer...") 启动 Flink 作业,开始消费 Kafka 的消息流。
 //消费单个topicpublic static void consumerOneTopic() throws Exception {// 设置 Flink 执行环境// 创建一个流处理的执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 启用检查点机制,设置检查点的时间间隔为 5000 毫秒(5 秒)env.enableCheckpointing(5000);// 配置检查点模式为 "Exactly Once"(精确一次)env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);// 配置 Kafka 属性,包括身份验证信息Properties properties = new Properties();// 设置 Kafka 集群地址properties.setProperty("bootstrap.servers", "xxxx");// 设置消费组 ID,用于管理消费偏移量properties.setProperty("group.id", "group_test");// 设置安全协议为 SASL_PLAINTEXTproperties.setProperty("security.protocol", "SASL_PLAINTEXT");// 设置 SASL 认证机制为 SCRAM-SHA-512properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");// 配置 SASL 登录模块,包含用户名和密码properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"xxx\" password=\"xxx\";");// 创建一个 Kafka 消费者实例FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>(// 设置要消费的 Kafka 主题名称"WJ-TEST",// 使用 SimpleStringSchema 将 Kafka 的消息反序列化为字符串new SimpleStringSchema(),// 传入 Kafka 的配置属性properties);// 设置消费者从 Kafka 的最早偏移量开始消费消息consumer.setStartFromEarliest();// 将 Kafka 消费者作为数据源添加到 Flink 的执行环境中env.addSource(consumer).flatMap(new FlatMapFunction<String, String>() {@Overridepublic void flatMap(String s, Collector<String> collector) throws Exception {// 打印消费到的消息内容到控制台System.out.println(s);// 收集消费到的消息,供后续处理collector.collect(s);}});// 启动并执行 Flink 作业,作业名称为 "start consumer..."env.execute("start consumer...");}

生产消息结果:

2.2 消费多个Topic

  • 设置 Flink 执行环境

    • 使用 StreamExecutionEnvironment.getExecutionEnvironment() 创建执行环境。
  • 启用检查点机制

    • 配置检查点模式为 EXACTLY_ONCE,确保数据一致性。
    • 调用 env.enableCheckpointing(5000) 设置检查点时间间隔为 5 秒。
  • 配置 Kafka 属性

    • 设置 Kafka 服务器地址(bootstrap.servers)。
    • 指定消费组 ID(group.id)。
    • 配置安全协议和认证机制(SASL_PLAINTEXTSCRAM-SHA-512)。
  • 定义 Kafka Topic 列表

    • 创建一个 List<String>,添加多个 Kafka Topic 名称(如 "WJ-TEST""KAFKA_TEST_001")。
  • 创建 Kafka 消费者

    • 使用 FlinkKafkaConsumer,传入 Kafka Topic 列表和自定义反序列化器(CustomDeSerializationSchema)。
    • 配置消费者从最早偏移量开始消费(setStartFromEarliest())。
  • 将 Kafka 消费者添加到 Flink 数据流

    • 调用 env.addSource(consumer) 添加 Kafka 消费者作为数据源。
    • 使用 FlatMapFunction 处理消息,打印消息的 Topic、分区、偏移量、键和值,并收集消息值进行进一步处理。
  • 启动 Flink 作业

    • 使用 env.execute("start consumer...") 启动 Flink 作业,开始消费 Kafka 的多个主题消息流。
//消费多个topicpublic static void consumerTopics() throws Exception {// 设置 Flink 执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 配置检查点机制,设置检查点模式为 "Exactly Once"(精确一次)env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);// 启用检查点机制,设置检查点时间间隔为 5000 毫秒(5 秒)env.enableCheckpointing(5000);// 配置 Kafka 属性,包括身份验证信息Properties properties = new Properties();properties.setProperty("bootstrap.servers", "xxxx");properties.setProperty("group.id", "group_test");properties.setProperty("security.protocol", "SASL_PLAINTEXT");properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"xxx\" password=\"xxx\";");// 定义需要消费的 Kafka 主题列表List<String> topics = new ArrayList<>();topics.add("WJ-TEST");topics.add("KAFKA_TEST_001");// 使用自定义反序列化器创建 Kafka 消费者实例FlinkKafkaConsumer<ConsumerRecord<String, String>> consumer = new FlinkKafkaConsumer<>(topics,new CustomDeSerializationSchema(),properties);// 设置消费者从 Kafka 的最早偏移量开始消费消息consumer.setStartFromEarliest();// 将 Kafka 消费者作为数据源添加到 Flink 的执行环境中env.addSource(consumer).flatMap(new FlatMapFunction<ConsumerRecord<String, String>, Object>() {@Overridepublic void flatMap(ConsumerRecord<String, String> record, Collector<Object> collector) throws Exception {// 打印消费到的消息内容到控制台System.out.println("Topic: " + record.topic() +", Partition: " + record.partition() +", Offset: " + record.offset() +", Key: " + record.key() +", Value: " + record.value());// 收集消费到的消息,供后续处理collector.collect(record.value());}});// 启动并执行 Flink 作业env.execute("start consumer...");}

2.3 消费Topic的总体代码

package com.example.kafka_flink.service;import com.example.kafka_flink.util.CustomDeSerializationSchema;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.common.serialization.SimpleStringSchema;
import org.apache.flink.api.java.tuple.Tuple;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.CheckpointingMode;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;
import org.apache.flink.util.Collector;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.stereotype.Service;import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;/*** @author wangjian*/
@Service
public class SimpleKafkaConsumer {public static void main(String[] args) throws Exception {
//         SimpleKafkaConsumer.consumerOneTopic();SimpleKafkaConsumer.consumerTopics();}//消费单个topicpublic static void consumerOneTopic() throws Exception {// 设置 Flink 执行环境// 创建一个流处理的执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 启用检查点机制,设置检查点的时间间隔为 5000 毫秒(5 秒)env.enableCheckpointing(5000);// 配置检查点模式为 "Exactly Once"(精确一次)env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);// 配置 Kafka 属性,包括身份验证信息Properties properties = new Properties();// 设置 Kafka 集群地址properties.setProperty("bootstrap.servers", "xxxx");// 设置消费组 ID,用于管理消费偏移量properties.setProperty("group.id", "group_test");// 设置安全协议为 SASL_PLAINTEXTproperties.setProperty("security.protocol", "SASL_PLAINTEXT");// 设置 SASL 认证机制为 SCRAM-SHA-512properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");// 配置 SASL 登录模块,包含用户名和密码properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"xxx\" password=\"xxx\";");// 创建一个 Kafka 消费者实例FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>(// 设置要消费的 Kafka 主题名称"WJ-TEST",// 使用 SimpleStringSchema 将 Kafka 的消息反序列化为字符串new SimpleStringSchema(),// 传入 Kafka 的配置属性properties);// 设置消费者从 Kafka 的最早偏移量开始消费消息consumer.setStartFromEarliest();// 将 Kafka 消费者作为数据源添加到 Flink 的执行环境中env.addSource(consumer).flatMap(new FlatMapFunction<String, String>() {@Overridepublic void flatMap(String s, Collector<String> collector) throws Exception {// 打印消费到的消息内容到控制台System.out.println(s);// 收集消费到的消息,供后续处理collector.collect(s);}});// 启动并执行 Flink 作业,作业名称为 "start consumer..."env.execute("start consumer...");}//消费多个topicpublic static void consumerTopics() throws Exception {// 设置 Flink 执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 配置检查点机制,设置检查点模式为 "Exactly Once"(精确一次)env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);// 启用检查点机制,设置检查点时间间隔为 5000 毫秒(5 秒)env.enableCheckpointing(5000);// 配置 Kafka 属性,包括身份验证信息Properties properties = new Properties();properties.setProperty("bootstrap.servers", "xxxx");properties.setProperty("group.id", "group_test");properties.setProperty("security.protocol", "SASL_PLAINTEXT");properties.setProperty("sasl.mechanism", "SCRAM-SHA-512");properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"xxx\" password=\"xxx\";");// 定义需要消费的 Kafka 主题列表List<String> topics = new ArrayList<>();topics.add("WJ-TEST");topics.add("KAFKA_TEST_001");// 使用自定义反序列化器创建 Kafka 消费者实例FlinkKafkaConsumer<ConsumerRecord<String, String>> consumer = new FlinkKafkaConsumer<>(topics,new CustomDeSerializationSchema(),properties);// 设置消费者从 Kafka 的最早偏移量开始消费消息consumer.setStartFromEarliest();// 将 Kafka 消费者作为数据源添加到 Flink 的执行环境中env.addSource(consumer).flatMap(new FlatMapFunction<ConsumerRecord<String, String>, Object>() {@Overridepublic void flatMap(ConsumerRecord<String, String> record, Collector<Object> collector) throws Exception {// 打印消费到的消息内容到控制台System.out.println("Topic: " + record.topic() +", Partition: " + record.partition() +", Offset: " + record.offset() +", Key: " + record.key() +", Value: " + record.value());// 收集消费到的消息,供后续处理collector.collect(record.value());}});// 启动并执行 Flink 作业env.execute("start consumer...");}}

2.4 自定义的 Kafka 反序列化器 (CustomDeSerializationSchema)

实现了一个自定义的 Kafka 反序列化器 (CustomDeSerializationSchema),主要功能是将从 Kafka 中消费到的消息(字节数组格式)解析为包含更多元数据信息的 ConsumerRecord<String, String> 对象。以下是其作用的具体说明:

  • 解析 Kafka 消息

    • 消息的 keyvalue 由字节数组转换为字符串格式,便于后续业务逻辑处理。
    • 同时保留 Kafka 消息的元数据信息(如主题名称 topic、分区号 partition、偏移量 offset)。
  • 扩展 Flink 的 Kafka 数据处理能力

    • 默认的反序列化器只处理消息内容(keyvalue),而该自定义类将消息的元数据(如 topicpartition)也作为输出的一部分,为复杂业务需求提供了更多上下文信息。
  • 控制流数据的结束逻辑

    • 实现了 isEndOfStream 方法,返回 false,表示 Kafka 的数据流是持续的,Flink 不会主动终止数据消费。
  • 定义 Flink 数据类型

    • 使用 getProducedType 方法,明确告诉 Flink 输出的数据类型是 ConsumerRecord<String, String>,便于 Flink 在运行时正确处理流数据。
package com.example.kafka_flink.util;import org.apache.flink.api.common.typeinfo.TypeHint;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.streaming.connectors.kafka.KafkaDeserializationSchema;
import org.apache.kafka.clients.consumer.ConsumerRecord;import java.nio.charset.StandardCharsets;/*** @author wangjian*/
public class CustomDeSerializationSchema implements KafkaDeserializationSchema<ConsumerRecord<String, String>> {// 是否表示流的最后一条元素// 返回 false,表示数据流会源源不断地到来,Flink 不会主动停止消费@Overridepublic boolean isEndOfStream(ConsumerRecord<String, String> stringStringConsumerRecord) {return false;}// 反序列化方法// 将 Kafka 消息从字节数组转换为 ConsumerRecord<String, String> 类型的数据// 返回的数据不仅包括消息内容(key 和 value),还包括 topic、offset 和 partition 等元数据信息@Overridepublic ConsumerRecord<String, String> deserialize(ConsumerRecord<byte[], byte[]> consumerRecord) throws Exception {// 检查 key 和 value 是否为 null,避免空指针异常String key = consumerRecord.key() == null ? null : new String(consumerRecord.key(), StandardCharsets.UTF_8);String value = consumerRecord.value() == null ? null : new String(consumerRecord.value(), StandardCharsets.UTF_8);// 构造并返回一个 ConsumerRecord 对象,其中包含反序列化后的 key 和 value,以及其他元数据信息return new ConsumerRecord<>(// Kafka 主题名称consumerRecord.topic(),// 分区号consumerRecord.partition(),// 消息偏移量consumerRecord.offset(),// 消息的 keykey,// 消息的 valuevalue);}// 指定数据的输出类型// 告诉 Flink 消费的 Kafka 数据类型是 ConsumerRecord<String, String>@Overridepublic TypeInformation<ConsumerRecord<String, String>> getProducedType() {return TypeInformation.of(new TypeHint<ConsumerRecord<String, String>>() {});}
}

2.5 消费到消息的结果

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

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

相关文章

带头双向循环链表(数据结构初阶)

文章目录 双向链表链表的分类概念与结构实现双向链表定义链表结构链表打印判空申请结点初始化头插尾插头删尾删查找指定位置插入和删除销毁链表 顺序表和链表的分析结语 欢迎大家来到我的博客&#xff0c;给生活来点impetus&#xff01;&#xff01; 这一节我们学习双向链表&a…

41,【7】CTFHUB WEB SQL Cookie注入

搜索知Cookie 是由服务器发送给用户浏览器的一小段文本信息&#xff0c;浏览器会将其保存下来&#xff0c;并且在后续的请求中自动将 Cookie 发送回服务器。 所以可以联想到cookie会出现在请求处&#xff0c;可以使用BP抓包 找到了 又是整形注入 可知字节数为2 找到回显点 得…

unity学习16:unity里向量的计算,一些方法等

目录 1 unity里的向量&#xff1a; 2 向量加法 2.1 向量加法的几何意义 2.2向量加法的标量算法 3 向量减法 3.1 向量减法的几何意义 3.2 向量减法的标量算法 4 向量的标量乘法 5 向量之间的乘法要注意是左乘 还是右乘 5.1 注意区别 5.2 向量&#xff0c;矩阵&#x…

卷积神经05-GAN对抗神经网络

卷积神经05-GAN对抗神经网络 使用Python3.9CUDA11.8Pytorch实现一个CNN优化版的对抗神经网络 简单的GAN图片生成 CNN优化后的图片生成 优化模型代码对比 0-核心逻辑脉络 1&#xff09;Anacanda使用CUDAPytorch2&#xff09;使用本地MNIST进行手写图片训练3&#xff09;…

堆的实现【C++】

堆的实现 概念实现完整代码 概念 介绍堆之前得说一下二叉树&#xff0c;因为堆的逻辑结构是二叉树&#xff0c;二叉树的树的子集&#xff0c;树只有一个根节点&#xff0c;向下衍生出了很多节点&#xff0c;并且这个节点之间相互没有连接&#xff0c;除非是父子节点&#xff0…

UI自动化测试:异常截图和page_source

自动化测试过程中&#xff0c;是否遇到过脚本执行中途出错却不知道原因的情况&#xff1f;测试人员面临的不仅是问题的复现&#xff0c;还有对错误的快速定位和分析。而异常截图与页面源码&#xff08;Page Source&#xff09;的结合&#xff0c;正是解决这一难题的利器。 在实…

ASP.NET Core - 依赖注入(三)

ASP.NET Core - 依赖注入&#xff08;三&#xff09; 4. 容器中的服务创建与释放 4. 容器中的服务创建与释放 我们使用了 IoC 容器之后&#xff0c;服务实例的创建和销毁的工作就交给了容器去处理&#xff0c;前面也讲到了服务的生命周期&#xff0c;那三种生命周期中对象的创…

gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法

方案1 作业挂起中,等待进入队列 重启gitlab-runner gitlab-runner stop gitlab-runner start gitlab-runner run方案2 启动 gitlab-runner 服务 gitlab-runner start成功启动如下 [rootdocserver home]# gitlab-runner start Runtime platform …

麦田物语学习笔记:构建游戏的时间系统

基本流程 1.代码思路 (1)新建一个TimeManager.cs (2)创建枚举变量来表示四季,在TimeManager里需要的变量有: 游戏内的秒,分钟,小时,天,月,年;游戏内的季节;控制一个季节有多少个月;控制时间的暂停;计时器tikTime (3)在Settings里添加计时器的阈值,以及各个时间的进位 (4)初始化…

Spring Boot教程之五十七:在 Apache Kafka 上发布 JSON 消息

Spring Boot | 如何在 Apache Kafka 上发布 JSON 消息 Apache Kafka是一个发布-订阅消息系统。消息队列允许您在进程、应用程序和服务器之间发送消息。在本文中&#xff0c;我们将了解如何在 Spring Boot 应用程序中向 Apache Kafka 发送 JSON 消息。 为了了解如何创建 Spring…

计算机网络 (44)电子邮件

一、概述 电子邮件&#xff08;Electronic Mail&#xff0c;简称E-mail&#xff09;是因特网上最早流行的应用之一&#xff0c;并且至今仍然是因特网上最重要、最实用的应用之一。它利用计算机技术和互联网&#xff0c;实现了信息的快速、便捷传递。与传统的邮政系统相比&#…

代码随想录算法训练营day02| 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

977. 有序数组的平方 双指针&#xff0c;新数组用k&#xff1b; 由于已经排序&#xff0c;所以比较两侧数据即可&#xff1b; class Solution { public:vector<int> sortedSquares(vector<int>& nums) {vector<int> ans(nums.size());int k nums.siz…

Unity 语音转文字 Vosk 离线库

市场有很多语音库&#xff0c;这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的&#xff0c;&#xff08;确保麦克风正常&#xff0c;且索引正确&#xff09;分大…

网络网络层ICMP协议

网络网络层ICMP协议 1. ICMP 协议介绍 ICMP&#xff08;Internet Control Message Protocol&#xff09;是 TCP/IP 协议簇中的网络层控制报文协议。用于在 IP 主机、路由器之间传递控制消息&#xff0c;提供可能有关通信问题的反馈信息。 以及用于网络诊断或调试&#xff08;…

Lianwei 安全周报|2025.1.13

新的一周又开始了&#xff0c;以下是本周「Lianwei周报」&#xff0c;我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件&#xff0c;保证大家不错过本周的每一个重点&#xff01; 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…

计算机网络(五)运输层

5.1、运输层概述 概念 进程之间的通信 从通信和信息处理的角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时…

卷积神经02-CUDA+Pytorch环境安装

卷积神经02-CUDAPytorch环境安装 在使用Python进行pytorch的使用过程中遇到各种各样的版本冲突问题&#xff0c;在此进行记录 0-核心知识脉络 1&#xff09;根据自己电脑的CUDA版本安装对应版本的Pytorch&#xff0c;充分的使用GPU性能2&#xff09;电脑要先安装【CUDA ToolKi…

shell 脚本基本练习

一、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 1. 创建ex1.sh文件 [rootopenEuler mnt]# vim ex1.sh创建如下&#xff1a; 2. 根据题目编写脚本 n"/tmp/siz.log"if [ -f "$n" ] thenc…

CNN-GRU-MATT加入贝叶斯超参数优化,多输入单输出回归模型

CNN-GRU-MATT加入贝叶斯超参数优化&#xff0c;多输入单输出回归模型 目录 CNN-GRU-MATT加入贝叶斯超参数优化&#xff0c;多输入单输出回归模型预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现贝叶斯优化CNN-GRU融合多头注意力机制多变量回归预测&#xff…

Oracle 分区索引简介

目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引&#xff08;Local Partitioned Index&#xff09;2.2 全局分区索引&#xff08;Global Partitioned Index&#xff09; 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…