Flink
文章平均质量分 62
Flink实战
upupfeng
贵有恒,要坚持~~
展开
-
Flink自定义OutputFormat将DataSet写入Kafka
说明在项目中需要读取HDFS文件,将文件内容写入Kafka。在Spark中是有现成支持的,但是由于项目用的是Flink,为了统一技术栈,于是采用Flink来实现。Flink的DataSet中只提供了几个写入HDFS的方法,其他的需要自己实现。看看代码就能发现DataSet中的写出都是通过OutputFormat接口的实现类来支持的,并且提供了output方法供我们传入OutputFormat的对象。// 使用OutputFormat写出DataSetpublic DataSink<T>原创 2021-05-05 11:32:31 · 1501 阅读 · 0 评论 -
Flink DataStream readFile中FilePathFilter存在的坑
说明最近有需求需要实时监控HDFS指定目录,然后对新增文件的每一行进行处理。采用了Flink DataStream API的readFile方法来实现。文件都是.gz结尾的,也会存在脏文件进来,所以需要对文件名进行过滤,于是就用FilePathFilter。在不过滤之前,可以正常监听目录;但是加了过滤后就不能监听了。纳闷了好一会,后来点进去仔细看了看源码,才发现是使用FilePathFilter的姿势有问题。这里的FilePathFilter居然是用来过滤目录的。。。实现代码如下:代码摘自原创 2021-04-10 21:31:27 · 723 阅读 · 1 评论 -
Flink中DataGeneratorSource和DataGen Connector的使用
在我们学习Flink的时候,往往需要写很多的代码去造数据,会浪费很多时间,Flink为DataStream和Table&SQL Api提供了生成数据的Source,我们可以方便的使用。先说一下DataStream提供的DataGeneratorSourceDataGeneratorSource描述DataGeneratorSource抽象了数据生成器,可以轻松的生成数据。DataGeneratorSource有状态、可以并行。DataGeneratorSource的构造器需要传入dat原创 2021-03-22 23:08:41 · 3036 阅读 · 0 评论 -
Flink日志配置
介绍flink在本地运行和on yarn运行时的日志配置。很多现代框架都是用门面模式进行日志输出,例如使用Slf4j中的接口输出日志,具体实现类需要由log4j,log4j2,logback等日志框架进行实现。Flink 中的日志记录就是使用slf4j日志接口实现的。Slf4j简要说明slf4j全名Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面说白了就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。s.原创 2021-03-06 10:00:26 · 16150 阅读 · 7 评论 -
Flink JDBCSink使用及源码解析
以下所有都是基于Flink 1.12.0版本Flink JDBCSink的使用flink提供了JDBCSink方便我们写入数据库,以下是使用案例:pom依赖需要引入flink-connector-jdbc的依赖。另外,我这里是写入mysql,所以还引入了mysql的驱动包<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-jdbc_2原创 2021-02-28 19:45:41 · 10479 阅读 · 6 评论 -
Flink自定义Source实现对HDFS文件进行tail -f操作
背景需要读取HDFS上变化的日志文件,对每一行进行处理,就是类似于Linux中tail -f实现的功能。看了看好像Spark和Flink都没有类似的支持,于是就用Flink自定义了Source实现了这个功能。实现思路维持一个当前读取位置的偏移量,然后每隔几秒去看下文件的大小是否大于当前偏移量。如果最新文件大小大于当前偏移量就读取数据,并将当前偏移量设置为最新的文件大小;反之,不做任何操作。以下的代码,还没有把当前读取位置存储到状态中,如果重启会重头开始读。实现代码自定义Sourcepacka原创 2021-02-12 21:21:47 · 2442 阅读 · 3 评论 -
Flink动态添加依赖Jar包提交到Yarn
背景开发的flink程序,要使用yarn-cluster的方式进行部署。程序中依赖了很多第三方jar包,不想用shade那种打包方式打成一个大jar包,然后提交。想将应用程序jar包和依赖jar包分开,依赖的jar包在提交时一起提交上去(像spark on yarn直接指定“–jars”这样),但是找了好久发现flink官方没有提供这样的方式。直接将依赖的jar包放在flink的lib目录下,可以实现,但是感觉这样会污染flink的lib包。于是找到了如下方法,可以实现类似的功能。在此记录分享一下原创 2021-02-06 22:17:38 · 3750 阅读 · 1 评论 -
Flink自定义生成测试数据的Source
Flink通过实现SourceFunction接口来自定义非并行的Source,实现ParallelSourceFunction接口来自定义并行的Source。实现SourceFunction需要重写以下两个方法:run 发射元素cancel 关闭source为了测试开发,以下实现一个Source来生成测试数据。生成如下格式的流量测试数据:用户id|城市id|上行流量|下行流量|发生时间471|4|0.0745|0.3826|1609863101410495|0|0.5707|0.327原创 2021-01-06 00:25:53 · 1271 阅读 · 0 评论 -
Flink
文章目录什么是Flink?Flink优点分层抽象架构Flink比Spark做的好的地方最后本文将简单介绍Flink的概念、优点、架构,以及Flink比Spark做的好的地方什么是Flink?借官网的一句话。Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界的数据流上进行有状态的计算。首先,Flink和Spark一样,都是分布式的计算框架,用来处理大规模数据;其次,用于在无边界和有边界的数据上计算,有无边界起始就是我们常说的批和流,Flink现在在流处理方面所向披靡,在近来的原创 2021-01-02 21:33:36 · 163 阅读 · 1 评论 -
flink1.10.1源码编译
记录一下鼓捣flink1.10.1源码编译的过程原创 2020-08-27 22:43:57 · 797 阅读 · 0 评论