Home

批处理和流处理的思考

1.时间的边界 1.1. T+1 时间分两种,处理时间和事件时间。大部分情况,数据处理都会选择事件时间。 以离线的天级 Hive 表任务为例,我们看看是如何产出 T+1 的数据的。 T+1 00:00 是处理时间,假定 A 表 Tday 的数据在 00:05 完全到达,B 表 T-day 的数据在 01:05 完全到达。 数据完全到达后,开始 merge Tday 的增量数据,然后根据需要生成全量表或者拉链表。可能的时间轴: 00:05 -> 00:30: merge A 表 Tday 的增量数据,记录到 A-inc 00:30 -> 01:35: merge A-inc + A-base,记录到 A 表 Tday 分区 01:05 ->...

Read more

大数据和后端服务的思考

大数据和后端服务之间的差别,远比后端服务之间,比如推荐架构、搜索架构、直播架构等的差别要大。两者比较的文章似乎很少见。 但实际上,我在做后端服务的时候,也曾调研过能否使用大数据的组件,比如 Flink、Kafka。很多后端服务也会用到大数据的存储,比如 Hbase 来存储数据。 还记得刚从后端转到大数据开发时,对各种差别感到疑惑。如今做了几年大数据,有的疑惑逐渐解开,有的疑惑依旧看不清,有必要阶段性的总结一下。当然,工程师不应该限制自己是大数据、前端还是后端还是算法,但是试图理清区别和联系,能够让我们的视野看的更高。 1. 大数据的技术本质还是后端服务 以在大数据离线任务开发中,常见的 Apache DolphinScheduler 工作流调度系统为例。DolphinSched...

Read more

Flink - fabric8 的使用

Flink 使用 Fabric8 Kubernetes client1作为 Kubernetes 的客户端,本文结合 Flink 提交 JobManager、TaskManager 的代码介绍 Fabric8 的使用。 1. Flink 使用 Fabric8 相关源码 Fabric8 是一个 Java 的 Kubernetes 客户端,使用一套自定义的 DSL 跟 REST API 交互。 我们可以使用链式调用方式访问和操作集群资源,例如: ListOptions options = new ListOptions(); options.setLabelSelector("type=flink-native-kubernetes"...

Read more