- 博客(56)
- 收藏
- 关注
原创 flink入门之StreaimingFileSink的使用
需求:用flink实时消费kafka信息,将信息存储到hdfs上。方案:用flink提供的StreaimingFileSink方法。
2020-11-12 16:46:47
1215
原创 Flink WebUI中查看成功提交的偏移量指标为负值
1.问题在一个flink任务提交后,我去 WebUi去查看偏移量的指标,发现值竟然是个负数(如下图):这个指标官网上给出的释义是:对于每个分区,最后一次成功提交到Kafka的偏移量;所以不管怎么说,这个值都不是正常的。2.结论先给问题的结论(解决办法):之所以出现这样的值,是因为没有设置checkpoints的原因。3.详解但为什么不设置ck,这个指标就会变成负值呢?这就要我们深入源码去看啦首先,我们定位到这个类:org.apache.flink.streaming.connectors
2020-09-05 15:59:51
1028
原创 flink采用分离模式提交报错:java.lang.NoSuchMethodError
问题背景最近在写完一个flink项目后打包到集群运行,提交时因为满脑子想着周末怎么去浪,结果提交完发现提交命令忘记了-d参数,无奈只能手动kill掉任务,然后加上-d参数重新提交,结果问题就出现了,flink任务刚刚提交到yarn就会报如下错误:排查问题没有办法,只能顺着错误日志去寻找问题,第一步,先看大致错误:java.lang.NoSuchMethodError:org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest.newIn
2020-08-20 17:31:37
2079
原创 maven编译出错:Could not find artifact:jdk.tools:jdk.tools:jar:1.8 at specified path
最近在开发项目打包时,遇到了一个错误:Could not find artifact jdk.tools:jdk.tools:jar:1.8 at specified path一涉及到maven的错误,我就觉得很头大,特意在此记录一下:主要原因:hadoop-common依赖带了 tools的文件,和本机jdk带的冲突解决:排除掉依赖中的jdk.tools <dependency> <groupId>org.apache.hadoop</
2020-08-19 17:24:18
8064
2
原创 flink入门之scala实现异步IO访问redis及踩坑记录(2)
我们在flink入门之scala实现异步IO访问redis及踩坑记录(1)中采用jedis来模拟异步读取redis,那么在本篇,我们要采用redis的高级客户端lettuce,这个客户端很强大,支持异步操作,如果想具体了解的请移步:Redis高级客户端Lettuce详解首先我们导入依赖: <dependency> <groupId>io.lettuce</groupId> <artifactId>lett
2020-08-19 11:55:57
992
原创 正确使用Flink广播流以及记录Flink做checkpoints失败情况
最近在做项目的时候,涉及到这样的一个场景,就是要把一个比较小并且不会经常改动的表作为维表,和实时流进行匹配。这张表是MySQL中的一个表,我的第一反应就是读取这张表进行广播。文章目录不优雅的广播流使用使用广播流造成的写入检查点失败优雅使用广播流不优雅的广播流使用简要代码如下:val env = StreamExecutionEnvironment.getExecutionEnvironmentval broadcastMysql = env.addSource(new SourceFromMySQ
2020-08-18 19:24:23
2102
原创 读取hdfs上snappy压缩文件并发送kafka的两种方式速度测试
最近有一个需求,因为第一次做,踩了许多坑,故在此记录一下需求背景:现在hdfs上有一份snappy压缩的文件,要把这份文件中的数据读出来并发送给kafka解决思路平时我90%的时间都是在消费kafka,现在要写入kafka,我承认我第一反应是懵逼的;不过这并难不倒天资聪慧的我,我首先想到的就是用spark去读出数据后,直接发送给kafka;so easy~问题记录Ⅰ、解析json问题我用spark很快的就写好了代码,大概如下:val rdd = spark.read.schema(schem
2020-07-21 20:06:36
1134
原创 idea小bug:找不到或无法加载主类以及修改代码不生效
今天我像往常一样,打开idea,在本地调试程序,但是却出现:错误: 找不到或无法加载主类我一脸懵逼,想着为什么会出现这个无厘头的错误,回忆起上午貌似有一个程序卡住了,在我结束掉程序时idea未响应,我就强制关闭了idea,或许跟这个有关系;在我不断摸索下,找到了解决办法:1.菜单—》Build—》Rebuild Prodject2.菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然
2020-07-08 19:30:01
399
原创 spark和flink读取csv文件对比
最近总是会有需求要涉及到读取csv文件,以前总是拿到文件就去读,没有仔细去看相关的方法和功能,现在结合最近的需求,记录一下spark和flink读取csv文件的操作。(注:本文内容针对spark2.3.0以及flink1.9.1)spark:本来想自己总结一下,但是这里有位大佬写的很详细,可以直接参考:https://blog.csdn.net/weixin_42411818/article/details/98734464举个简单的小例子,现在我们有这样一份csv文件我们只想读uuid和ph
2020-05-11 11:56:52
811
原创 一次Spark SQL提取数据所遇到的问题
目录需求背景及解决思路问题Ⅰ:csv编码问题问题Ⅱ:shuffle前后的分区问题问题Ⅲ:broadcast join不生效问题Ⅳ:sparksql关于stage的划分需求背景及解决思路boss给了一份csv文件,要求从数仓中的点位表中筛选出csv文件中点位所对应的uuid信息;需求很简单,用spark读取csv文件,然后join数仓的点位表即可,伪代码如下:(csv文件2M,数仓中的点位表100亿数据)... val frame = sparkSession.read.csv(localpath
2020-05-09 18:27:01
1301
原创 hbase的SingleColumnValueFilter和addColumn的坑
问题:最近在查一张Hbase表时,设定单列过滤器,取time列时间为某一天的数据:filterList.addFilter(new SingleColumnValueFilter(Bytes.toBytes("cf"), Bytes.toBytes("time"), CompareFilter.CompareOp.GREATER_OR_EQUAL, new BinaryComparator(B...
2020-04-20 14:51:00
1060
原创 flink入门之scala实现异步IO访问redis及踩坑记录(1)
问题在使用sparkstreaming的过程中,我们经常有一个需求是把中间变量写到redis,然后在流程序中去读redis的中间变量。在sparkstreaming中,我们只需要用个foreach算子就能实现这种需求,那flink中没有foreach算子,我们该如何做到流程中读redis的数据呢?方法我们可以用flink的异步IO访问redis完成这种操作实现import java.ut...
2020-04-08 18:41:44
1756
5
原创 flink入门之使用JSONKeyValueDeserializationSchema反序列kafka消息
背景需求在日常生产中,我们大多数时候都会用到flink的kafka connector,在使用过程中,大多数的程序员都会使用new SimpleStringSchema()来反序列化Kafka中的数据,然后使用alibaba提供的fastJson来解析数据例如: val jsonObject = JSON.parseObject(jsonStr) val eventId = JSON....
2020-03-31 17:56:50
4808
原创 理解flink的时间概念和watermark
最近在慢慢看flink的知识,我们都知道,flink和sparkstreaming的一大区别就是flink支持多种时间类型以及增加了watermark水位的概念,那么flink增加的这些功能有什么好处呢?文章目录时间类型watermark时间类型对于流式数据,最大的特点就是数据上带有时间属性特征,flink根据时间产生的位置不同,将时间分为三种概念。1.Event Time 事件...
2020-03-24 15:30:28
365
原创 测试写Hbase的三种不同方法的性能
文章目录背景测试条件结论代码1.PutList2.saveAsNewAPIHadoopDataset3.BulkLoad测试中出现的问题汇总1.Exception in thread “main” java.lang.IllegalArgumentException: Can not create a Path from an empty string2.java.io.IOException: ...
2020-03-18 11:45:07
1024
原创 sparkStreaming监听失败task并发详细信息到邮箱
背景:最近开发一个实时项目,项目正常运行,但是会有task失败的情况,如下图:虽然spark有task失败重试机制,这种失败也并不会影响到程序的运行以及最终结果的,但是既然是失败终究是有错误的,作为一名强迫症晚期患者,必须把这刺眼的红色去掉,那么我们就要按照惯例去看日志了。问题:我们需要去task失败的那个节点查看日志,但是问题随之而来,实时任务是不间断的输出日志,我们想要在浏览器打开一...
2020-03-11 17:34:18
617
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅