Matty_Blog
码龄13年
关注
提问 私信
  • 博客:104,323
    104,323
    总访问量
  • 57
    原创
  • 1,757,052
    排名
  • 530
    粉丝

个人简介:当你的才华还撑不起你的野心时, 你就应该静下心来学习。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2012-02-29
博客简介:

foureyes

查看详细资料
个人成就
  • 获得106次点赞
  • 内容获得25次评论
  • 获得389次收藏
  • 代码片获得318次分享
创作历程
  • 5篇
    2021年
  • 52篇
    2020年
成就勋章
TA的专栏
  • Flink
    27篇
  • Kafka
    11篇
  • 规则引擎
    1篇
  • Java基础
    4篇
  • JUC
    1篇
  • 设计模式
    3篇
  • 数据结构和算法
    1篇
  • Interview
    4篇
  • JVM
    2篇
兴趣领域 设置
  • 大数据
    etl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Flink Forward Asia 2020:超大规模 Flink 调度优化

**作者介绍:**胡伟华/辛朝晖,字节跳动基础架构工程师整理:MWT(Apache Flink China 社区志愿者)**校对:**DJG(Apache Flink China 社区志愿者)**摘要:**本文主要介绍在字节跳动在比较大的规模的 Flink 应用场景下遇到的一些问题,以及在调度层面所做的一些优化。内容主要包括6个方面:相关背景:字节跳动的作业规模,以及在此规模下遇到的问题与挑战;黑名单机制:Flink 层面针对 NodeManager 异常节点所做的优化;启动速度优化:Flin
原创
发布博客 2021.03.07 ·
739 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

Flink源码编译:Flink1.11+版本编译及部署

文章目录1. 背景2. 官方推荐配置3. 现状4. 解决1. 背景从flink1.11开始,flink项目打包时不再强制依赖hadoop-common、hadoop-hdfs、hadoop-yarn-client等组件,虽然flink-hadoop-fs有依赖hdoop组件,如下: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</
原创
发布博客 2021.02.22 ·
806 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Kafka实战:KafkaConsumer#seek方法不生效

文章目录1. 背景2. 示例3. 结论1. 背景现需要在Kafka管理平台中加入数据预览功能,浏览topic最新的10条数据,我们需要用startOffset = HighWatermark - 10公式求出起始startOffset,从startOffset开始查询分区中的数据。但是,在使用KafkaConsumer#seek方法设置offset时不生效,KafkaConsumer#poll始终无法拉取到历史数据,更精确地说,始终只能拉取到最新插入的数据。环境:CDH 6.3.2Kafka
原创
发布博客 2021.01.28 ·
1946 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Flink源码剖析:自定义TableSink与TableFactory定位过程剖析

文章目录1. 背景2. user-defined redis sink2.1 RedisTableSinkFactory2.2 RedisTableSink2.3 RedisSink3. TableFactory定位1. 背景现有自定义redis sink的需求,我们借此学习一下如何自定义flink sink connector,以及flink是如何通过ddl建表语句中的properties来定位具体的TableFactory,进而创建StreamTableSink的。该文介绍的写法是Flink1.1
原创
发布博客 2021.01.19 ·
575 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Flink Forward Asia 2020:Flink SQL的功能扩展与深度优化

文章目录1. 背景及现状1.1 三种模式的分析1.2 腾讯目前的工作2. 窗口功能扩展2.1 新的窗口操作2.1.1 先Join再开窗2.1.2 Interval Join2.1.3 Windowing Table-Valued Function2.1.4 实现细节2.1.4.1 窗口的传播2.1.4.2 时间属性字段2.1.4.3 时间水印2.1.4.4 使用约束2.2 新的窗口类型2.2.1 Incremental Window2.2.1.1 多次触发2.2.1.2 Lazy Trigger2.2.2
原创
发布博客 2021.01.11 ·
689 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Flink源码编译:加快你的编译速度

文章目录1. 去除不必要的操作2. 用install替代package3. 指定hadoop版本和flink.shaded版本4. 失败继续5. 正确使用mirror和repository1. 去除不必要的操作mvn install -DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true2. 用install替代packageinstall会把Flink中的module安装到本地仓库,这样依赖当前mo
原创
发布博客 2020.12.27 ·
385 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Kafka源码剖析:Kafka客户端网络通信模型

文章目录0. 概述1. KafkaProducer数据发送流程1.1 宏观流程1.2 微观流程2. 元数据更新流程2.1 流程2.2 元数据变化动态感知2.2.1 强制更新2.2.2 周期更新3. Kafka客户端通信模型3.1 连接3.2 发送3.3 读写3.4 处理返回0. 概述本文旨在借助对ProduceRequest和MetadataRequest两种请求的请求链路的分析,得出kafka客户端网络模型的通用步骤。1. KafkaProducer数据发送流程1.1 宏观流程确认数据要发
原创
发布博客 2020.12.18 ·
610 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Kafka源码剖析:内存池

文章目录1. Why BufferPool ?1.1 Why two kinds of pools ?2. What is a BufferPool ?3. How BufferPool run ?1. Why BufferPool ?Kafka Producer以ProducerBatch为单位发送数据,而ProducerBatch中的数据以ByteBuffer的形式进行存储。当发送端数据量极大时,ByteBuffer就会无限制地频繁申请,可能会引发OOM;另外,发送完数据后,ByteBuffer就会
原创
发布博客 2020.12.10 ·
444 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Flink编码:FlinkSQL全面指南

文章目录1. FlinkSQL定位2. 流与表的对偶性3. 持续查询/增量计算4. 回撤流5. Flink 1.11关于SQL的增强5.1 DDL写法5.2 主键5.3 Catalog6. JOIN算子6.1 双流JOIN原理6.1.1 Inner Join6.1.2 Left Join6.1.3 State数据结构7. 窗口7.1 OverWindow7.1.1 基于数据条目的overwindow7.1.2 基于时间的overwindow7.2 GroupWindow7.2.1 滚动窗口7.2.2 滑动窗
原创
发布博客 2020.11.25 ·
2178 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏

Flink源码剖析:回撤流

文章目录1. 定义2. 示例2.1 源码分析2.1.1 聚合算子回撤2.1.2 Sink算子回撤2.1.3 聚合算子回撤 VS Sink算子回撤1. 定义Flink中,Kafka Source是非回撤流,Group By是回撤流。所谓回撤流,就是可以更新历史数据的流,更新历史数据并不是将发往下游的历史数据进行更改,要知道,已经发往下游的消息是追不回来的。更新历史数据的含义是,在得知某个Key(接在Key BY / Group By后的字段)对应数据已经存在的情况下,如果该Key对应的数据再次到来,会生成
原创
发布博客 2020.11.23 ·
8052 阅读 ·
8 点赞 ·
0 评论 ·
42 收藏

Flink源码剖析:ValueState

文章目录1. 定义2. 示例3. 源码3.1 Update方法3.2 Value方法1. 定义State一般指一个具体的task的状态,而checkpoint则表示了一个Flink Job在一个特定时刻的一份全局状态快照,即对所有task的state进行持久化。Flink中有两种基本类型的State:Keyed State,Operator State。2. 示例下面一个有关定时器timer和Keyed State的代码示例,实现将10s内未出现的消息发往下游的功能,示例代码可以运行,有兴趣的同学不
原创
发布博客 2020.11.15 ·
3615 阅读 ·
4 点赞 ·
0 评论 ·
13 收藏

Kafka问题:如何保证消息不丢失?

文章目录1.消息不丢失的含义总结来说,**Kafka 只对“已提交”的消息(committed message)做有限度的持久化保证。**这里面主要有两个意思。1.1 已提交的消息当 Kafka 的若干个 Broker 成功地接收到一条消息并写入到日志文件后,它们会告诉生产者程序这条消息已成功提交。此时,这条消息在 Kafka 看来就正式变为“已提交”消息了。那为什么是若干个 Broker 呢?这取决于你对“已提交”的定义。你可以选择只要有一个 Broker 成功保存该消息就算是已提交,也可以是令所
原创
发布博客 2020.10.26 ·
768 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Flink源码剖析:Metrics运作机制

文章目录1. Metrics简介1.1 什么是 Metrics?1.2 Metric Types1.3 Metric Group2. Metrics运行机制2.1 初始化Reporter2.1.1 PrometheusReporter2.1.2 PrometheusPushGatewayReporter2.2 注册Reporter2.3 收集Metrics到内存2.4 发送Metrics到第三方存储1. Metrics简介1.1 什么是 Metrics?Flink 提供的 Metrics 可以在 Fl
原创
发布博客 2020.10.26 ·
858 阅读 ·
1 点赞 ·
1 评论 ·
4 收藏

Flink调优:数据倾斜优化

文章目录1. 定义1.1 危害1.1.1 任务瘫痪1.1.1 checkpoint时间边长1.1.2 state变大2. 解决办法2.1 修改分区策略2.1.1 目标2.1.2 手段2.2 两阶段聚合2.2.1 目标2.2.2 手段2.2.2.1 修改sql2.2.2.2 localglobal2.2.2.3 PartialFinal1. 定义当进行聚合运算时(Group By/KeyBy + Agg),如果聚合所使用的key存在热点,则会导致数据倾斜。如统计某日各个省份的车流量,则负责运算北京、上海等
原创
发布博客 2020.10.12 ·
3987 阅读 ·
8 点赞 ·
0 评论 ·
26 收藏

Flink部署:flink-on-kubernetes 实践

文章目录1. Mac 安装 Docker2. Minikube 搭建 Kubernetes 实验环境2.1 安装 Minikube3. Flink 实时处理 demo4. 构建 Docker 容器镜像5. 部署 JobManager6. 部署 TaskManagerkubernetes 是目前非常流行的容器编排系统,在其之上可以运行 web 服务、大数据处理等各类应用。这些应用被打包在非常轻量的容器中,我们通过声明的方式来告知 kubernetes 要如何部署和扩容这些程序,并对外提供服务。flink o
原创
发布博客 2020.09.30 ·
2119 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

Kafka Connect:Debezium Connector远程调试

文章目录1. 分析启动脚本1.1 启动命令1.2 kafka-run-class2. idea配置1. 分析启动脚本1.1 启动命令# background running modecd /home/lenmom/workspace/software/confluent-community-5.1.0-2.11/ &&./bin/connect-distributed -daemon ./etc/schema-registry/connect-avro-distributed.pro
原创
发布博客 2020.09.23 ·
627 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Flink原理:窗口原理详解

文章目录1. 定义2. 窗口分类2.1 Time Window2.1.1 Flink中的时间种类有哪些2.1.2 Tumbling Time Window2.1.3 Sliding Time Window2.2 Count Window2.2.1 Tumbling Count Window2.2.2 Sliding Count Window2.3 Session Window3. 窗口组件4. 源码分析4.1 Count Window源码4.2 Time Window源码5. 窗口state5.1 stat
原创
发布博客 2020.09.01 ·
1437 阅读 ·
3 点赞 ·
1 评论 ·
8 收藏

Flink原理:定时器

1. 用途Flink定时器存在于窗口的触发,窗口状态的清理,TTL等诸多用途,因此搞清楚其原理对于理解这些知识点至关重要。2. 示例在flink实时处理中,涉及到延时处理可使用KeyedProcessFunction来完成,KeyedProcessFunction是flink提供面向用户的low level api,可以访问状态、当前的watermark或者当前的processingtime, 更重要的是提供了注册定时器的功能,分为:注册处理时间定时器,直到系统的processingTime超过了
原创
发布博客 2020.09.01 ·
5414 阅读 ·
3 点赞 ·
0 评论 ·
25 收藏

Flink监控:自定义消费延迟Metrics

文章目录1. 需求2. 名词解释1. 需求现有如下需求,以kafka作为source,实时统计flink任务的消费偏移量current-offset和分区偏移量总长度log-end-offset,并计算两者差着,得到消费延迟lag,如图:2. 名词解释current-offset:相比current-offset,我们更熟悉commit-offset,每一次poll(),...
原创
发布博客 2020.08.07 ·
2437 阅读 ·
5 点赞 ·
2 评论 ·
10 收藏

Flink源码剖析:Flink Async I/O的三种模式

文章目录1. 维表join2. richmapfunction2.1 示例3. asyncio3.1 示例3.2 Ordered模式3.2.1 生产3.2.2 消费3.3 基于processtime的unordered模式3.3.1 生产3.3.2 消费3.4 基于eventTime的unordered模式3.4.1 生产3.4.2 消费4. 总结1. 维表join流计算系统中经常需要与外部系统进行交互,比如需要查询外部数据库以关联上用户的额外信息。通常,我们的实现方式是向数据库发送用户a的查询请求,然
原创
发布博客 2020.06.16 ·
1022 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏
加载更多