- 博客(2357)
- 资源 (69)
- 问答 (17)
- 收藏
- 关注
原创 数据湖学习笔记
基于 Lakehouse 架构实现湖内建仓实践经验 Lakehouse架构指南 腾讯 数据湖知识体系解析 一个理想的数据湖应具备哪些功能? HDFS廉颇老矣?基于对象存储的数据湖构建新思路 你一定爱读的极简数据平台史,从数据仓库、数据湖到湖仓一体 网易严选数据湖建设实践 爱奇艺数据湖实战 字节跳动基于数据湖技术的近实时场景实践 数据湖在快手的生产实践 Apache Hudi 典型应用场景知多少? Apache Hudi 在腾讯的落地与应用 基于 Apache Hudi 构建数据
2023-08-28 08:02:12 101
转载 基于 Lakehouse 架构实现湖内建仓实践经验
第一个阶段是数据库不管是从业务的角度还是从技术栈角度,大家对数据库都是最熟的。第二阶段是数据仓库当数据库的整体能力达不到我们的存储要求之后,就出现了数据仓库。数据仓库定位也是偏OLAP。它把数据的存储的能力通过分布式的方式去加大,计算能力也相应增加了上去。在有些特性和用法上是非常相似的。第三阶段是数据湖数据湖在存储规模和计算能力上进一步加大,整个集群规模可以上万台,整体的能力会有更大的提升,同时扩容更加平滑。另外它增加了很多数据库和数仓不具备的能力,比如实时计算、机器学习。
2023-08-27 12:59:43 101
转载 一文彻底弄懂Apache Hudi不同表类型
在深入研究 COW 和 MOR 之前,让我们先了解一下 Hudi 中使用的一些术语,以便更好地理解以下部分。
2023-08-25 08:17:28 254
转载 基于 Apache Hudi 构建数据湖的典型应用场景介绍
传统大数据由于不支持事务等痛点问题,造成T+1时延,虽然能够基于Flink流式计算实现少量数据在简单场景的秒级数据处理能力,但依然缺乏海量复杂场景的实时更新、事务支持能力。现在基于华为云FusionInsight MRS的Hudi可以构建分钟级数据处理方案,实现较大数据量的复杂计算实时处理能力,大大提升数据时效性,让数据价值近在眼前。
2023-08-25 07:25:30 389
转载 Apache Hudi 在腾讯的落地与应用
如上图所示,以最简单的覆盖逻辑为例,当读到 BaseFile 中的主键是 key1 的 Record 时,发现 key1 在 Map 中已经存在并且对应的 Record 有 BCD 三列的值,则更新 BaseFile 中的 BCD 列,得到新的 Record(key1,b0_new,c0_new,d0_new,e0),注意 E 列没有被更新,所以保持原来的值 e0。同时,这套方案的扩展性也更加好。在传统的Hive数仓中想保证实时是非常困难的,尤其是文件更新,湖表实时写入更新,基本不可能实现。
2023-08-23 08:32:22 257
转载 Apache Hudi 典型应用场景知多少?
此外,Hudi 没有外部依赖项(例如专用于实时分析的专用HBase群集),因此可以在不增加运营成本的情况下,对更实时的数据进行更快的分析。在这种情况下,保证正确性的唯一方法是每小时重复处理最后几个小时的数据,这会严重损害整个生态系统的效率。Hudi可以很好的解决上述问题,其通过记录粒度(而非文件夹或分区)来消费上游Hudi表 HU中的新数据,下游的Hudi表 HD应用处理逻辑并更新/协调延迟数据,这里 HU和 HD可以以更频繁的时间(例如15分钟)连续进行调度,并在 HD上提供30分钟的端到端延迟。
2023-08-23 07:36:06 136
原创 Hadoop 2.10.1 安装与启动
可以直接从官网上下载 https://archive.apache.org/dist/hadoop/common/ 你需要的版本,在这我们使用的是 2.10.1 版本 hadoop-2.10.1.tar.gz。Hadoop 早期版本采用一个配置文件hadoop-site.xml来配置Common,HDFS和MapReduce组件。从0.20.0版本开始该文件以分为三,各对应一个组件。如果在 mapred-site.xml 中设置数据处理框架为 yarn,同时也需要配置 yarn-site.xml 文件。
2023-08-22 08:18:58 282
原创 Hadoop Initialization failed for Block pool <registering>
两者的 clusterID 不一致导致最终 datanode 没有启动。这个问题一般是由于两次或两次以上的格式化 NameNode 造成的。目录,查看 VERSION 文件,可以发现 datanode 的 clusterID 为。从上面异常中可以发现 namenode 的 clusterID 为。从上面可以看到我们的 dataNode 已经跑起来了。,而 datanode 的 clusterID 为。重启 Hadoop 即可。
2023-08-22 08:16:18 100
转载 Hudi 基本概念
Apache Hudi(发音为“Hudi”)在DFS的数据集上提供以下流原语在本节中,我们将讨论重要的概念和术语,这些概念和术语有助于理解并有效使用这些原语。
2023-08-20 16:59:52 90
转载 Apache Hudi:新一代流式数据湖平台
早在 2016 年,我们就提出了一个大胆的新愿景 [1],通过一个新的“增量”数据处理技术栈(结合现有的批处理和流式处理堆栈)重新构想批处理。虽然流处理管道进行面向行的处理,提供秒级处理延迟,但增量管道将对数据湖中的列数据应用相同的原则,高效的数据处理,及相对批处理数量级的改进,同时存储 / 计算可高度扩展。这个新的技术栈将能够毫不费力地支持批量再加工 / 回填的常规处理。Apache Hudi 是作为这一愿景的体现而建立的,它植根于 Uber 面临的真实、困难的问题 [2],后来在开源社区中独树一帜。总之
2023-08-20 08:29:16 250
转载 Lakehouse架构指南
数据湖是一种存储系统,具有底层数据湖文件格式[6]及其不同的数据湖表格式[7],可存储大量非结构化和半结构化数据,并按原样存储,但没有特定用途。广泛的技术和非技术数据消费者可以访问该数据以进行分析用例和机器学习模型,包括商业智能和报告。数据湖还消除了通过传统 BI 工具转换数据需要使用专有格式的需要。将数据加载到数据湖中,数据团队花费时间构建和维护复杂 ETL 管道的旧瓶颈消失了,并且跳过了等待数周的数据访问请求。
2023-08-18 08:40:30 94
转载 腾讯 数据湖知识体系解析
数据湖是一种存储系统,底层包括不同的文件格式及湖表格式,可存储大量非结构化和半结构化的原始数据。数据消费者可以访问该数据进行数据分析,包括 BI、报表和机器学习模型训练。有了数据湖,数据变得越来越可用。
2023-08-18 07:54:18 137
转载 一个理想的数据湖应具备哪些功能?
从数据库到数据仓库,最后到数据湖[1],随着数据量和数据源的增加,数据格局正在迅速变化。数据湖市场预计增长近 30%[2],将从 2020 年的 37.4 亿美元增长到 2026 年的 176 亿美元。此外从 2022 年数据和人工智能峰会[3]来看,数据湖架构[4]显然是数据管理和治理的未来。由于 Databricks[5] 发布了 Delta 2.0,该趋势可能会增长,该平台的所有 API 都将是开源的。此外Snowflakes[6] 在其峰会上宣布了一些改变游戏规则的功能,使数据湖成为该行业的支柱。
2023-08-17 07:46:53 123
转载 网易 实时数据仓库的发展、架构和趋势
数据处理现状:当前基于Hive的离线数据仓库已经非常成熟,数据中台体系也基本上是围绕离线数仓进行建设。但是随着实时计算引擎的不断发展以及业务对于实时报表的产出需求不断膨胀,业界最近几年就一直聚焦并探索于两个相关的热点问题:实时数仓建设和大数据架构的批流一体建设。
2023-08-16 15:43:36 183
转载 HDFS廉颇老矣?基于对象存储的数据湖构建新思路
我们经常会被问到一个企业大数据架构的问题:随着企业收集 / 产生的数据越来越多,如何设计一套高效廉价的大数据架构,在尽可能多保留所有原始数据内容的同时还可以支持“无缝接入”的新的分析算法。本文所要介绍的数据湖解决方案可能是解决这个难题的一种新思路。
2023-08-15 07:27:01 319
转载 你一定爱读的极简数据平台史,从数据仓库、数据湖到湖仓一体
我们身处一个大数据时代,企业的数据量爆炸式增长。如何应对海量数据存储和处理的挑战,建设好数据平台,对一个企业来说是很关键的问题。从数据仓库、数据湖,到现在的湖仓一体,业界建设数据平台的新方法和新技术层出不穷。理解这些方法和技术背后隐藏的演进脉路、关键问题、核心技术原理,可以帮助企业更好地建设数据平台。这也是百度智能云推出数据湖系列内容的初衷。本系列文章将包含几个部分:本篇将作为数据湖整个系列的开篇,为大家介绍数据平台技术的历史和发展过程中遇到的一些关键技术问题。
2023-08-11 08:19:15 325
转载 Apache Iceberg:Netflix 数据仓库的基石
Iceberg 主要设计思想:记录表在所有时间的所有文件,和 Delta Lake 或 Apache Hudi 一样,支持 snapshot,其是表在某个时刻的完整文件列表。带来的问题是如果一张表有很多分区,我们需要使用 HMS(Hive MetaStore)来记录这些分区,同时底层的文件系统(比如 HDFS)仍然需要在每个分区里面记录这些分区数据。在 Netflix,他们希望有更智能的处理引擎,比如有 CBO 优化,更好的 Join 实现,缓存结果集以及物化视图等功能。原生支持云对象存储,支持多并发写。
2023-08-01 08:48:19 103
转载 Apache Hive 通过 JDBC Storage Handler 联邦查询
如今,很多公司可能会在内部使用多种数据存储和处理系统。这些不同的系统解决了对应的使用案例。除了传统的 RDBMS (比如 Oracle DB,Teradata或PostgreSQL) 之外,我们还会使用 Apache Kafka 来获取流和事件数据。使用 Apache Druid 处理实时系列数据(real-time series data),使用 Apache Phoenix 进行快速索引查找。此外,我们还可能使用云存储服务或 HDFS 批量存储数据。
2023-07-31 09:22:41 166
转载 网易严选数据湖建设实践
过去几年,数据仓库和数据湖方案在快速演进和弥补自身缺陷的同时,二者之间的边界也逐渐淡化。云原生的新一代数据架构不再遵循数据湖或数据仓库的单一经典架构,而是在一定程度上结合二者的优势重新构建。在云厂商和开源技术方案的共同推动之下,2021 年我们将会看到更多“湖仓一体”的实际落地案例。InfoQ 希望通过选题的方式对数据湖和数仓融合架构在不同企业的落地情况、实践过程、改进优化方案等内容进行呈现。本文将分享网易严选的数据湖建设过程和思考。
2023-07-31 08:07:24 610
转载 为什么我选择 Apache Iceberg
Delta Lake 将其定义为:Delta Lake is an open-source storage layer that brings ACID transactions to Apache Spark and big data workloads。而 Apache Iceberg 将其定义为:Apache Iceberg is an open table format for huge analytic datasets。首先,这类技术它的定位是在计算引擎之下,又在存储之上。
2023-07-30 15:37:21 128
原创 Apache FreeMarker 常见使用指令
使用 assign 指令可以创建一个新的变量,或者替换一个已经存在的变量。需要注意的是仅仅可以被创建/替换顶级变量 (也就是说你不能创建/替换 some_hash.subvar)。这个用法用于指定一个名为 name 的变量,变量值为 value。此外,FreeMarker 允许在使用 assign 指令里增加 in 子句,用来将创建的 name 变量放入 namespacehash 命名空间中。宏是和某个变量关联的模板片断,以便在模板中通过用户定义的指令使用该变量,而该变量表示模板片段。
2023-07-30 13:45:54 250
原创 Apache FreeMaker 命名空间
当运行 FTL 模板时,就会使用 assign 和 macro 等指令来创建变量的集合(可能是空的)。像这样的变量集合被称为命名空间。通常情况,FreeMarker 只使用一个命名空间,即为主命名空间。因为通常只使用该命名空间,所以很多人都没有意识到命名空间的存在。但如果想创建可以重复使用的宏,函数和其他变量的集合,就必须使用多命名空间(通常用术语来说就是引用库)。但要确保库中没有宏(或其他变量)名和数据模型中变量同名,而且也不能和模板中引用其他库中的变量同名是不可能的。
2023-07-30 13:11:17 97
转载 爱奇艺数据湖实战
数据湖概念于2010年 首次提出,经过多年的演变,目前演化出两种不同的定义——公有云数据湖、非公有云数据湖。规模大,成本低:能支持PB级别数据规模支持更新:包括历史分区新增数据、行级更新等增量拉取:将表的变更转成流数据用于构建下游表时效性:近实时(5分钟)查询快:交互级查询速度表格式是 Iceberg 设计的核心概念,因而需要首先明确表格式的定义。从用户的角度,表格式用于回答“表里面有哪些数据”,表格式的关键目标是“让用户和工具能高效地处理表下的数据”。
2023-07-28 08:05:33 91
转载 数据湖在快手的生产实践
本文整理自快手数据架构研发专家张静在WOT2023大会上的主题分享。今天的分享分为四个部分:首先介绍传统离线链路,它存在哪些痛点;第二部分引入数据湖的特性;第三部分是通过快手数据湖几个典型的业务场景来说明如何基于数据湖技术重塑离线链路的生产;最后一部分介绍近期工作和长远规划。希望通过本次分享能够让大家了解数据湖技术在重塑离线生产方式中的关键作用。
2023-07-26 08:27:05 158
原创 MyBatis Generator 插件使用指南
MyBatis-Generator (mybatis-generator-maven-plugin) 是 MyBatis 提供的快速生成代码的插件。可以帮我们快速生成表对应的持久化对象(POJO)、操作数据库的接口(dao) 以及映射文件 Mapper。基于 mybatis-generator-core-x.x.x.jar 和其 XML 配置文件,通过命令行运行。通过 Ant 的 Task 结合其 XML 配置文件运行。通过 Maven 插件运行。
2023-07-26 07:44:44 891
原创 Spring 依赖注入之 XML 自动装配
我们把 Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为’装配’。Spring 的 IOC 容器虽然功能强大,但它本身不过只是一个空壳而已,它自己并不能独自完成装配工作。需要我们主动将 Bean 放进去,并告诉它 Bean 和 Bean 之间的依赖关系,它才能按照我们的要求完成装配工作。在前面的学习中,我们都是在 XML 配置中通过和<property>中的 ref 属性,手动维护 Bean 与 Bean 之间的依赖关系的,具体可以查阅Spring 依赖注入之构造器注入和。
2023-07-15 18:45:41 264
原创 Spring 依赖注入之setter注入
通常,JavaBean 的属性是私有的,同时拥有一组存取器方法,以setXXX()和getXXX()形式存在。Spring 可以借助属性的 set 方法来配置属性的值,以实现 setter 方式的注入。上一篇文章讲解了实现注入,这篇文章主要讲解如何通过 setter 方法实现注入。
2023-07-14 08:02:10 286
原创 Spring MVC 引入 Jackson 触发 ClassFormatException: Invalid byte tag in constant pool: 19 异常
在 pom.xml 文件导入 jackson-databind 依赖时 scope 指定 provided,让 jackson-databind 依赖只在编译时有效。根本原因是 Tomcat 插件的版本过低,jackson-databind 版本过高,导致 tomcat 和 jackson-databind 发生冲突。通过上面的代码很容易发现是 Tomcat 和 Jackson 不兼容导致的。你也可以尝试使用 tomcat8-maven-plugin 插件。
2023-06-29 08:40:00 621
原创 Apahce Tomcat 安装与启动
安装的 Tomcat 遇到了 ClassNotFoundException: org.apache.catalina.startup.Catalina 异常。如果提示 Permission denied 那是因为没有文件的权限。可以跟上面类似使用 chmod 命令开放所有权限。在这我们 Tomcat 8 为例(8.5.90)。如果提示 Permission denied 那是因为没有。
2023-06-24 23:35:23 271
转载 Spring Boot 3.0 升级小指南
Spring Boot 3.0 现已正式发布,它包含了 12 个月以来 151 个开发者的 5700 多次代码提交。这是自 4.5 年前发布 2.0 以来,Spring Boot 的第一次重大修订。它也是第一个支持 Spring Framework 6.0 和 GraalVM 的 Spring Boot GA 版本,同时也是第一个基于Java 17的Spring Boot版本,以Jakarta EE 9为基准并支持Jakarta EE 10。同时借助于GraalVM支持了AOT和Native Image
2023-06-24 08:51:45 2815
转载 Flink Kafka Connector 实现机制简析
说完了 preCommit 和 commit,在两次 Checkpoint 发生的间隔当中,会持续的执行 invoke 方法将数据的写到 Kafka,直到 snapshotState 方法被调用,旧的数据被进行预提交,同时生成新的事务,数据继续写入,直到所有任务Checkpoint完成,收到通知,对完成的checkpointId把事务进行正式的提交。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。
2023-06-19 08:17:46 725
转载 Flink SQL 执行流程简单介绍
这篇文章从 org.apache.flink.table.examples.java.StreamSQLExample 这个简单的例子分析 Flink SQL 的一个简单的执行流程,也算 Flink SQL 执行流程初步的入门,我们先从整体的执行框架了解一个整体流程,方便之后我们有机会对 Flink SQL 进行修改先有一个简单认识
2023-06-15 08:44:06 885
原创 Apahce FreeMarker 第一个程序 HelloWorld
它们可以被视作为 “有效的不可改变的” 对象, 也可以继续使用 安全发布 技术 (参考 JSR 133 和相关的文献)来保证实例对其它线程也可用。比如, 通过 final 或 volatile 字段来声明实例,或者通过线程安全的IoC容器,但不能作为普通字段。才会产出输出,我们有了一个数据模型 (root) 和一个模板 (template), 为了得到输出就需要合并它们。Template 实例以解析后的形式存储模板,而不是以源文件的文本形式。有了模板之后,我们就可以创建数据模型对模板中的变量动态装填。
2023-06-08 08:34:37 96
转载 开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析
TPC-DS(Transaction Processing Performance Council Decision Support Benchmark)是一个面向决策支持系统(Decision Support System,简称DSS)的基准测试,该工具是由TPC组织开发,它模拟了多维分析和决策支持场景,并提供了99个查询语句,用于评估数据库系统在复杂的多维分析场景下的性能。每个查询都设计用于模拟复杂的决策支持场景,包括跨多个表的连接、聚合和分组、子查询等高级SQL技术。
2023-05-29 22:44:41 1537 1
Android应用开发揭秘
2015-12-17
Android开发秘籍
2015-12-17
Android开发精要
2015-12-17
Android技术内幕.系统卷
2015-12-17
Android高级编程
2015-12-17
JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发
2015-12-17
Mahout算法解析与案例实战
2015-12-16
LINUX内核设计与实现
2015-12-14
重构-改善即有代码的设计
2015-12-14
算法艺术和信息学竞赛
2015-12-14
apache-mahout-distribution-0.11.1-src
2015-11-30
log4j-1.2.17
2015-11-30
apache-maven-3.3.9-bin
2015-11-30
Better bitmap performance with Roaring bitmaps
2023-03-06
美团外卖离线数仓建设实践
2023-02-19
Redis 入门指南
2017-06-02
Apache Spark源码剖析
2016-11-12
Shell脚本学习指南
2016-05-28
精通Spring
2016-02-07
Spring-Jar-4.2.4
2016-01-28
log4j所需jar包
2016-01-20
Hadoop实战中文版
2015-12-25
大型网站技术核心原理与案例分析
2015-12-25
Hive Range Between 结果错误问题
2023-02-28
Storm Trident 抛异常不重发
2018-11-23
hive SERDEPROPERTIES 实现正则过滤
2018-06-05
Flink 关于窗口Window的问题
2018-01-17
Hive 运行SQL 重定向文件 输出WARN日志
2017-06-13
Hadoop Distcp报错 队列问题
2017-01-17
Hive Join 失败
2016-11-28
Hive 查询问题
2016-09-07
Hive LOAD DATA 错误
2016-07-23
[ElasticSearch] 中文字符串精确搜索 term 搜不到结果
2016-07-05
mysql group by 统计问题
2016-06-17
大型分布式网站架构的演进
2016-05-16
ubuntu IntelliJ Idea设置快捷方式问题
2016-03-08
罗技键盘 k380 连接上 没有任何的反应?
2016-03-06
Maven archetype:generate报错
2016-01-25
Log4j问题
2016-01-16
Java Stringbuilder调用append()方法报错
2015-12-20
nosql开放性问题
2015-12-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人