FLink自定义Source,不停生产数据】的更多相关文章

--------20190905更新------- 沙雕了,可以用  JSONKeyValueDeserializationSchema,接收ObjectNode的数据,如果有key,会放在ObjectNode中 if (record.key() != null) { node.set("key", mapper.readValue(record.key(), JsonNode.class)); } if (record.value() != null) { node.set(&quo…
一.Source 代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 1.1.flink内置数据源 1.基于文件 env.readTextFile("file://path") env.readFile(inputFormat, "file://path"); 2.基于socket数据源 env.socketTextStream("localhost", 6666, '\n') 3. 基于Collectio…
flink读取source data 数据的来源是flink程序从中读取输入的地方.我们可以使用StreamExecutionEnvironment.addSource(sourceFunction)将源添加到程序中. flink附带大量预先实现好的各种读取数据源的函数,也可以通过为非并行源去实现SourceFunction接口或者为并行源实现ParallelSourceFunction接口或扩展RichParallelSourceFunction来编写满足自己业务需要的定制源. flink预先…
Flink自定义Sink Flink 自定义Sink,把socket数据流数据转换成对象写入到mysql存储. #创建Student类 public class Student { private int id; private String name; private int age; @Override public String toString() { return "Student{" + "id=" + id + ", name='"…
1.Event event是flume传输的最小对象,从source获取数据后会先封装成event,然后将event发送到channel,sink从channel拿event消费. event由头headers和身体(body)两部分组成:Headers部分是一个map,body部分可以是String或者byte[]等.其中body部分是真正存放数据的地方,headers部分用于本节所讲的interceptor. 2.Source 自定义Source,自定义的Event需要继承PollableS…
本文翻译自官网: User-defined Sources & Sinks  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sourceSinks.html Flink Table Api & SQL 翻译目录 TableSource提供对存储在外部系统(数据库,键值存储,消息队列)或文件中的数据的访问.在TableEnvironment中注册TableSource后,可以通过Table API或…
1.自定义sink 在flink中,sink负责最终数据的输出.使用DataStream实例中的addSink方法,传入自定义的sink类 定义一个printSink(),使得其打印显示的是真正的task号(默认的情况是task的id+1) MyPrintSink package cn._51doit.flink.day02; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.…
一.flume简单了解推荐网站(简介包括简单案例部署): http://www.aboutyun.com/thread-8917-1-1.html 二.我的需求是实现从ftp目录下采集数据,目录下文件名称要符合特定正则,要求文件要一行一行读取并解析后写入数据库.且实现断点续传(服务重启后会从上次读的位置继续). flume1.7.0中taildirSource实现的是监控目录下文件并且一行一行的读取,我只需选用这个source就可以实现.但是服务并不能直接部署在数据所在的服务器上,所以涉及到ft…
flink 触发器 触发器确定窗口(由窗口分配程序形成)何时准备由窗口函数处理.每个WindowAssigner都带有一个默认触发器. 如果默认触发器不适合需求,我们就需要自定义触发器. 主要方法 触发器接口有五种方法,允许触发器对不同的事件作出反应 onElement()添加到每个窗口的元素都会调用此方法. onEventTime()当注册的事件时间计时器触发时,将调用此方法. onProcessingTime()当注册的处理时间计时器触发时,将调用此方法. onMerge()与有状态触发器相…
import java.nio.charset.Charset; import java.util.HashMap; import java.util.Random; import org.apache.flume.Context; import org.apache.flume.EventDeliveryException; import org.apache.flume.PollableSource; import org.apache.flume.conf.Configurable; im…