Flink的一些学习点

  • Flink学习资料怎么找~
  1. 首先作为初学者我建议大家先了解一下官网,官网是最全的API,磨刀不误砍柴工

  官网地址:https://flink.apache.org/

   为了不动脑子的人,官网也整理了个中文版:

https://flink.apache.org/zh/

  1. 当有了基础概念之后,可以下载代码动手操作了:

https://github.com/apache/flink

可以练习手写一些案例,不手写代码就能学好的,我没见过,天才除外。

  1. 这时候你学会了基础,然后又对一些概念或者知识点有疑问,赶紧打开网站:

https://www.bilibili.com/ 搜索 ‘Flink关键字’:

 

附上官网指定路径:https://ververica.cn/developers/flink-training-course3/

  1. 如果想做一些有意思的项目跟场景而又无处下手怎么办,这是很多想学,想做Flink的朋友的瓶颈,没关系,业务场景都在这里:

https://yq.aliyun.com/articles/691499?spm=a2c4e.11153940.blogcont692364.11.76bf2da5mHGlBB

简单的案例(是不是觉得没那么难~):

 

扫描二维码关注公众号,回复: 8747448 查看本文章
  1. 公众号:

 

 

 

  1. 在你动手实现这写业务场景的时候肯定会遇到各种问题,毕竟你才开始学习跟开发,遇到问题怎么办???
  • 遇到问题怎么去解决~
  1. 百度:xxxxx
  2. Flink有自己的邮件网站 :http://apache-flink.147419.n8.nabble.com/
  3. Stack Overflow : Committer 们会关注 Stack Overflow 上 apache-flink 相关标签的问题
  1. 还有具体的方式参考:https://flink.apache.org/zh/community.html#stack-overflow
  2. 在阿里社区,华为社区,腾讯社区都有相应的模块:
  3. https://cloud.tencent.com/developer/search/article-Flink (腾讯)
  4. https://yq.aliyun.com/teams/67/type_blog-cid_345-page_1?spm=a2c4e.11153959.0.0.26f735e8zAh24a(阿里云)
  5. https://www.aboutyun.com/forum.php?mod=forumdisplay&fid=443&orderby=lastpost&filter=lastpost&orderby=lastpost&page=2 (about云)
  6. https://segmentfault.com/t/flink 搜索相关答案
  7. 在钉钉群或者QQ群提问,下面会说。
  8. 最后提一句啊,有人在一些群里,你问问题,他会说私聊他,找你要红包啥的,别信,在群里回答问题要红包的遇到之后要坚决举报!!!个人非常反感。

7,广播流怎么实现。具体实现步骤,实现哪几个方法?

参考 :

https://mp.weixin.qq.com/s?__biz=Mzg3ODI1NzQ0MA==&mid=2247483655&idx=1&sn=e42be0461899397f121cfaf78f717d94&chksm=cf173548f860bc5eb204d7cc59aa11f98e0fa48f74e3f0410635bdf7d21727f26c0880dbef3f&mpshare=1&scene=23&srcid=#rd

 

https://www.jianshu.com/p/c8c99f613f10

8,问个问题,flink消费kafka数据,读字符串的时候怎么指定用avro反序列化 ,还是默认就是,或者是怎么读取Avro的kafka数据。

9,flink输出的文件名,需要根据记录来决定,输出到哪个文件。也就是文件名是动态的。这个要怎么实现呢?根据记录的日期,输出到 yyyy-mm-dd.log 文件?

参考官网:https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/connectors/filesystem_sink.html

11,RocksDBStateBackend 已经开启增量备份为啥每隔3次就会一次全量?

flink 还是全量的,增量的意思是,checkpoint 文件,增量上传到 hdfs

是数据倾斜导致的 数据只堆积在一个线程上执行导致的内存不足

13,StreamingFileSink和BucketSink 有什么区别嘛?大部分参数设置都差不多。

bs可以理解成低级api,但是更强大?sfs是封装的高级api,集成了一些外部系统做了适配

有个大佬说 StreamingFileSink 是社区优化后推出的

问flink elastic search插入速度慢,导致kafka消息积压。这个怎么处理,es sink有异步插入这种配置吗

15,有实现了写hdfs orc sink了么 ?

1.9 版本实现了

16, flink怎么批量查询hbase 或者类似的数据库:

https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/stream/operators/asyncio.html#the-need-for-asynchronous-io-operations

异步查询,将结果放到队列或者kafka 啥的。

不是很懂。。。。

https://www.cnblogs.com/Springmoon-venn/p/11103558.html

或者 Flink 自定义 connector

17,flink怎么通过rest api 重启一个job

参考:

https://blog.csdn.net/qq_27710549/article/details/80500857

https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/rest_api.html

 

18,想请问一下大家单个slot分配多大得资源啊

看数据量,看并行度:用滑动窗口+redis来实现的

flink sink到hdfs,用BucketingSink还是StreamingFileSink好? 类似Flink写入 HDFS的问题出现过很多次了,重点要搞明白的,BucketingSink方式好一些。

21,离线JDBC支持update吗,总是报语法错误22, 请教大佬,flink StreamingSink 写入 hdfs,使用parquet格式。需要引入什么包嘛?

https://yq.aliyun.com/ask/477987

https://www.e-learn.cn/content/wangluowenzhang/756422

关于 状态存储,是否会存在时间过期,过期state是否会自动清除?怎么实现手动清除? Flink1.8 版本对state做了哪些改变?

https://mp.weixin.qq.com/s/u6vmpcY673ZjkArBqETGHA

25,Flink  CEP  https://blog.51cto.com/1196740/2361712

  1. Flink 的JOIN INTERVAL 了解吗?实现简单下订单跟付款超时SQL?
  2. 怎么阅读Flink源码,你有阅读过Flink源码吗?说说你看过哪些部分。

State你不设置TTL怎么会自动清除状态,除非你自己手动实现,1.8版本的更新不是默认自动清除State数据,只是对TTL做了一个性能上的优化,使TTL运作起来更有效率,不想清理不设置不就完了,默认就是没有开启的,状态就会一直累加

  1. Task slot是什么?

Task slot是一个TaskManager内资源分配的最小载体,代表了一个固定大小的资源子集,每个TaskManager会将其所占有的资源平分给它的slot。 
通过调整 task slot 的数量,用户可以定义task之间是如何相互隔离的。每个 TaskManager 有一个slot,也就意味着每个task运行在独立的 JVM 中。每个 TaskManager 有多个slot的话,也就是说多个task运行在同一个JVM中。 
而在同一个JVM进程中的task,可以共享TCP连接(基于多路复用)和心跳消息,可以减少数据的网络传输,也能共享一些数据结构,一定程度上减少了每个task的消耗

  1. Flink – SlotSharingGroup 

怎么判断operator属于哪个 slot 共享组呢?默认情况下,所有的operator都属于默认的共享组default,也就是说默认情况下所有的operator都是可以共享一个slot的。而当所有input operators具有相同的slot共享组时,该operator会继承这个共享组。最后,为了防止不合理的共享,用户也能通过API来强制指定operator的共享组,比如:someStream.filter(...).slotSharingGroup("group1");就强制指定了filter的slot共享组为group1

  1. Flink  Rich 函数 open 方法 是每来一条数据 执行一次还是怎么执行?

open 方法是每个并发线程执行一次一般用来初始化,而不是每条数据都执行一次。

  1. Flink  HA部署, Flink on Yarn搭建,这个~对新手可能会问一下,百度都有。
  2. Flink 怎么设置jvm的参数,对应哪些参数
  3. Flink  rebalance算子使用?怎么看数据倾斜?
  4. 使用mapstate保存中间状态时,checkpoint会把缓存清空,不清楚怎么回事,有大佬了解么?
  5. 在flink遇到性能瓶颈,如何查看是哪个算子卡住了呢?

57,消费kafka数据的时候,如果遇到了脏数据,或者是不符合规则的数据等等怎么处理呢?

先做filter过滤算子呗,不符合要求的过滤或者缓存到哪里

 

  1. flink jar包上传至集群上运行,挂掉后,挂掉期间kafka中未被消费的数据,在重新启动程序后,是自动从checkpoint获取挂掉之前的kafka offset位置,自动消费之前的数据进行处理,还是需要某些手动的操作呢?

明白一点,Flink+kafka 不需要我们去报错offset了,它会自动checkpoint

 

  1. Flink jobManager跟 taskManager内存大小设置多少比较好 ?

这个没有标准答案,看你的数据量跟业务处理,因为数据量大的话 你使用有状态的算子多,而且状态多的话,会吃内存,taskmanager 一般4G起步,如果日志报内存不足 或者GC问题,要代码业务调优,加大内存资源。

 

  1. taskManager Slot core的关系?

taskManager 里面有一个或者多个slot,一个slot有一个或者多个core,默认都是1个,需要调整的。

 

  1. flink的Python api怎样?bug多吗?

哈哈哈哈,有朋友在使用python开发,可以用,但是部分算子 API不一样。

 

  1. Flink VS Spark VS Storm ??

Storm淘汰掉把。Spark离线处理,ML目前还是主流,Flink两者特点都有,干就完事了 。

 

  1. 使用了ValueState来保存中间状态,在运行时中间状态保存正常,但是在手动停止后,再重新运行,发现中间状态值没有了,之前出现的键值是从0开始计数的,这是为什么?是需要实现CheckpointedFunction吗?

典型的没有理解state存储 ,state存储是在内存的 是通过checkpoint异步存储到磁盘或者hdfs,肯定要开启checkpoint的。

 

  1. Flink 1.9.0 ,flink-table_${scala_bin_version}这个artifact变成flink-table了,而且下载不到jar,我上central的repository看了,从1.7.2以上的版本,flink-table都缺少jar,哪位已经用起来1.9.0了,指点一下?

答:1.8之后就不再有flink-table的jar包了,都是用这个planner和common包

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-table-planner_2.11</artifactId>
    <version>1.9.0<version>
  </dependency>

 

发布了33 篇原创文章 · 获赞 7 · 访问量 9588

猜你喜欢

转载自blog.csdn.net/Baron_ND/article/details/102941959