Flink
weixin_42412645
这个作者很懒,什么都没留下…
展开
-
Windows平台下kafka+flink开发环境搭建
1.准备工作安装JDK1.8(注意最好设置环境变量JAVA_HOME)安装SCALA 2.112.kafka安装由于kafka自带zookeeper所以下载下来就能使用。1.进入当前目录的DOS界面:在 kafka 目录,按住shift+鼠标右键->在此处打开命令窗口(W)2.开启zookeeper服务bin\windows\zookeeper-server-start.ba...原创 2019-06-06 10:08:30 · 1793 阅读 · 1 评论 -
IDEA开启异步调试
由于现在很多程序都是异步执行,于是debug的时候需要开启异步调试,刚好IDEA有这个功能。原创 2019-07-28 11:11:45 · 8606 阅读 · 0 评论 -
Flink使用BucketingSink自定义多目录写入
由于平台的不稳定性,小时解析日志老是出错需要人为干涉。最近在想能不能通过flink实时解析日志入库。查了一下网上的资料可以使用BucketingSink来将数据写入到HDFS上。于是想根据自定义文件目录来实行多目录写入。添加pom依赖` <dependency> <groupId>org.apache.flink</groupId> ...原创 2019-08-03 16:20:58 · 3846 阅读 · 1 评论 -
Flink的StreamExecutionEnvironment和ExecutionEnvironment一点思考
Flink程序首先就是创建运行环境StreamExecutionEnvironment和ExecutionEnvironment,查看了一下源码这两个类是抽象类,但是getExecutionEnvironment是静态方法。也就是说抽象类里面定义了静态方法同时根据不同的子类类型来new。这样做的好处是提供统一访问接口,具体实现方法根据具体的子类来。这个跟Java模板模式一样。...原创 2019-07-21 14:52:45 · 11123 阅读 · 2 评论 -
Flink本地DEBUG日志输出到控制台
最近在读Flink源码,于是在本地DEBUG自带的例子源码,但是程序的日志输出级别是INFO,其中很多DEBUG级别的日志是不输出到控制台。怎样来修改日志级别让其输出到控制台方便阅读源码。于是在网上查看了一下Flink使用的log4j日志框架,设置log4j日志级别必须要log4j的配置文件。在编译好的源码中竟然有这个配置文件,那只要修改这个文件就可以在本地控制台看到DEBUG级别的日志了。l...原创 2019-07-21 14:16:49 · 9792 阅读 · 0 评论 -
Flink的KeyedStateStore的5中state
KeyedStateStore有ValueState,ListState,ReducingState,AggregatingState,MapState5中状态。下面实现这5种状态示例。1.KeyedStateStore接口的所有get方法2.ValueState DataStream<MyType> stream = ...; KeyedStream<MyType...原创 2019-07-23 22:00:01 · 745 阅读 · 0 评论 -
Flink状态计算与状态恢复(checkpoint)
通过扩展FlatMapFunction函数来对状态进行累计,通过实现CheckpointedFunction接口实现checkpoint和在初始化。 class CheckpointCount extends FlatMapFunction[(Int,Long),(Int,Long,Long)] with CheckpointedFunction{ /** * The core ...原创 2019-06-29 23:02:09 · 1262 阅读 · 0 评论 -
Flink自定义状态实现wordcoun通过扩展RichFlatMapFunction
def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment env.fromCollection(List( (1L, 3L), (1L, 5L), (1L, 7L), (1L, 4L), ...原创 2019-06-26 22:46:30 · 3259 阅读 · 0 评论 -
Flink的mapWithState示例及源码分析
Flink的状态函数mapWithState使用,代码如下: def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment env.fromCollection(List( (1L, 3L), (1L, 5L), ...原创 2019-06-26 22:29:29 · 2296 阅读 · 0 评论 -
Flink自定义Assigning Timestamps和Watermarks
为了让event time工作,Flink需要知道事件的时间戳,这意味着流中的每个元素都需要分配其事件时间戳。这个通常是通过抽取或者访问事件中某些字段的时间戳来获取的。时间戳的分配伴随着水印的生成,告诉系统事件时间中的进度。下面介绍几种自定义事件时间戳方法1.在数据流源中定义可以看Flink静态Session Windows这边文章里面有2.使用DataStream API中的assignA...原创 2019-06-23 11:42:31 · 7610 阅读 · 0 评论 -
Flink静态Session Windows
1.Session Windows会话窗口分配器按活动会话对元素进行分组。与翻滚窗口和滑动窗口相比,会话窗口不重叠并且没有固定的开始和结束时间。当会话窗口在一段时间内没有接收到元素时,即当发生不活动的间隙时,会话窗口关闭。会话窗口分配器可以设置静态会话间隙和动态会话间隙(其中会话间隙为session gap)。如下图:2.使用Flink自带的示例:package org.apache.fl...原创 2019-06-22 13:37:27 · 212 阅读 · 0 评论 -
flink的分区key指定方法
flink窗口函数和group by,join,coGroup算子都需要指定key进行转换。下面的介绍一些key几种方式1.根据字段位置。主要对tuple类型,pojo类会出错。注意:这个是相对于最外元素而言,同时不能指定嵌套里面的位置指定嵌套里面的字段为key,从结果看出是按照嵌套的第二字段分区的但是以第一个进入为第一个字段了。2.根据字段名称,主要是pojo类。但是对sum这种聚合函数都...原创 2019-06-15 21:21:15 · 2947 阅读 · 0 评论 -
Windows环境下idea编译flink1.7.2源码
最近看了了flink很多知识,于是决定编译一下源码,方便以后的学习。1.官网下载flink1.7.2源码,解压2.将源码导入idea3.查看一下idea有没有安装代码检查插件和相应的设置。可以参照官网。不然会报错。我这里没有设置IDE的配置而是在解压的当前目录下执行了maven checkstyle plugin命令。网上我看很多人都是将顶级pom文件这个插件给注释掉了。执行命令或者注...原创 2019-06-15 18:55:01 · 1774 阅读 · 0 评论 -
Flink自定义source
有些维度表是存在于Redis或者MySQL中需要读取这些数据,但是现在官网只有Sink。于是可以通过自定义一个Source来实现。自定义的Source需要实现(SourceFunction、ParallelSourceFunction)或者扩展(RichSourceFunction,RichParallelSourceFunction)其中的任意一个。下面的代码实现一个读出本地文件的一个Sour...原创 2019-06-18 23:27:46 · 1220 阅读 · 0 评论 -
IDE安装protobuf插件
1.在IDE上面按照protobuf插件2.在POM文件填加下面插件和jar包 <properties> <scala.version>2.11.12</scala.version> <spark.version>2.1.0.5</spark.version> <grpc.ver...原创 2019-06-18 20:09:34 · 2639 阅读 · 1 评论 -
window环境下使用IDEA开发第一个Fink程序Wordcount
1.下载netcat并解压,在当前目录下执行nc.exe -l -p 9000注意:有些杀毒软件会阻拦2.在IDEA编写代码(注:一定要引入防止出现隐式转换出错 org.apache.flink.streaming.api.scala.)import org.apache.flink.streaming.api.scala.import org.apache.flink.streami...原创 2019-06-07 08:46:49 · 298 阅读 · 0 评论 -
idea使用Scala编写第一个Kafka+Flink问题总结
1.需要添加flink-streaming-scala_2.11的pom文件2.如果报隐式转换失败:Error:(20, 31) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String]在代码中引入一下包:...原创 2019-06-06 17:03:47 · 1327 阅读 · 0 评论 -
Flink数据流类型转换
Flink为流处理和批处理分别提供了DataStream API和DataSet API。在开发工作中都是利用这些API进行程序编程。不同DataStream之间转换从而形成stream图。网上Flink1.4流程转换图有点旧,不过也能说明之间的转换关系。从上面的转换关系可以看出各种不同的流通过operator最后都转换为DataStream。可以从官网查看各个流的转换关系https://ci....原创 2019-08-11 20:14:53 · 4511 阅读 · 0 评论