flink
专注flink开发
ASN_forever
这个作者很懒,什么都没留下…
展开
-
flink读取有界流时开时间窗遇到的问题
有界流:不知道有没有这个概念,我这里用它表示以流处理的方式读取的批数据,比如streamExecutionEnvironment.fromCollection(...)其实这种做法或需求是比较奇怪的,要用流处理,但读的却是批数据,最好用流处理api处理流数据,用批处理api处理批数据。我这里之所以有这样反人类的设计,是出于批处理一次性读取全部数据有可能会内存溢出的情况下考虑的。想通过流的方式读取批数据来解决。但是后面想了想,这好像简直是一厢情愿。批量读取数据后交给流处理api,这只是处理的过程按原创 2020-07-01 15:56:46 · 649 阅读 · 1 评论 -
flink countWindow计算每个学生的总成绩
需求假设学校的财务系统要出一个新功能,类似于年度账单。统计每个学生过去一年往一卡通中的总充值金额。其实这种需求完全不用开窗,可以直接使用批处理,groupBy()后reduce()即可。当然,也可以使用流处理通过开窗实现聚合。下面分别介绍。批处理public static void main(String[] args) throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecu原创 2020-06-30 17:00:30 · 1772 阅读 · 0 评论 -
flink窗口相关概念
窗口窗口是无界流处理程序的核心。窗口能够将一个无界流切分成一个个有限大小的桶,以便进行计算。窗口根据流的类型(keyed stream和non-keyed stream)分为两种,分别是keyed window和non-keyed window。它们的结构如下所示(方括号表示是可选的),可以看到,区别就是是否使用了keyBy。窗口的声明周期简而言之,当属于此窗口的第一个元素到达窗口时此窗口才创建(created)。当时间(event or processing time)经过截止时间+.原创 2020-06-29 16:40:13 · 695 阅读 · 0 评论 -
flink reduce算子
reduce算子是flink流处理中的一个聚合算子,可以对属于同一个分组的数据进行一些聚合操作。但有一点需要注意,就是在需要对聚合结果进行除聚合操作之外的操作时,有可能会失效。比如下面一段代码:public static void main(String[] args) throws Exception { StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnviro原创 2020-06-11 13:55:41 · 2216 阅读 · 0 评论 -
flink table无法取非group by的字段
有的时候我们希望获取非group by的字段,这时候发现flink的table api不支持,会报错。比如groupbya,b的时候selectc,d,则会报错expressioncisnotbeinggrouped。其实这是一个SQL规范(SQL92标准),像在mysql5.7及以上版本中,默认的sql_mode=only_full_group_by。这个配置就要求select后的字段要么是group by后的字段,要么是聚合函数。否则会报错。mysql中可以通过修改配置来解决这...原创 2020-06-10 15:27:36 · 3424 阅读 · 1 评论 -
flink不同环境动态传参
在实际生产中一般都有多个环境,比如开发环境,测试环境,生产环境等等。不同的环境机器不同,一些组件的配置也不同,因此一个flink作业在不同的环境运行时需要指定对应的参数。本文以动态配置不同环境的apollo.meta为例,介绍在web ui以及flink shell两种方式提交作业时如何动态指定参数。jobpublic static void main(String[] args) throws Exception { StreamExecutionEnvironmen原创 2020-06-09 12:36:40 · 1741 阅读 · 0 评论 -
exceeded the 80 characters length limit and was truncated.
flink任务在idea调试时没有问题,但提交到standalone集群上运行时,发现没有数据。看日志发现下面这段信息:2020-06-04 21:05:05,897 WARN org.apache.flink.metrics.MetricGroup - The operator name DataSource (at createInput(ExecutionEnvironment.java:576) (com.asn.re.warehouse.d原创 2020-06-04 21:35:57 · 5471 阅读 · 1 评论 -
flink1.10配置rocksdb保存checkpoint时,idea运行报错
首先,使用rocksdb需要引入依赖:<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-statebackend-rocksdb --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-statebackend-rock原创 2020-05-27 15:51:46 · 930 阅读 · 1 评论 -
flink1.10 在yarn上运行job报内存超出
./bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 -s hdfs://master:9000/flink/checkpoints/d15750eebe118cccb93b4450a008e4d3/chk-158/_metadata -c stream.TestKafkaCheckpoint /var/flink/data/jars/flink-1.0-SNAPSHOT.jarorg.apache.flink.client.program.Prog.原创 2020-05-27 09:25:10 · 5352 阅读 · 1 评论 -
flink1.10.0 on yarn三节点高可用集群搭建
jobmanager高可用jobmanager负责任务调度和资源管理。默认情况下,一个flink集群中只有一个jobmanager实例。这就存在单点故障:当jobmanager宕机时,不仅无法提交新的任务,同时正在运行的任务也会失败。通过配置jobmanager的高可用,就可以从jobmanager的失败中恢复过来,解决jobmanager的单点故障问题。对于standalone集群和yarn集群,都可以配置jobmanager的高可用。本文主要介绍yarn集群下的jobmanager高可用原创 2020-05-20 15:45:03 · 1244 阅读 · 0 评论 -
flink1.10三节点集群之yarn-session模式
提前搭建Hadoop集群环境,可以参考这篇文章。本文章的集群环境:机器 ip 服务 flink1 172.21.89.128 flink2 172.21.89.129 flink3 172.21.89.130 安装配置flink安装参考这篇文章启动一个yarn session(分配1g的jobmanager和4g的taskmanager)[root@flink1 flink-1.10.0]# ./bin/yar...原创 2020-05-19 21:05:15 · 10419 阅读 · 3 评论 -
flink1.10三节点集群standalone模式搭建
各台机器上提前准备jdk1.8以及上的java环境,并且配置ssh免密登录。集群环境flink1:172.21.89.128 jobmanager flink2:172.21.89.129 taskmanager flink3:172.21.89.130 taskmanager 在flink1上做flink配置,主要是flink-conf.yaml、masters和slavesflink-conf.yaml:jobmanager.rpc.address: fl原创 2020-05-19 16:59:45 · 3173 阅读 · 0 评论 -
flink报错:JobManager responsible for xxx lost the leadership
查看jobmanager日志:standalonesession-0-master.log2020-05-16 21:46:53,511 WARN akka.remote.ReliableDeliverySupervisor - Association with remote system [akka.tcp://flink-metrics@master:3821] has failed, address is now gated for [50] m.原创 2020-05-18 09:50:18 · 4990 阅读 · 1 评论 -
flink读写MySQL的两种方式
目前跑通的读写MySQL的方式有两种,一种是直接使用flink自带的JDBCInputFormat和JDBCOutputFormat,另一种是自定义source和sink。方式一:使用自带的JDBCInputFormat和JDBCOutputFormatpublic class ReadWriteMysqlByJDBC { public static void main(String[] args) throws Exception { ExecutionEnvironme原创 2020-05-09 17:16:58 · 4234 阅读 · 3 评论 -
No factory implements 'org.apache.flink.table.factories.DeserializationSchemaFactory'.
Caused by: org.apache.flink.table.api.NoMatchingTableFactoryException: Could not find a suitable table factory for 'org.apache.flink.table.factories.DeserializationSchemaFactory' inthe classpath.R...原创 2020-04-10 13:29:51 · 2668 阅读 · 1 评论 -
flink整合apollo
1.使用flink的maven骨架快速创建一个maven项目2.添加apollo及其他所需依赖<!-- apollo --> <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</art...原创 2020-03-11 18:34:14 · 1131 阅读 · 0 评论 -
centos7搭建flink-1.7.2-bin-hadoop27-scala_2.12 yarn模式集群
flink集群flink可以基于自身的standalone模式进行分布式集群计算,也可以利用第三方资源管理器完成分布式集群计算。目前比较流行的第三方资源管理器包括Hadoop Yarn,Apache Mesos,Kubernetes等。但是相对来说,因为yarn能够同时支持hadoop mapreduce和spark等大数据框架,因此普遍使用yarn模式来管理集群资源。因此这里主要对yarn模...原创 2019-10-20 01:23:22 · 1005 阅读 · 1 评论 -
IDEA配置flink开发环境及local集群代码测试
背景:最近公司需要引入flink相关框架做一些大数据报表分析的任务,之前没有实际接触过flink,所以需要学习一下。此外,防止看完就忘,也为了后续的回顾学习,因此在这里做一个整理,也希望帮助到有需要的朋友。环境准备:我这里是在自己的笔记本上搭建的环境VMware 安装centos7虚拟机 并配置好网络等 win10安装idea 并配置maven(要求3.0以上,我用的3.6.2)...原创 2019-10-19 15:28:29 · 2258 阅读 · 0 评论