flink sql1.18.0连接SASL_PLAINTEXT认证的kafka3.3.1

news2024/11/23 2:51:46

阅读此文默认读者对docker、docker-compose有一定了解。

环境

docker-compose运行了一个jobmanager、一个taskmanager和一个sql-client。

如下:

version: "2.2"
services:
  jobmanager:
    image: flink:1.18.0-scala_2.12
    container_name: jobmanager
    ports:
      - "7081:8081"
    command: jobmanager
    volumes:
      - ./jobmanager:/opt/flink
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager

  taskmanager:
    image: flink:1.18.0-scala_2.12
    container_name: taskmanager1
    depends_on:
      - jobmanager
    command: taskmanager
    volumes:
      - ./taskmanager1:/opt/flink
    scale: 1
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        taskmanager.numberOfTaskSlots: 32
  sql-client:
    image: flink:1.18.0-scala_2.12
    container_name: sql-client-1
    command: bin/sql-client.sh
    volumes:
      - ./sql-client:/opt/flink
    depends_on:
      - jobmanager
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        rest.address: jobmanager

注意三个容器都映射了/opt/flink目录。需要先将/opt/flink目录拷贝到跟docker-compose.yml同一目录下,并分别重命名,如下图:

三个文件夹内容是一样的,只是名字不一样。

以上环境介绍完毕。

添加fllink-connector-kafka驱动

在maven官网下载相应jar包,分别放入上述三个文件夹的lib目录下。例如jobmanager:

启动sql-client,我用docker-compose启动的,因此命令为:docker-compose run sql-client.

创建kafka表

CREATE TABLE TestTable (
  `event_time` TIMESTAMP(3) METADATA FROM 'timestamp',
  `partition` BIGINT METADATA VIRTUAL,
  `offset` BIGINT METADATA VIRTUAL,
  `presetBit` STRING,
  `imageTime` STRING,
  `imageName` STRING,
  `thumbnailWidth` BIGINT,
  `size` BIGINT,
  `thumbnailSize` BIGINT,
  `behavior` STRING,
  `imageUri` STRING,
  `presetId` STRING
) WITH (
  'connector'='kafka',
  'topic'='mytopic',
  'properties.bootstrap.servers'='localhost:9092',
  'properties.group.id'='testGroup',
  'scan.startup.mode'='earliest-offset',
  'format'='json',
  'properties.security.protocol'='SASL_PLAINTEXT',
  'properties.sasl.mechanism'='PLAIN',
  'properties.sasl.jaas.config'='org.apache.flink.kafka.shaded.org.apache.kafka.common.security.plain.PlainLoginModule required username="your-username" password="your-pwd";'
);

说明:

①标识字段为kafka自带字段,topic中没有也会自带。

②标识的字段为topic中存储的字段,根据自己topic来。

③为自己的topic名称

④为kafka集群地址

⑤后面的username和password需要根据实际情况修改。

创建表以后执行select * from TestTable,可以看到类似下图的内容:

flink官网留下的坑

坑主要出现在最后一行。

flink官网是这样写的

首先指定的类不对,应该是org.apache.flink.kafka.shaded.org.apache.kafka.common.security.plain.PlainLoginModule,如果按照官网写会报错:Caused by: javax.security.auth.login.LoginException: No LoginModule found for org.apache.kafka.common.security.plain.PlainLoginModule。

其次,username和password的双引号不需要写反斜杠,写反斜杠反而会报错。

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

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

相关文章

Kafka 如何保证高可用?

Kafka 的基本架构组成是:由多个 broker 组成一个集群,每个 broker 是一个节点;当创建一个 topic 时,这个 topic 会被划分为多个 partition,每个 partition 可以存在于不同的 broker 上,每个 partition 只存…

【新姿势】SpringBoot下时间配置新方式(同文件大小)

SpringBoot Duration 背景: 在SpringBoot项目中,我们经常需要配置时间参数,作为某一动作的间隔。以往我们通常是在配置文件中定义字段后,直接设置对应的秒或毫秒值,遇到计算时,直接在此基础上做运算。这种…

标准解析|海格里斯HEGERLS四向车调度算法如何解决同层多车车辆路径规划和避让问题?

随着当前各大企业对仓储存储需求的不断攀升,仓储货架业已进入智能自动化系统集成时代,从单一的货架存储已慢慢发展为货架穿梭车提升机拣选系统控制软件仓库管理软件等集成的仓储解决方案,如四向穿梭车系统,多层穿梭车系统&#xf…

解决:OSError: cannot write mode RGBA as JPEG

解决:OSError: cannot write mode RGBA as JPEG 文章目录 解决:OSError: cannot write mode RGBA as JPEG背景报错问题报错翻译报错位置代码报错原因解决方法参考今天的分享就到此结束了 背景 在使用之前的代码时,报错: Traceback…

CodeBlocks配置WinLibs

一、准备工作 1、去Code::Blocks - Browse /Binaries/Nightlies at SourceForge.net下载CodeBlocks最新的nightly build版本,并下载wxWidget dll和Mingw64 dll库文件。 我下载的CB 13411 ,Mingw64dlls13.1.0.7z,wxmsw32u_gcc_cb_wx324_2D_g…

​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化

2022年亚马逊云科技re:Invent盛会于近日在拉斯维加斯成功召开,吸引了众多业界精英和创新者。亚马逊云科技边缘服务副总裁Jan Hofmeyr在演讲中分享了关于亚马逊云科技海外服务器边缘计算的最新发展和创新成果,引发与会者热烈关注。 re:Invent的核心主题是…

从Gitee克隆项目、启动方法

从gitee克隆VUE项目到本地后,不能直接运行,需要进行npm install安装node_modules文件夹里面的内容,因为在git上传的时候,一般都会过滤到node_modules中的依赖文件。 安装依赖以后,启动通过npm run serve启动项目出错。…

MySQL-1

1 数据库基础概念 Data数据 对客观事物的符号表示,如图形符号、数字、字母等,数据是数据库中存储的基本对象。2. DB数据库数据库(Database,简称DB)的定义:“按照数据结构来组织、存储和管理数据的仓库” 3. DBMS数据库管理系统概念&#xff…

多媒体信息化建设,动态数据中心,深入理解分布式系统

目录 一、前言二、双活数据中心三、数据备份方式四、设计双活数据中心需要考虑的问题1、延迟和稳定性2、Quorum/ Tie-Breaker3、工作负载 五、动态数据中心六、深入理解分布式系统1、内容介绍2、作者简介 大家好,我是哪吒。 文末送5本《深入理解分布式系统》 一、…

Amazon Toolkit — CodeWhisperer 使用

tFragment--> 官网:https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具,感慨颇多。下面是安装 和使用的分享。 CodeWhisperer,亚马逊推出的实时 AI 编程助手,是一项基于机器学习…

Linux服务器nginx部署Vue前端(详细版)

提示:适用于前后端项目的部署 文章目录 前言一、打包前端文件二、下载和部署Nginx三、配置conf文件启动nginx 前言 搜索到这篇文章想必你已经对Nginx比较了解,我也不对Nginx进行介绍赘述了,只需要明白Nginx本身也是一个静态资源的服务器&…

【MYSQL】MYSQL 的学习教程(三)之索引核心知识点

1. 什么是索引? 索引是一种能提高数据库查询效率的数据结构,一般存储在磁盘的文件中,它是占用物理空间的 适当的索引能提高查询效率,过多的索引会影响数据库表的插入和更新功能。 2. 索引的优劣势 优势: 提高数据…

GEM5 Garent CPU cache消息传递路径:1. NI部分

简介 我们仔细分析下图怎么连的,以及消息传递路径。 图来自https://www.gem5.org/documentation/general_docs/ruby/ 代码的连接 fs.py->ruby.py-> gem5/configs/ruby/MESI_Two_Level.py 中的 create_system( options, full_system, system, dma_ports, b…

STM32单片机项目实例:基于TouchGFX的智能手表设计(7)MVP架构下的交互逻辑设计

STM32单片机项目实例:基于TouchGFX的智能手表设计(7)MVP架构下的交互逻辑设计 目录 一、概述 二、MVP架构下的交互逻辑 一、概述 本文例程是基于 TouchGFX 的智能手表设计—Designer 软件 UI 设计的例程 0B-2_STM32U575_MVP_Interactive工…

【点选验证码识别】某招标网站反爬虫分析与验证码自动识别

文章目录 1. 写在前面2. 风控描述3. 验证码裁剪4. 验证码识别 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣…

Redis基础篇-002 初识Redis

1、认识NoSQL 1.1 概念 NoSQL是一个非关系型数据库。 常见的NoSQL有:Redis、MongoDB 1.2 NoSQL与SQL的区别 类别SQLNoSQL数据结构结构化非结构化数据关联关联非关联查询方式SQL非SQL事务特性ACIDBASE存储方式磁盘内存扩展性垂直水平使用场景1)数据结…

Uniapp + Vue3 封装请求工具挂载全局

新建request.js工具类 const http {// baseUrl 地址baseUrl: http://localhost:8080,// 请求方法request(config) {// config:请求配置对象,具体参照uniapp文档config beforeRequest(config)// 请求地址拼接config.url this.baseUrl config.url// 异…

WIN10安装gurobi给matlab使用(记录)

https://www.gurobi.com/downloads/gurobi-software/ 这是以前的matlab路径,需要修改成新的 使用校园网激活一下 运行gurobi_setup Google报错信息,发现mathwork官方的解释是:找不到相关的dll文件,所以mex无效。 解决方案&…

Unity | Shader基础知识(第八集:案例<漫反射材质球>)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、什么是漫反射材质球 三、 漫反射进化史 1 三种算法结果的区别 2 具体算法 2.1 兰伯特逐顶点算法 a.本小节使用的unity自带结构体。 b.兰伯特逐顶点算法公式 c.代码实现——兰伯特逐顶点算法 2.2 代码实现——兰伯特逐…

Windows下结束进程

可以用命令 netstat -ano | findstr :8088 直接找到端口号为8088的进程PID; 根据PID进程号结束进程 :taskkill /pid 14696 -t -f ;