Flink
小白鸽
啥都会一点,啥都不精的半吊子程序员
展开
-
Flink数据统计UV、PV统计(三种写法)
做了那么多次flink统计,发现我居然没写过uv,pv统计(因为uv,pv实时统计,公共平台帮做了)。 public static final DateTimeFormatter TIME_FORMAT_YYYY_MM_DD_HHMMSS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); ... Properties prop...原创 2020-04-10 11:25:33 · 9305 阅读 · 17 评论 -
Flink MapState的ConcurrentModificationException问题
直接上代码import com.alibaba.fastjson.JSON;import com.tc.flink.analysis.label.bean.output.ItemIdWithAction;import org.apache.flink.api.common.functions.RichMapFunction;import org.apache.flink.api.commo...原创 2020-01-13 15:46:32 · 1636 阅读 · 1 评论 -
Flink 自定义Trigger
需求,滑动窗口统计,keyby下过来一条就触发窗口统计,如果没消息过来,按30s触发一次窗口。只能自定义Trigger直接上代码import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.tc.flink.conf.KafkaConfig;import org.apache.fli...原创 2019-11-06 16:34:10 · 1348 阅读 · 3 评论 -
Flink入门(十六) State
Flink的state主要是有两种:Keyed State主要依赖于KeyedStreamOperator Statenon-keyed state这两种存在于两种形式:Managed State(由flink-runtime控制的结构化数据)Raw State。举例说明Managed State使用方法。//用户点击方案的事件操作DataStream<ItemI...原创 2019-06-24 15:05:49 · 366 阅读 · 0 评论 -
Flink入门(十五) 写入hdfs文件csv格式,自定义StreamWriterBase
上篇文章Flink入门(七) 写入HDFS现在,我想把java-bean写入csv文件。有两种方式,第一种将增加map,将bean改成string类型(以“,”分割),但不可以复用。第二种方式,重写StreamWriterBase,类似于StringWriter。代码如下import org.apache.flink.api.java.io.CsvOutputFormat;import...原创 2019-06-19 14:39:47 · 3387 阅读 · 3 评论 -
Flink入门(十四)大job的StateBackend压力测试
最近有这样需求,两个topic消息interval-join。其中一个topic是,展示列表的详细信息(曝光),大约20分钟,有100G大小(主要从服务端发送);另外一个topic是,用户操作列表(点击、下单),由前端发送,数据很少,大约10分钟几十M,action表示操作,itemId表示方案的唯一标识符,itme表示操作时间,unionId表示用户唯一标识符。{"action":"cl...原创 2019-06-19 12:18:32 · 1622 阅读 · 4 评论 -
Flink Keyby(Java-bean)类型
最近在改业务代码,以前都图省事了全部用tuple,代码经常出现DataStream<Tuple2<Tuple7<String,String,String,String,String,String,String>,Integer>>,发现后期很难维护,时间久了,也不一目了解每个string代表什么意思。全部改为Java POJO方式。例如下面代码 Dat...原创 2019-07-24 10:43:44 · 3461 阅读 · 0 评论 -
Flink 再谈State Backends
最近做数据统计时候,在做大状态数据管理时候,发现问题。因为大状态,我没开checkpoint。申请了6个容器资源,但半小时内就出现slot container丢失,重启。每隔半小时重启,但开了(ck)checkpoint,采用RocksDBS发现很少出先slot丢失重启。一直不明白,开始以为ck会消耗性能,没开CK为什么会经常重启。问了相关人员、查了相关文档才明白。没开启ck的时候,状态...原创 2019-07-30 14:18:47 · 280 阅读 · 0 评论 -
Flink-Sql自定义UDF
最近尝试使用flink的table-sql,发现没有from_unixtime函数,只能自定义该udf。原始kafka消息日志{"action":"exposure","itemId":"16c65063e51d4d834722bf1a4b1d6378@TT@1576","rankIndex":14,"time":"1563641998","unionId":"ohmdTtymqiQw5aSx...原创 2019-07-22 15:24:21 · 7419 阅读 · 0 评论 -
Flink排查watermark坑
最近有这样需求,消息中间件可能有延迟消息,比如延迟5分钟后数据,可以摒弃。参考TimeLagWatermarkGenerator DataStream<Tuple2<String,Integer>> filterStream= stream.filter(s -> s != null && !s.trim().equals("")) ...原创 2019-08-08 16:53:54 · 1010 阅读 · 1 评论 -
Flink打包编译问题
在打包编译1.9 flink时候,出现这个问题。[ERROR] Failed to execute goal on project flink-avro-confluent-registry: Could not resolve dependencies for project org.apache.flink:flink-avro-confluent-registry:jar:1.9-SNAP...原创 2019-08-14 14:35:15 · 3051 阅读 · 0 评论 -
Flink入门(十三) 读RocketMQ-Flink消息
github已经有开源地址RocketMQ-Flink直接把代码复制到自己代码中这里面我新建一个类org.apache.rocketmq.flink.common.serialization.SimpleStringDeserializationSchemapackage org.apache.rocketmq.flink.common.serialization;import or...原创 2019-05-28 16:39:13 · 13965 阅读 · 18 评论 -
Flink入门(十二)自定义eventTime
kafka消息是自带timestamp的,但有的时候需要自定义eventTime,直接上代码 final StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment(); env.setParallelism(2); //这里我采用eventTi...原创 2019-05-27 15:17:04 · 2967 阅读 · 3 评论 -
Flink入门(十一) state状态update更新
有这样需求,统计每个小时,一个线路被点击次数,需要每30秒统计一次写入redis,采用Slide窗口滑动,但发现一个问题,当key没有新的消息消费,当(key,value)的value不变的,滑动统计还是会输出统计值,这个key的value就没必须要写入redis。所以采用ValueState的update更新,代码如下: DataStream<Tuple2<S...原创 2019-05-23 19:55:58 · 5923 阅读 · 2 评论 -
Flink入门(十)异步多线程Mysql打宽表,加维度
有这样需求,消息发来是有站点名,但与需要和mysql中维度表join出站名名的三字码(唯一标识符)。flink版本1.6.3,maven配置如下: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</a...原创 2019-05-07 16:01:33 · 8661 阅读 · 1 评论 -
Flink入门(九)batch读csv文件
原数据结构parent_order_no,member_id,union_id,extra_cost,create_dateTW168D72A322BWWAA6KGP1608,100001608,ohmdTt8m7-j8VXCvHhG2LFVTlNrs,40.0,2019-03-08TW1694B5C000BPDWOJG5D2464,100002464,ohmdTtyEE9Rh4T-ZPq0...原创 2019-05-05 16:15:15 · 4092 阅读 · 3 评论 -
Flink入门(八) checkpoint与savepoint区别
checkpoint是自动的,一般30s触发一次,如果在控制台cancel任务,checkpoint都会被清空。默认checkpoint功能是disabled的。savepoint是手动的,适合场景大的窗口或则是状态任务,让每次启动要重复计算好多数据 flink savepoint b9a0bd873d0546e9d4511347c8031b74 /tmp/flink/savepoints/...原创 2019-03-22 10:35:10 · 1751 阅读 · 0 评论 -
Flink入门(七) 写入HDFS
maven依赖增加 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-filesystem_2.11</artifactId> <version...原创 2019-03-06 18:13:14 · 17773 阅读 · 39 评论 -
Flink入门(六)Table-Sql
连接kafka final StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment(); StreamTableEnvironment tableEnvironment = TableEnvironment.getTableEnvironment(env);...原创 2019-02-22 17:55:13 · 3384 阅读 · 3 评论 -
Flink入门(五) 实时流Join ElasticSearch6维度表
需求实时流需要和维护表Join做属性的扩展.Spark-Streaming可以 stream join hive表.flink没发现这个功能,所以将维度表放在ES上.maven依赖 &amp;amp;amp;amp;lt;properties&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;project.build.sourceEncoding&amp;amp;amp原创 2018-12-18 18:54:52 · 5385 阅读 · 2 评论 -
Flink入门(四) ElasticSearch6 update操作
软件版本ElasticSearch6.3Flink 1.6.2maven依赖 &lt;dependency&gt; &lt;groupId&gt;org.apache.flink&lt;/groupId&gt; &lt;artifactId&gt;flink-connector-elasticsear原创 2018-12-12 18:25:45 · 5680 阅读 · 8 评论 -
Flink入门(三) 读写kafka
maven配置 &lt;properties&gt; &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; &lt;flink.version&gt;1.6.2&lt;/flink.version&gt;原创 2018-11-22 15:34:19 · 3646 阅读 · 0 评论 -
Flink入门(二) 基本概念
Tasks与Operator Chainsflink将每一个task拆成多个subtask.每一个substask就是一个thread.比如上图上部分,有三个task任务,拆解成5个substask,就是5个线程(如上图下部分)Job Managers, Task Managers, ClientsJobManagers:亦叫master节点, 负责任务协同调度...原创 2018-06-16 22:00:06 · 1407 阅读 · 0 评论 -
Flink入门(一)本地执行workcount
本地执行Flink demo开发工具IDEAmaven配置 &amp;lt;properties&amp;gt; &amp;lt;project.build.sourceEncoding&amp;gt;UTF-8&amp;lt;/project.build.sourceEncoding&amp;gt; &amp;lt;project.原创 2018-05-09 00:12:59 · 1463 阅读 · 0 评论