自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 如何成为Apache项目贡献者

如何成为Apache项目贡献者

2023-05-14 16:52:24 611 1

原创 Flink 水位线结合窗口进行KeyBy、Reduce案例

Flink 水位线结合窗口进行KeyBy、Reduce案例

2023-03-07 15:59:49 441

原创 Apache Flink 任务 Tasks 和任务槽 Task Slots

Flink中每一个worker(也就是TaskManager)都是一个JVM进程,它可以启动多个独立的线程,来并行执行多个子任务(subtask)。为了控制并发量,我们需要在TaskManager上对每个任务运行所占用的资源做出明确的划分,这就是所谓的任务槽(task slots)。每个任务槽(task slot)其实表示了TaskManager拥有计算资源的一个固定大小的子集。这些资源就是用来独立执行一个子任务的。

2022-12-23 17:15:53 1345

原创 Apache Flink 作业图 JobGraph 与执行图 ExecutionGraph

由Flink程序直接映射成的数据流图(dataflow graph),也被称为逻辑流图(logicalStreamGraph)。到具体执行环节时,Flink需要进一步将逻辑流图进行解析,转换为物理执行图。

2022-12-23 17:07:54 1148

原创 Apache Flink 算子链 Operator Chain

算子链会把转换处理的很多个任务都连接在一起,合并成了一个“大任务”。我们先来考察一下算子任务之间数据传输的方式。一个数据流在算子之间传输数据的形式可以是一对一(one-to-one)的直40通(forwarding)模式,也可以是打乱的重分区(redistributing)模式,具体是哪一种形式,取决于算子的种类。

2022-12-23 17:02:16 372

原创 Apache Flink 并行度 Parallelism

把一个算子操作,“复制”多份到多个节点,数据来了之后就可以到其中任意一个执行。这样一来,一个算子操作就被拆分成了多个并行的“子任务”(subtasks),再将它们分发到不同节点,就真正实现了并行计算。在Flink执行过程中,每一个算子(operator)可以包含一个或多个子任务(operator subtask),这些子任务在不同的线程、不同的物理机或不同的容器中完全独立地执行。

2022-12-23 16:51:55 503

原创 Apache Flink Dataflow Graph

Flink是流式计算框架。它的程序结构,其实就是定义了一连串的处理操作,每一个数据输入之后都会依次调用每一步计算。在Flink代码中,我们定义的每一个处理转换操作都叫作“算子”(Operator)。

2022-12-23 16:45:39 152

原创 Apache Flink 作业提交流程

Flink的提交流程,随着部署模式、资源管理平台的不同,会有不同的变化。首先我们从一个高层级的视角,来做一下抽象提炼,看一看作业提交时宏观上各组件是怎样交互协作的。

2022-12-23 11:01:21 165

原创 Apache Flink 系统架构

Flink 的运行时架构中,最重要的就是两大组件:作业管理器(JobManger)和任务管理器(TaskManager)。对于一个提交执行的作业, JobManager 是真正意义上的“管理者”(Master),负责管理调度,所以在不考虑高可用的情况下只能有一个;而 TaskManager 是“工作者”(Worker、Slave),负责执行任务处理数据,所以可以有一个或多个。Flink 的作业提交和任务处理时的系统。

2022-12-23 10:16:13 78

原创 Apache Flink 部署模式

在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。Flink为各种场景提供了不同的部署模式。

2022-12-22 17:02:07 648

原创 Apache Flink

ApacheFlink起源于一个叫作Stratosphere的项目,它是由3所地处柏林的大学和欧洲其他一些大学共同进行的研究项目,由柏林工业大学的教授沃克尔·马尔科(Volker Markl)领衔开发。2014年4月,Stratosphere的代码被复制并捐赠给了Apache软件基金会,Flink就是在此基础上被重新设计出来的。

2022-12-20 17:03:58 506

原创 Apache Hudi Spark Guide

使用Spark数据源,我们将浏览代码片段,这些代码片段允许您插入和更新默认表类型的Hudi表:Copy on Write。在每次写入操作之后,我们还将演示如何以快照和增量方式读取数据。

2022-12-18 12:45:34 330

原创 Apache Hudi Table & Query Types

Hudi表类型定义了如何在DFS上对数据进行索引和布局,以及如何在这样的组织之上实现上述原语和时间线活动(即如何写入数据)。反过来,查询类型定义了底层数据如何向查询公开(即如何读取数据)。

2022-12-18 12:05:22 439

原创 Apache Hudi File Layouts

Hudi将数据表组织到分布式文件系统的基本路径下的目录结构中。

2022-12-18 11:34:40 88

原创 Apache Hudi Timeline

Hudi维护了在不同时刻在表上执行的所有操作的时间线,这有助于提供表的即时视图,同时也有效地支持按到达顺序检索数据。

2022-12-18 11:26:11 421

原创 Apache Hudi 数据湖介绍

Hudi是一个丰富的平台,可以通过增量数据管道构建流式数据湖在自我管理的数据库层上,同时针对湖引擎和常规批处理进行优化。

2022-12-18 11:10:47 568

原创 Spark 调优攻略上册

简介:整理⼈李亚鹏,希望帮助大家对Apache spark、Jindo spark使用、调优有所帮助。《Spark 调优攻略上册》是整合互联⽹优质的Blog与PPT形成的攻略,它主要对于企业级⼤规模数据计算引擎Spark多维度优化策略。本次整理不单单是Apache spark还涵盖了Data Lake和阿⾥云EMR智能团队研发的Jindo-Spark是如何基于Apache spark进⾏多维优化及实现原理,让读者能够知其然且知其所以然。

2022-12-04 10:23:56 277

原创 EMR-Jindo Spark 核心引擎优化

indo-Spark 是阿里云智能E-MapReduce 团队在开源的Apache Spark 基础上自主研发的分布式云原生 OLAP 引擎,已经在近千E-MapReduce 客户中大规模部署使用。Jindo Spark 在开源版本基础上做了大量优化和扩展,深度集成和连接了众多阿里云基础服务。凭借该引擎,EMR 成为第一个云上 TPC-DS 成绩提交者。经过持续不断地内核优化,目前基于最新 EMR-Jindo 引擎的 TPC-DS 成绩又有了大幅提高,达到了3615071,成本降低到 0.76 CNY。

2022-11-30 10:11:14 668

原创 Spark Relational Cache实现亚秒级响应的交互式分析

Spark Relational Cache实现亚秒级响应的交互式分析

2022-11-17 10:12:12 598

原创 Scala核心-编译解释

Scala核心-编译解释

2022-09-04 10:33:40 450

原创 SecretFlow隐语-安装

隐私计算,SecretFlow隐语-安装

2022-08-18 17:36:29 1278

原创 SecretFlow隐语-简介

隐私计算,SecretFlow隐语。

2022-08-18 17:21:06 4270

原创 Spark 3.0 Dynamic Partition Pruning 动态裁剪分区

Dynamic Partition Pruning动态裁剪分区

2022-06-05 19:07:17 549

原创 Spark源码篇-分区:读取外部数据

package pro_sparkimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * @author YaPeng Li * @version 0.0.1 **/object FileCreateRDDByPartition04{ def main(args: Array[String]): Unit = { val sparkConf: Spa.

2022-05-15 19:12:53 267

原创 Spark源码篇-分区:读取内存数据

package pro_sparkimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * @author YaPeng Li * @version 0.0.1 * @description: TODO * @date 2022/5/14 上午11:08 */object ArrayCreateRDDByPartition03 { def main(arg.

2022-05-15 12:47:45 317

原创 Spark优化篇:数据倾斜解决

数据倾斜数据倾斜是指我们在并行进行数据处理的时候,由于数据散列引起Spark的单个Partition的分布不均,导致大量的数据集中分布到一台或者几台计算节点上,导致处理速度远低于平均计算速度,从而拖延导致整个计算过程过慢,影响整个计算性能。数据倾斜带来的问题单个或者多个Task长尾执行,拖延整个任务运行时间,导致整体耗时过大。单个Task处理数据过多,很容易导致OOM。数据倾斜的产生原因数据倾斜一般是发生在 shuffle 类的算子,比如 distinct、groupByKey、redu

2022-04-19 17:22:09 1859 6

原创 Spark优化篇:RBO/CBO

Adaptive Query Execution(AQE)在之前的版本里已经有所实现,但是之前的框架存在一些缺陷,导致使用不是很多,在Spark3.0中Databricks(Spark初创团队创建的大数据与AI智能公司)和Intel的工程师合作,解决了相关的问题。在Spark1.0中所有的Catalyst Optimizer都是基于规则(rule)优化的。为了产生比较好的查询规则,优化器需要理解数据的特性,于是在Spark2.0中引入了基于代价的优化器 (cost-basedoptimize...

2022-04-17 12:16:56 4283

原创 Spark优化篇:动态内存管理

Spark内存管理分为静态内存管理和统一内存管理,Spark1.6之前使用的是静态内存管理,Spark1.6之后的版本默认使用的是统一内存管理。动态内存机制图:内存估算:Other Memory = 自定义数据结构*每个 Executor 核数解:Other Memory基本很简单,就是根据自定义的Map、List * executor-cores = ?Storage Memory = 广播变量 + cache/Executor 数量设:数据100GB、num-ex..

2022-04-15 11:08:09 2607

原创 Spark优化篇:Explain

本章,主要针对Spark3.x版本后Explain去进行详细的介绍,Explain也是企业生产调优的一个重要方式、策略。执行计划流程图:执行计划阶段详解:阶段 阶段类型 解释 1 Unresolved Logical Plan 检查 SQL 语法上是否有问题,然后生成 Unresolved(未决断)的逻辑计划, 2 Logical Plan 通过访问 Spark 中的 Catalog 存储库来解析验证语义、列名、类型、表名等。 3 Opt

2022-04-14 18:04:55 1540

原创 Spark on yarn 环境运行

Launching Spark on YARNEnsure thatHADOOP_CONF_DIRorYARN_CONF_DIRpoints to the directory which contains the (client side) configuration files for the Hadoop cluster. These configs are used to write to HDFS and connect to the YARN ResourceManager. The ...

2022-04-12 17:53:02 1495

原创 Apache Spark 3.0:全新功能知多少

Spark3.0解决了超过3400个JIRAs,历时一年多,是整个社区集体智慧的成果。Spark SQL和 Spark Cores是其中的核心模块,其余模块如PySpark等模块均是建立在两者之上。Spark3.0新增 了太多的功能,无法一一列举,下图是其中24个相对来说比较重要的新功能,下文将会围绕这些进行简单介绍。 性能相关的新功能主要有: Adaptive Query Execution 自适应查询 Dynamic Partition Pruning 动态裁剪分区 Quer.

2022-03-10 16:10:36 2338

原创 Hadoop 50070端口无法访问

通过JPS指令查看启动的JAVA进程,发现NameNode进程不存在。通过hdfs namenode -format 格式化NameNode。hdfs namenode -format执行start指令,发现NameNode进程已经存在。start-all.sh通过浏览器访问50070端口。...

2022-03-08 10:50:26 2124

原创 Delta Lake DeltaTable

Spark Scala ShellDownload the compatible version of Apache Spark by following instructions from Downloading Spark, either using pip or by downloading and extracting the archive and running spark-shell in the extracted directory.spark-shell --packages

2022-03-05 14:24:43 1696

原创 Delta Lake 基础操作篇

我们在使用写 Delta 数据是非常简单的,这也是 Delte Lake 介绍的 100% 兼容 Spark。Delta Lake 写数据是其最基本的功能,而且其使用和现有的 Spark 写 Parquet 文件基本一致,只不过换做成format("delta")。在介绍 Delta Lake 实现原理之前先来看看如何使用它,使用如下:我的Spark版本是:3.1.1如果需要使用Delta,我们在启动spark-shell 新增 --packages参数即可./spark-shell -

2022-02-16 21:38:43 1564

原创 数据湖核心概念、架构设计

”数据湖“的核心概念,数据湖不是技术组件、框架,而是一种概念、解决问题思路、治理方案。在多源异构数据存储层面与”数据中台“最大的区别是数据与业务解耦,保持数据的原始性、完整性,之前多数数据中台是围绕着业务进行采集、存储、归纳、转换。数据湖类型自建hadoop生态数据湖、云上数据湖、数据湖产品:湖类型 类型 多元异构存储 分析能力 Hadoop 本地 HDFS Spark、MR、Flink、Tez AliCloud 云上 OSS EMR

2022-02-16 14:36:23 1284

原创 大数据架构Lambda、kappa、iota架构

1、流式架构传统大数据架构优点:简单,易懂,对于BI系统来说,基本思想没有发生变化,变化的仅仅是技术选型,用大数据架构替换掉BI的组件。缺点:对于大数据来说,没有BI下如此完备的Cube架构,虽然目前有kylin,但是kylin的局限性非常明显,远远没有BI下的Cube的灵活度和稳定度,因此对业务支撑的灵活度不够,所以对于存在大量报表,或者复杂的钻取的场景,需要太多的手工定制化,同时该架构依旧以批处理为主,缺乏实时的支撑。适用场景:数据分析需求依旧以BI场景为主,但是因为数据量、性能等问

2022-02-16 14:17:25 921

原创 07 Scala 单例模式(Singleton Pattern)

什么是单例设计模式?单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。饿汉式:类加载的时候就实例化,并且创建单例对象。class ClassObjectSimpleInterest private(_name: String) { var name: String = _name def consoleInfo(): Unit = { printl

2022-01-22 17:45:55 494

原创 docker 详解、落地模式

DOCKER 的优点Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。1、快速,一致地交付您的应用程序Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。容器非常适合持续集成和持续

2022-01-22 15:38:10 125

原创 06 Scala 抽象类、匿名类

抽象类和Java语言一样,scala中也可以定义抽象类,如果类的某个成员在当前类中的定义是不包含完整的,它就是一个抽象类不完整定义有两种情况:方法没有方法体(抽象方法)变量没有初始化(抽象字段)定义抽象类和Java一样,在类前面加上abstract关键字package scala/** * @author YaPeng Li * @version 0.0.1 */object Case_Spark_AbsC { def main(args: Array[Str.

2022-01-20 20:52:16 1282

原创 05 Scala 继承、多态

继承和多态是现代编程语言最为重要的概念。继承和多态允许用户将一些概念进行抽象,以达到代码复用的目的。本文用Scala来实现继承和多态。package scala/** * @author YaPeng Li * @version 0.0.1 */object Case_Spark_Fun { def main(args: Array[String]): Unit = { val bean = new Case_Spark_Fun() val bean1 =

2022-01-20 20:46:08 1480

Spark 调优攻略上册

《Spark 调优攻略上册》是整合互联⽹优质的Blog与PPT形成的攻略,它主要对于企业级⼤规模数据计算引擎Spark多维度优化策略。本次整理不单单是Apache spark还涵盖了Data Lake和阿⾥云EMR智能团队研发的Jindo-Spark是如何基于Apache spark进⾏多维优化及实现原理,让读者能够知其然且知其所以然。

2022-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除