Flink Connector 开发

news2024/11/19 5:25:58

Flink Streaming Connector

Flink是新一代流批统一的计算引擎,它需要从不同的第三方存储引擎中把数据读过来,进行处理,然后再写出到另外的存储引擎中。Connector的作用就相当于一个连接器,连接Flink计算引擎跟外界存储系统。Flink里有以下几种方式,当然也不限于这几种方式可以跟外界进行数据交换:
【1】Flink里面预定义了一些sourcesink
【2】Flink内部也提供了一些Boundled connectors
【3】可以使用第三方Apache Bahir项目中提供的连接器;
【4】是通过异步IO方式;

预定义的 source 和 sink

Flink里预定义了一部分sourcesink。在这里分了几类。
[点击并拖拽以移动] ​

基于文件的 source 和 sink

如果要从文本文件中读取数据,可以直接使用:

env.readTextFile(path)

就可以以文本的形式读取该文件中的内容。当然也可以使用:根据指定的fileInputFormat格式读取文件中的内容。

env.readFile(fileInputFormat, path)

如果数据在Flink内进行了一系列的计算,想把结果写出到文件里,也可以直接使用内部预定义的一些sink,比如将结果已文本或csv格式写出到文件中,可以使用DataStreamwriteAsText(path)DataSetwriteAsCsv(path)

基于 Socket 的 Source 和 Sink

提供 Sockethost nameport,可以直接用StreamExecutionEnvironment预定的接口socketTextStream创建基于Socketsource,从该 socket中以文本的形式读取数据。当然如果想把结果写出到另外一个Socket,也可以直接调用DataStream writeToSocket

//从 socket 中读取数据流
env.socketTextStream("localhost",777);
//输出至 socket 
resultDataStream.writeToSocket("hadoop1",6666,new SimpleStringSchema())

基于内存 Collections、Iterators 的 Source

可以直接基于内存中的集合或者迭代器,调用StreamExecutionEnvironment fromCollectionfromElements构建相应的source。结果数据也可以直接printprintToError的方式写出到标准输出或标准错误。详细也可以参考Flink源码中提供的一些相对应的Examples来查看异常预定义 sourcesink的使用方法,例如WordCountSocketWindowWordCount

//从Java.util.Collection集合中读取数据作为数据源
ArrayList<String> list = new ArrayList<>(5);
list.add("flink");
list.add("scala");
list.add("spark");
list.add("hadoop");
list.add("hive");
env.fromCollection(list).print();

//从Java.util.Collection集合中读取数据作为数据源
 env.fromElements("flink", "scala", "spark", "hadoop", "hive").print();

Bundled Connectors

Flink里已经提供了一些绑定的Connector,例如kafka sourcesinkEs sink等。读写kafkaesrabbitMQ时可以直接使用相应 connectorapi即可。

虽然该部分是Flink项目源代码里的一部分,但是真正意义上不算作Flink引擎相关逻辑,并且该部分没有打包在二进制的发布包里面。所以在提交Job时候需要注意,job代码jar包中一定要将相应的connetor相关类打包进去,否则在提交作业时就会失败,提示找不到相应的类,或初始化某些类异常。
[点击并拖拽以移动] ​

Apache Bahir 中的连接器

Apache Bahir最初是从Apache Spark中独立出来项目提供,以提供不限于Spark相关的扩展 / 插件、连接器和其他可插入组件的实现。通过提供多样化的流连接器streaming connectorsSQL数据源扩展分析平台的覆盖面。如有需要写到flumeredis的需求的话,可以使用该项目提供的connector
[点击并拖拽以移动] ​

Async I/O

流计算中经常需要与外部存储系统交互,比如需要关联MySQL中的某个表。一般来说,如果用同步I/O的方式,会造成系统中出现大的等待时间,影响吞吐和延迟。为了解决这个问题,异步I/O可以并发处理多个请求,提高吞吐,减少延迟。Async的原理可参考官方文档
[点击并拖拽以移动] ​

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

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

相关文章

查看进程对应的路径查看端口号对应的进程ubuntu 安装ssh共享WiFi设置MyBatis 使用map类型作为参数,复杂查询(导出数据)

Linux 查询当前进程所在的路径 top 命令查询相应的进程号pid ps -ef |grep 进程名 lsof -I:端口号 netstat -anp|grep 端口号 cd /proc/进程id cwd 进程运行目录 exe 执行程序的绝对路径 cmdline 程序运行时输入的命令行命令 environ 记录了进程运行时的环境变量 fd 目录下是进…

互联网加竞赛 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xf…

科普:嵌入式多核并行仿真

自信息技术革命以来&#xff0c;计算机一直被应用在各种复杂的数据处理中&#xff0c;如火箭弹道&#xff0c;高能物理和生物学数据等。随着嵌入式领域的多样化需求的不断丰富&#xff0c;多核CPU的应用也越来越广泛&#xff1a;嵌入式系统通常需要同时处理多个任务和实时数据&…

数字藏品如何赋能线下实体?以 BOOMSHAKE 潮流夜店为例

此篇为报告内容精华版&#xff0c;更多详细精彩内容请点击 完整版 在数字化浪潮的推动下&#xff0c;品牌和企业正在迎来一场前所未有的变革。传统市场营销策略逐渐让位于新兴技术&#xff0c;特别是非同质化代币&#xff08;NFT&#xff09;的应用。这些技术不仅改变了品牌资…

牵绳遛狗你我他文明家园每一天,助力共建文明社区,基于YOLOv6开发构建公共场景下未牵绳遛狗检测识别系统

遛狗是每天要打卡的事情&#xff0c;狗狗生性活泼爱动&#xff0c;一天不遛就浑身难受&#xff0c;遛狗最重要的就是要拴绳了&#xff0c;牵紧文明绳是养犬人的必修课。外出遛狗时&#xff0c;主人手上的牵引绳更多是狗狗生命健康的一道重要屏障。每天的社区生活中&#xff0c;…

stable diffusion 基础教程-提示词之艺术风格用法

展现夕阳 golden hour, (rim lighting):1.2, warm tones, sun flare, soft shadows, vibrant colors, hazy glow, painterly effect, dreamy atmosphere阴影 chiaroscuro, (high contrast):1.2, dramatic shadows, bold highlights, moody atmosphere, captivating inte…

[通俗易懂]c语言中指针变量和数值之间的关系

一、指针变量的定义 在C语言中&#xff0c;指针变量是一种特殊类型的变量&#xff0c;它存储的是另一个变量的内存地址。指针变量可以用来间接访问和操作内存中的其他变量。指针变量的定义如下&#xff1a; 数据类型 *指针变量名&#xff1b;其中&#xff0c;数据类型可以是任…

年终总结——平凡又不平凡的2023

前言 总结不知道该如何写起&#xff0c;也不知该如何建立这一篇文章的大致框架&#xff0c;只知道我的2023大概也就分成两大块罢了。说起2023一整年&#xff0c;只能用平凡而又不平凡来形容&#xff0c;平凡在我依旧没有什么太突出的技术点&#xff0c;专业水平也一直处于龟速…

二刷Laravel 教程(构建页面)总结Ⅰ

L01 Laravel 教程 - Web 开发实战入门 ( Laravel 9.x ) 一、功能 1.会话控制&#xff08;登录、退出、记住我&#xff09; 2.用户功能&#xff08;注册、用户激活、密码重设、邮件发送、个人中心、用户列表、用户删除&#xff09; 3.静态页面&#xff08;首页、关于、帮助&am…

AIDEGen + Android Studio本地环境调试代码

AIDEGen是谷歌在Android10推出的一个自动生成项目配置文件的工具&#xff0c;可以 Android Studio or IntelliJ IDEA等查看调试源码. 1、下载Android Studio放在 /opt文件夹下 2、编译sdk source build/envsetup.sh lunch sdk-eng make sdk 3、查看out/host/linux-x86/fr…

蒙特卡洛采样【python实例】

文章目录 一、均匀分布采样二、直接采样例 三、拒绝接受采样实例 四、重要性采样&#xff08;1&#xff09; 目的&#xff08;2&#xff09; 原理&#xff08;2.1&#xff09; π ( x ) 归一化 \pi(x)归一化 π(x)归一化&#xff08;2.2&#xff09;若 π ( x ) ( 即 p ( x ) …

2019数据结构----队列真题

(1)允许增加空间&#xff0c;空间可以改变所以是通过链表,链式存储实现的&#xff1b;占用的空间可以重复使用&#xff0c;所以是循环队列。 (2)队空&#xff1a;frontrear;队满&#xff1a;frontrear->next

TypeScript Array(数组)

目录 1、数组初始化 2、Array 对象 3、数组迭代 4、数组在函数中的使用 4.1、作为参数传递给函数 4.2、作为函数的返回值 5、数组方法 数组对象是使用单独的变量名来存储一系列的值。数组非常常用。假如你有一组数据&#xff08;例如&#xff1a;网站名字&#xff09;…

【整理总结】几十个程序员硬核工具

在我认识的所有程序员里&#xff0c;每个人几乎都有专属于自己的常用工具和相关资源&#xff0c;今天给大家奉上数几十个程序员硬核工具&#xff0c;我相信这里总有一款工具是属于你的&#xff01; 程序员生产力工具大全如下&#xff1a; Idea-Intellij IDEA (java 编程语言 开…

视频智能分析/云存储平台EasyCVR接入海康SDK,通道名称未自动更新该如何解决?

视频监控GB28181平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c;也能…

Vue3——element-plus表格组件怎样得到当前行的id

实现方法&#xff1a; <el-table-column property"address" label"操作" show-overflow-tooltip header-align"center" v-slot"scope"><el-button type"success" click"editBtn(scope.row.id)">编辑…

系列三十三、如何将一个springboot jar做成批处理文件

一、将一个springboot jar做成批处理文件 1.1、需求 最近在写【Spring Cloud Alibaba】的系列文章&#xff0c;其中有一个部分是安装Sentinel控制台&#xff0c;使用命令执行完全没有问题&#xff0c;但是命令太长了&#xff0c;每次启动时都要找笔记&#xff0c;然后粘贴到命…

NSSCTF hate eat snake

开启其环境: 将网页另存本地&#xff0c;搜索网页和snake.js是否包含flag文本&#xff0c;没有发现。 审计snake.js。 第7行定义了游戏的速度this.speed this.oldSpeed speed || 10 ; 全文搜索speed&#xff0c;在第237行发现自增代码this.speed; 注释或者删除自增代码&am…

从技术角度分析:HTTP 和 HTTPS 有何不同

网络安全问题正变得日益重要&#xff0c;而 HTTP 与 HTTPS 对用户数据的保护十分关键。本文将深入探讨这两种协议的特点、工作原理&#xff0c;以及保证数据安全的 HTTPS 为何变得至关重要。 认识 HTTP 与 HTTPS HTTP 的工作原理 HTTP&#xff0c;全称超文本传输协议&#xf…

【EI会议征稿通知】第十届先进制造技术与应用材料国际学术会议(ICAMMT 2024)

第十届先进制造技术与应用材料国际学术会议&#xff08;ICAMMT 2024&#xff09; The 10th International Conference on Applied Materials and Manufacturing Technology 至今ICAMMT已连续举办九届&#xff0c;会议先后在三亚、杭州、清远等城市成功召开。每一届最终征集收…