JustDoDT

JustDoDT-->From Zero To Hero.

如何选择 State Backend

概述 本文将深入探讨有状态的流处理,更确切地说是 Apache Flink 中不同的状态后端(State Backend)。在以下部分,我们将介绍 Apache Flink 的 3 种状态后端,它们的局限性以及根据具体案例需求选择最合适的状态后端。 在有状态的流处理中,当开发人员启用了 Flink 中的 checkpoint 机制,那么状态将会持久化以防止数据的丢失并确保发生故障时能够完...

浅析Flink中的Watermark

概述 当人们第一次使用 Flink 时,经常会对 watermark 感到困惑。但其实 watermark 并不复杂。让我们通过一个简单的例子来说明为什么我们需要 watermark,以及它的工作机制是什么样的。 在 Apache Flink 中使用 watermark 的4个理解 在下文中的例子中,我们有一个带有时间戳的事件流,但是由于某种原因它们并不是按顺序到达的。图中的数字代表事...

Flink的内存管理

概述 在如今大数据领域的开源框架(Hadoop、Spark)都使用的 JVM,当然也包括 Flink。基于 JVM 的数据分析引擎都需要面对将大量数据存储到内存中,这就不得不面对 JVM 存在的几个问题: Java 对象存储密度低。一个只包含 boolean 属性的对象占用了 16 个字节内存,对象头占了 8 个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个 ...

Flink数据转换的基本算子

概述 在 Flink 应用程序中,无论你的应用程序时批处理,还是流处理,都是上图这种模型,有数据源,有数据落地到啥地方(Sink),类似于Apache Flume;我们写的应用程序多是对数据源过来的数据做一系列操作,总结如下。 Source:数据源,Flink 在流处理和批处理上的 source 大概有 4 类:基于本地集合的 source 、基于文件的 source、基于网络...

Flink快速入门

概述 Apache Flink作为流处理的新贵,近年来可谓是相当火,今年阿里巴巴收购了德国的Flink,几年前阿里巴巴在Flink的基础上二次开发了Blink。阿里巴巴在实时计算这一块对社区的贡献还是很大的,从几年前的Apache Strom 到Apache JStorm再到现在的Apache Flink。 构建一个流的WC 注意:pom.xml文件如下 <?xml versi...

Spark Streaming的Kafka读取数据的方式

概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括 Kafka、Flume、Socket 流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据: 一是 Re...

SparkSQL中的Join

概述 Join是 SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。 对于 Spark 来说有3中 Join 的实现,每种 Join 对应着不同的应用场景: 1.Broadcast Hash Join :适合一张较小的表和一张大表进行 join ...

SparkSQL – 从0到1认识Catalyst

概述 最近想来,大数据相关技术与传统型数据库技术很多都是相互融合、互相借鉴的。传统型数据库强势在于其久经考验的 SQL 优化器经验,弱势在于分布式领域的高可用性,容错性、扩展性等,假以时日,让其经过一定的改造,比如引入 Paxos 、Raft等,强化自己在分布式领域的能力,相信一定会在大数据系统中占有一席之地。相反,大数据相关技术优势在于其天生的扩展性、可用性、容错性等,但其 SQL 优化...

RDDs VS DataFrames VS Datasets

概述 Apache Spark对开发人员的吸引力之一是其易于使用的API,用于在大型数据集上跨语言操作:Scala,Java,Python和R。在本博客中,我将探讨Apache Spark 2.2及更高版本中提供的三组API-RDD,DataFrame和Datasets; 为什么以及何时应该使用每一套; 概述他们的表现和优化效益; 并枚举何时使用DataFrames和Datasets而不是...

SparkSQL--从DataFrame说起

SparkSQL 历史回顾 对SparkSQL了解的同学或多或少听说过Shark,不错,Shark就是SparkSQL的前身。2011的时候,Hive可以说是SQL On Hadoop的唯一选择,负责将SQL解析成MapReduce 任务运行在大数据上,实现交互式查询,报表登功能。就在这个时候,Spark社区的小伙伴意识到可以使用Spark作为执行引擎替换 Hive 中的 MapReduc...