- 博客(554)
- 资源 (91)
- 收藏
- 关注
原创 CDC 数据入湖方案:MySQL > Flink CDC + Schema Registry + Avro > Kafka > Hudi
本文是《CDC 数据入湖方案:MySQL > Flink CDC > Kafka > Hudi》的增强版,借助 Flink CDC 从源头数据库接入数据并写入到 Kafka 后再使用 Flink 将数据写入到 Hudi 表中,在此过程中,使用了 Avro 格式传输数据,提升了效率,同时全程由 Confluent Schema Registry 参与,对 Schema Evolution 进行管控,该方案是一个完整的端到端的解决方案,也是最接近实际应用的选型方案之一。
2024-02-20 13:07:22 1542
原创 CDC 数据入湖方案:MySQL > Flink CDC > Kafka > Hudi
我们用 Flink CDC 完成 CDC 数据入湖任务:借助 Flink CDC 从源头数据库接入数据并写入到 Kafka 中,然后再使用 Flink 将数据写入到 Hudi 表中,所以这是一个完整的端到端的解决方案。上一篇文章我们省略了搭建 Kafka Connect + Debezium MySQL Connector 采集 CDC 数据的环节,因为这部分操作很复杂,Flink CDC 在应用和架构上确实比 Kafka Connect + Debezium MySQL Connector 的组合简单得多
2024-02-20 11:27:20 535
原创 CDC 数据入湖方案:MySQL > Kafka Connect + Schema Registry + Avro > Kafka > Hudi
需要提醒的是:Kafka Connect上必须安装Debezium MySQL Connector和Confluent Avro Converter两个插件,因此需要在官方镜像的基础上手动添加这两个插件;在上面的 SQL 中,开头部分的几个 SET 语句非常重要,它们用于设置 Checkpoint,如果没有这些设置,写入操作都不会提交,看到的状况就是:作业流一直运行,没有报错,但是 Hudi 表不会有任何数据,关于这一问题以及这些 SET 语句的解释,已在。
2024-02-01 12:38:21 1612
原创 HBase 例行灾备方案:快照备份与还原演练
该方案是为某用户定制的 HBase 灾备方案,方案本身具有很好的适用性,可以复用于常规 HBase 灾备场景。用户对 HBase 的灾备工作非常重视,每周会对 HBase 进行一次全量备份,将快照上传至 S3 保存,同时,在消息队列和其他数据库中保存着两周以内的增量数据,当 HBase 宕机时,会先还原快照将数据库恢复至一周内某一时刻的全量状态,然后再从其他系统读取一周内的增量数据进行补录,直至数据追平。本文将重点讨论 HBase 基于快照的例行备份和灾后恢复操作,并给出详细的解释和操作脚本。
2023-12-27 13:14:41 1920
原创 HBase 超大表迁移、备份、还原、同步演练手册:全量快照 + 实时同步(Snapshot + Replication)不停机迁移方案
本文介绍的演练操作源于某真实案例,用户有一个接近 100 TB 的 HBase 数据库,其中有一张超大表,数据量约为数十TB,在一次迁移任务中,用户需要将该 HBase 数据库迁移到 Amazon EMR 上。 本文将讨论并演示:使用全量快照 + 实时同步(Snapshot + Replication)的方式将一个数十TB HBase 单表不停机迁移数据到一个 HBase on S3 集群上。
2023-12-25 09:30:00 2097
原创 Apache Kafka 基于 S3 的数据导出、导入、备份、还原、迁移方案
在系统升级或迁移时,用户常常需要将一个 Kafka 集群中的数据导出(备份),然后在新集群或另一个集群中再将数据导入(还原)。通常,Kafka集群间的数据复制和同步多采用 Kafka MirrorMaker,但是,在某些场景中,受环境限制,两个于 Kafka 集群之间的网络可能无法连通,亦或是需要将 Kafka 的数据沉淀为文件存储以备他用。此时,基于 Kafka Connect S3 Source / Sink Connector 的方案会是一种较为合适的选择,本文就将介绍一下这一方案的具体实现。
2023-09-12 11:09:38 1216
原创 解决方案:如何在 Amazon EMR Serverless 上执行纯 SQL 文件?
长久已来,SQL以其简单易用、开发效率高等优势一直是ETL的首选编程语言,但遗憾的是,Amazon EMR Serverless 未能针对执行SQL文件提供原生支持,这对于倚重纯SQL开发数仓或数据湖的用户来说并不友好。为此,我们专门开发了一组工具类,借助这组工具类,用户可以在 Amazon EMR Serverless 上直接执行SQL文件。
2023-08-16 11:12:26 678
原创 CDC 一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark
本文首发于Apache Hudi公众号。Apache Hudi的DeltaStreamer是一种以近实时方式摄取数据并写入Hudi表的工具类,它简化了流式数据入湖并存储为Hudi表的操作,自 0.10.0 版开始,Hudi又在DeltaStreamer的基础上增加了基于Debezium的CDC数据处理能力,这使得其可以直接将Debezium采集的CDC数据落地成Hudi表,这一功能极大地简化了从源头业务数据库到Hudi数据湖的数据集成工作。
2023-07-31 09:34:54 385
原创 探索 Apache Hudi 核心概念 (4) - Clustering
本文由本人撰写并首发于Apache Hudi公众号。Clustering是Hudi在0.7.0版本引入的一项特性,用于优化文件布局,提升读写性能,现在它已经成为Hudi的一项重要性能优化手段。本文我们会通过Notebook介绍并演示Clustering的运行机制,帮助您理解其工作原理和相关配置。
2023-04-17 10:10:27 1122 1
原创 探索 Apache Hudi 核心概念 (3) - Compaction
本文由本人撰写并首发于Apache Hudi公众号。Compaction是MOR表的一项核心机制,Hudi利用Compaction将MOR表产生的Log File合并到新的Base File中。本文我们会通过Notebook介绍并演示Compaction的运行机制,帮助您理解其工作原理和相关配置。
2023-04-10 10:14:06 1290 4
原创 探索 Apache Hudi 核心概念 (2) - File Sizing ( 控制文件大小 )
本文由本人撰写并首发于Apache Hudi公众号。在本系列的上一篇文章中,我们通过Notebook探索了COW表和MOR表的文件布局,在数据的持续写入与更新过程中,Hudi严格控制着文件的大小,以确保它们始终处于合理的区间范围内,从而避免大量小文件的出现,Hudi的这部分机制就称作“File Sizing”。本文,我们就针对COW表和MOR表的File Sizing进行一次深度探索。
2023-04-04 13:02:49 702
原创 探索 Apache Hudi 核心概念 (1) - File Layouts ( 文件布局 )
本文由本人撰写并首发于Apache Hudi公众号。以往介绍Apcache Hudi的文章对核心概念的解读大多引用官方文档中的概念图,但是,抽象概念与实际运行状况还是有不少差异的,很多学习和使用Hudi的开发者都曾尝试过:将文档中的概念和Hudi的实际运行状况结合起来推导每个动作背后的逻辑是什么。本文利用Notebook良好的交互能力,设计一系列有针对性的操作,让这些操作去触发Hudi的某些机制,然后观察Hudi数据集的状态(包括元数据和存储文件),再结合对Hudi相关概念的介绍,解读这些行为。
2023-03-27 08:00:00 702 5
原创 Apache Ranger 与 AWS EMR 自动化安装与集成 (5):Windows AD + Open-Source Ranger
As last article of this series, we will introduce last high applicability scenario: “Windows AD + Open-Source Ranger”. In this solution, Windows AD plays authentication provider, all user accounts data store on it, Ranger plays authorization controller, it
2023-01-30 14:35:22 265
原创 Apache Ranger 与 AWS EMR 自动化安装与集成 (4):OpenLDAP + Open-Source Ranger
In previous 2 articles, we introduced emr-native ranger integration solution with OpenLDAP and Window AD, from this article, we turn to introduce open-source ranger integration. This article will discuss “OpenLDAP + Open-Source Ranger”.
2023-01-30 13:35:21 314
原创 Apache Ranger 与 AWS EMR 自动化安装与集成 (3):Windows AD + EMR-Native Ranger
In this article, we will introduce the solution against "Scenario 2: Windows AD + EMR-Native Ranger". The same to previous article, we will introduce the soltuion artitecture, give detailed installation step descriptions and verify installed environment.
2022-12-17 15:11:59 1010
原创 Apache Ranger 与 AWS EMR 自动化安装与集成 (2):OpenLDAP + EMR-Native Ranger
In this solution, OpenLDAP plays authentication provider, all user accounts data store on it, Ranger plays authorization controller, because we select emr-native ranger solution which strongly depends on Kerberos, so a Kerberos KDC is required. in this sol
2022-12-07 11:04:40 433
原创 Apache Ranger 与 AWS EMR 自动化安装与集成 (1):方案总览
System security usually includes two core topics: authentication and authorization. One solves the problem of “Who is s/he?” and the other solves the problem of “Does s/he have permission to perform an operation?” In the big data area, Apache Ranger is one
2022-12-03 12:39:14 631
原创 集成 OpenLDAP 与 Kerberos 实现统一认证 (3):基于 SASL/GSSAPI 深度集成
写作本系列文章的背景是我们要在大数据平台/企业数据湖场景下给出中心化的用户身份认证方案。此前,我们实现过Windows AD + Kerberos的集成方案,由于Windows AD是LDAP和Kerberos的双重实现,这种天然优势使得Windows AD可以实现真正意义上的(大数据集群的)Kerberos账号与企业用户账号的统一管理。当我们想在OpenLDAP + Kerberos上实现同样的目标时,发现这一领域的知识与方案琐碎而凌乱,缺少统一连贯,脉络清晰的讲解,在经过大量技术调研和系统梳理后,我们特
2022-06-07 17:22:17 1942 4
原创 集成 OpenLDAP 与 Kerberos 实现统一认证 (2):基于 SSSD 同步 LDAP 账号
写作本系列文章的背景是我们要在大数据平台/企业数据湖场景下给出中心化的用户身份认证方案。此前,我们实现过Windows AD + Kerberos的集成方案,由于Windows AD是LDAP和Kerberos的双重实现,这种天然优势使得Windows AD可以实现真正意义上的(大数据集群的)Kerberos账号与企业用户账号的统一管理。当我们想在OpenLDAP + Kerberos上实现同样的目标时,发现这一领域的知识与方案琐碎而凌乱,缺少统一连贯,脉络清晰的讲解,在经过大量技术调研和系统梳理后,我们特
2022-06-07 17:10:01 2637 1
原创 集成 OpenLDAP 与 Kerberos 实现统一认证 (1):整合后台数据库
写作本系列文章的背景是我们要在大数据平台/企业数据湖场景下给出中心化的用户身份认证方案。此前,我们实现过Windows AD + Kerberos的集成方案,由于Windows AD是LDAP和Kerberos的双重实现,这种天然优势使得Windows AD可以实现真正意义上的(大数据集群的)Kerberos账号与企业用户账号的统一管理。当我们想在OpenLDAP + Kerberos上实现同样的目标时,发现这一领域的知识与方案琐碎而凌乱,缺少统一连贯,脉络清晰的讲解,在经过大量技术调研和系统梳理后,我们特
2022-06-07 17:02:40 2765
原创 数据平台上云,变革远比想象的深刻
几年前,我所在的一家传统行业的头部企业启动了一系列数字化转型项目,在配套的IT基础设施建设上,“上云”已是大势所趋。在此前数年的工作中,我断断续续地使用着公有云产品,大多数情况下,我们只选择IaaS层级的服务,也就是只使用虚拟实例,对PaaS和云平台特定的Serverless产品敬而远之....
2021-11-15 15:38:29 2484 2
原创 关于 Spark on Yarn 的资源分配与 Capacity Scheduler 的研究
文章目录1. 启用Capacity Scheduler2. 集群信息与配置2.1. yarn.nodemanager.resource.xxx2.2. yarn.scheduler.minimum/maximum-xxxx3. Spark on Yarn的内存模型4. user-limit-factor:单用户时提升资源利用率的重要因子5. 规整化因子6. 测试队列资源划分方案7. 测试计划7.1. 用例一7.2. 用例二7.3. 用例三7.2. 用例四8. 小结资源调度永远是一个对立统一的问题,在一个限
2021-06-18 15:04:03 2341 5
原创 在 AWS Glue 中使用 Apache Hudi
本文发表于Apache Hudi公众号,文章对Glue与Hudi的集成做了可行性分析和理论探索,并通过一个完整的示例演示了如何在Glue作业中使用Hudi,同时将将Hudi元数据同步到Glue Catalog。
2021-04-21 11:00:47 1601
原创 企业数据能力测评:认清现状,布局未来 | 建设数据中台系列(一)
“我的企业目前在数据应用上处于什么水平?接下来应该朝哪个方向努力?”本文试图帮助企业决策者和IT负责人解答这一问题。今天,数据之于企业的重要性已经勿须多言,建设数据驱动型企业已成为众多企业的战略目标之一。在这一趋势的引领下,很多企业开始了新一代数据平台(例如数据中台)的建设工作,然而在启动这一具有挑战性的工作之前,企业首先需要冷静客观地审视一下自己的数据生态,弄清楚目前所处的能力水平,以及下一步努力的“方向”。只有这样才能确保后续工作沿着正确的方向展开,这可能也是企业在构建全新的大数据平台或数据中台前.
2020-07-10 11:13:18 2790 1
原创 重磅推荐:建大数据平台太难了!给我发个工程原型吧!
故事缘起:我们需要工程原型!大数据平台的架构体系庞大,技术堆栈非常深,从事大数据开发的同学对此应该都深有体会。而在很多细分领域(例如实时计算、作业调度)也没有像样的工程模板,这导致很多团队在启动大数据平台建设时往往感到无所侍从,也使得希望深入学习大数据技术的开发者由于缺少工程级的示例参考而感到迷茫。如果在大数据领域也有基于最佳实践提炼出来的工程原型,帮助团队快速启动开发,上手就写业务代码的话,你想了解一下吗?
2020-06-19 11:27:26 7822 13
原创 时间序列大数据平台建设经验谈
版权声明:本文由本人撰写并发表于2018年1月刊的《程序员》杂志,本文版权归《程序员》杂志所有,未经许可不得转载。引言在大数据的生态系统里,时间序列数据(Time Series Data,简称TSD)是很常见也是所占比例最大的一类数据,几乎出现在科学和工程的各个领域,一些常见的时间序列数据有:描述服务器运行状况的Metrics数据、各种IoT系统的终端数据、脑电图、汇率、股价、气象和天
2018-02-07 10:37:25 16024 7
原创 从函数字面量发现函数式编程
版权声明:本文由本人撰写并发表于2015年3月下半月的《程序员》杂志,原文题目《从字面量发现函数式编程》,本文版权归《程序员》杂志所有,未经许可不得转载。引言我相信很多像我一样初次接触函数式编程的程序员来说,对于“函数字面量”这个概念会感到迷惑和不解。伴随着深入地学习,在清晰地理解了这个概念之后,我进行了一些梳理和回溯,作为函数式编程思想延伸到最基层的语言元素,我深刻地觉得“函数字面量”这
2015-04-27 11:54:09 9634 6
原创 HBase高性能复杂条件查询引擎
版权声明:本文由本人撰写并发表于2014年7月份的InfoQ,HBase的PMC成员Ted Yu先生参与了审稿并于给予了肯定。该方案设计之初仅寄希望于通过二级索引提升查询性能,由于在前期架构时充分考虑了通用性以及对复杂条件的支持,在后来的演变中逐渐被剥离出来形成了一个通用的查询引擎。HBase在大数据领域的应用越来越广泛,成为目前NoSQL数据库中表现最耀眼,呼声最高的产品之一,但就应对复杂条件的查询来说,一般认为它并不是非常适合,熟悉HBase的开发人员对此应该有一定的体会,但是基于普遍的需求,开发者们希
2014-06-17 20:10:36 45851 36
原创 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段
2012-09-12 12:19:52 71808 54
原创 Spring基于ThreadLocal的“资源-事务”线程绑定设计的缘起
题目起的有些拗口了,简单说,这篇文章想要解释Spring为什么会选择使用ThreadLocal将资源和事务绑定到线程上,这背后有着什么样的起因和设计动机,通过分析帮助大家更清晰地认识Spring的线程绑定机制。本文原文链接:http://blog.csdn.net/bluishglc/article/details/7784502 转载请注明出处!“原始”的数据访问写法访问任何带有事务特性的资源系
2012-07-25 14:17:56 26596 12
原创 数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略 第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解(
2012-06-27 14:32:44 178764 25
原创 从MVC框架看MVC架构的设计
从MVC框架看MVC架构的设计尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。MVC回顾作为一种经典到不能再经典的架构模式,MVC的成功有其必然的道理,这个道理不同的人会有不同的解读,笔者最认同的一种观
2011-08-16 09:57:37 99411 82
原创 领域驱动设计(Domain Driven Design)参考架构详解
领域驱动设计(Domain Driven Design)参考架构详解摘要本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。本文会对架构中一些重要组件和问题进行讨论,给出一些分析结论。本文原文连接:http://blog.csdn.net/b
2011-08-12 11:33:02 68945 14
原创 数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使
2011-01-24 16:32:00 164743 40
原创 Flink:流式 Join 类型 / 分类 盘点
在Flink中,实现流之间连接的操作可以分为两类。第一类是基于原生State状态存储的Connect算子操作,这种方式可以实现低延迟的数据连接和转换;第二类则是基于窗口的JOIN操作,这种方式又可以细分为window join和interval join两种,通过对数据进行时间窗口和滑动窗口的划分,实现不同粒度的数据关联和计算。Regular Join(常规 Join)Interval Join(时间区间 Join)Temporal Join (版本表 Join基于事件时间的 Temporal Join基于
2024-03-27 10:41:51 1921
原创 Flink:维表 Join 难点和技术方案汇总
目前看,Flink 的 “维表 Join” 主要就三种实现方式,叫法可能会有细微差别,以下是我是用更直白的语言总结的称谓:直连外部数据库进行关联;将维表加载到内存中关联;基于维表变更日志的关联。这些 Join 方案具体会使用到 Flink 的 Lookup Join、Temporal Join 等相关机制,所以在研究维表 Join 方案前,应先补齐这部分的知识,具体可参考本文末给出的本博客相关系列文章。
2024-03-26 09:25:39 1302
原创 一文聊透 Flink 的 Temporal Join
Flink的Temporal Join以及Temporal Table (时态表)关系密切,在知识结构上有点混乱,可能是历史原因造成的。本文希望把所有与 Temporal Join 相关的概念进行一次统一梳理,用更规范的知识结构把 Flink 的 Temporal Join 介绍清楚,包括:以 Temporal Table DDL 方式实现基于事件时间的 Temporal Join;以 Temporal Table DDL 方式实现基于处理时间的 Temporal Join;以 Temporal Table
2024-03-25 08:22:24 1732
原创 Flink:“Lookup Join”和“基于处理时间的 Temporal Join”的区别
在完整介绍了 “基于处理时间的 Temporal Join” 和 “Lookup Join” 之后,作为一个简单的盘点,也是回答最初接触这两种 Join 时的疑惑,我们来分析一下两种 Join 有何异同。相同之处:时效性都较高;时间维度上的关联准确性接近;不同之处:Lookup Join 是直连数据查询的,而 “基于处理时间的 Temporal Join” 是构建在 Flink 上的动态表,变更是靠 CDC 实时同步的。
2024-03-24 13:14:02 253
原创 Flink Temporal Join 系列 (4):用 Temporal Table Function 实现基于处理时间的关联
本文要演示的是:使用 Temporal Table Function 定义被关联表(维表),然后基于主动关联表(事实表)的“处理时间”去进行 Temporal Join(关联时间维度上对应版本的维表数据)。由于 Flink 在新版本中已经禁止使用 Temporal Table DDL 实现基于处理时间的 Temporal Join,所以通过 Temporal Table Function 实现基于处理时间的 Temporal Join 已经是唯一的手段了。该演示同样涉及三个要点:被关联的表(维表)是用 Te
2024-03-22 10:03:01 766
原创 Flink:Lookup Join 实现与示例代码
本文要演示的是:在流上关联一张外部表(例如 MySQL 数据库中的一张维表),用于丰富流上的数据,实际上,这正是最普遍的 ”维表 Join“ 的实现方式。通过这种方式和外部维表关联时,依然能关联到最新变化的维度数据,所以才说这是 ”维表 Join“。Lookup Join 与 《Flink Temporal Join 示例演示 (2):Temporal Table DDL + 处理时间》一文演示情形是很相似的,但不同之处在于:这里的维表是通过 JDBC 方式连接的,而文章中的 Temporal Join 方
2024-03-21 14:07:27 512
Big_Data_SMACK.pdf
2016-10-14
The.Art.of.Multiprocessor.Programming.Revised.Reprint
2014-02-06
win7下硬盘安装Linux(Fedora17,CentOS 6.4,Ubuntu 12.10,LinuxMint 13 64-bit)
2013-08-16
Packtpub.Hadoop.MapReduce.Cookbook.Jan.2013
2013-03-04
OpenSSH for Windows
2013-02-06
Professional Website Performance.pdf
2013-02-04
Red.Gate.SQL.Toolbelt.v1.8.2.238.Incl.Keygen
2013-01-14
Araxis.Merge.Professional.v2012.4260.x64-BEAN
2012-12-27
Apress.Pro.SQL.Server.2012.Practices.Nov.2012
2012-12-24
JavaScript.The.Definitive.Guide.6th.Edition.Apr.2011
2012-09-29
Professional JavaScript for Web Developers, 3rd Edition 附书中代码
2012-09-19
Head.First.HTML.and.CSS.2nd.Edition.Aug.2012
2012-09-11
Packtpub.Spring.Security.3.May.2010
2012-09-10
Pro Apache Log4j Second Edition
2012-09-06
PowerDesigner16.1 crack keygen 破解文件
2012-06-21
SecureCRT.v6.7.3.292(含注册码和破解补丁),
2012-06-13
SecureCRT.v6.7.3.292.x64(含注册码和破解补丁)
2012-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人