hudi

Linux Foundation APAC 新成员 – 首批Open Source Evangelist正式上任!

天大地大妈咪最大 提交于 2021-02-04 03:23:37
布道者 (Evangelist)源自希腊语,意思是带来好消息的人。对我们来说,"开源布道者"其实不光是一个工作头衔,更是一种生活方式,一个称职的开源布道者首先必须热爱开源,如果你不爱这个事业,无论你的个人能力多么出众,你都不可能成为一个好的布道者。光有学历和经验是不够的,我们期待的是热爱开源的志同道合伙伴。我们坚信开源是促进人类科技进步的最重要的力量之一,作为一个开源布道者,我们期待更多的朋友因为我们的努力而加入开源布道者的行列! 在2021新的一年,我们很欢迎Linux Foundation APAC首批Open Source Evangelist正式上任!以下为 10位Open Source Evangelist 的介绍 ( 按姓氏排列顺序,排名不分先后): 陈冉 Sam Chen 陈冉 Sam Chen 开源 改变了世界,并让世界变得更美好。 我叫陈冉。 是中国一家DevOps独角兽CEO兼创始人。 我在开源的推广、使用和盈利方面有超过8年的经验。 此外,作为一个传播者,我还积极参与到不同的开源社区。 寻找持续为开源做贡献的机会,并与之一起成长。 陈兴友 陈兴友 陈兴友是一位Linux内核开发者、云计算从业者,曾在多家公司担任技术预研、培训工作。 作为理学学士及工学硕士,从业经历涉及服装、运维、内核开发、网络安全、图像处理、嵌入式设备等方向,个人兴趣涉及电子线路、物联网、绿植

Flink 助力美团数仓增量生产

此生再无相见时 提交于 2021-01-30 03:10:03
简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规划。 一、数仓增量生产 1.美团数仓架构 先介绍一下美团数仓的架构以及增量生产。如下图所示,这是美团数仓的简单架构,我把它叫做三横四纵。所谓三横,第一是贯穿全链路的元数据以及血缘,贯穿数据集成、数据处理、数据消费、以及数据应用的全过程链路。另外一块贯穿全链路的是数据安全,包括受限域的认证系统、权限系统、整体的审计系统。根据数据的流向,我们把数据处理的过程分为数据集成、数据处理、数据消费、以及数据应用这 4 个阶段。 在数据集成阶段,我们对于公司内部的,比如说用户行为数据、日志数据、DB 数据、还有文件数据,都有相应的集成的系统把数据统一到我们的数据处理的存储中,比如说 Kafka 中。 在数据处理阶段,分为流式处理链路、批处理链路以及基于这套链路的数仓工作平台(万象平台)。生产出来的数据,经过 Datalink 导入到消费的存储中,最终通过应用以不同的形式呈现出来。 我们目前在 Flink 上面应用比较广泛的地方,包括从 Kafka 把数据导到 Hive,包括实时的处理,数据导出的过程。今天的分享就集中在这些方面。 2.美团 Flink 应用概况 美团的 Flink 目前大概有

Flink 助力美团数仓增量生产

对着背影说爱祢 提交于 2021-01-29 10:16:48
简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规划。 一、数仓增量生产 1.美团数仓架构 先介绍一下美团数仓的架构以及增量生产。如下图所示,这是美团数仓的简单架构,我把它叫做三横四纵。所谓三横,第一是贯穿全链路的元数据以及血缘,贯穿数据集成、数据处理、数据消费、以及数据应用的全过程链路。另外一块贯穿全链路的是数据安全,包括受限域的认证系统、权限系统、整体的审计系统。根据数据的流向,我们把数据处理的过程分为数据集成、数据处理、数据消费、以及数据应用这 4 个阶段。 在数据集成阶段,我们对于公司内部的,比如说用户行为数据、日志数据、DB 数据、还有文件数据,都有相应的集成的系统把数据统一到我们的数据处理的存储中,比如说 Kafka 中。 在数据处理阶段,分为流式处理链路、批处理链路以及基于这套链路的数仓工作平台(万象平台)。生产出来的数据,经过 Datalink 导入到消费的存储中,最终通过应用以不同的形式呈现出来。 我们目前在 Flink 上面应用比较广泛的地方,包括从 Kafka 把数据导到 Hive,包括实时的处理,数据导出的过程。今天的分享就集中在这些方面。 2.美团 Flink 应用概况 美团的 Flink 目前大概有

hive beeline ClassNotFoundException

[亡魂溺海] 提交于 2021-01-17 16:51:25
异常现象:使用beeline 或者jdbc 连接hive 执行 create table 异常为 ClassNotFoundException: org.apache.hudi.hadoop.HoodieParquetInputFormat 使用hive client可以正常执行crete table 异常分析: beeline 是通过hiveserver2 服务连接的hive,检查hiveserver2所在服务器jar包是否存在 解决方案: 1、将jar拷贝到hive/lib/ 2、修改hive-env.sh ,将jar加入 例如: export HIVE_AUX_JARS_PATH=/home/hive/lib/json-serde-1.3.7-jar-with-dependencies.jar,/home/hive/lib/hudi-hive-bundle-0.6.0-incubating.jar 3、 重启hiveserver2服务 /home/hive/bin/hiveserver2 --hiveconf hive.server2.thrift.port=10000 & 来源: oschina 链接: https://my.oschina.net/u/4343937/blog/4907167

华为云FusionInsight湖仓一体解决方案的前世今生

泄露秘密 提交于 2020-11-03 15:59:44
摘要 :华为云发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念,那我们就来看看湖仓一体的前世今生。 伴随5G、大数据、AI、IoT的飞速发展,数据呈现大规模、多样性的极速增长,为了应对多变的业务诉求,政企客户对数据处理分析的实时性和融合性提出了更高的要求,“湖仓一体”的概念应运而生,它打破数据湖与数仓间的壁垒,使得割裂数据融合统一,减少数据分析中的搬迁,实现统一的数据管理。 早在2020年5月份的华为全球分析师大会上,华为云CTO张宇昕提出了“湖仓一体”概念,在随后的华为云与计算城市峰会上,“湖仓一体”理念跟随华为云FusionInsight智能数据湖在南京、深圳、西安、重庆等地均有呈现,在刚结束的HC2020上,张宇昕在发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念。那我们就来看看湖仓一体的来世今生。 数据湖和数据仓库的发展历程和挑战 早在1990年,比尔·恩门(Bill Inmon)提出了数据仓库,主要是将组织内信息系统联机事务处理(OLTP)常年累积的大量资料,按数据仓库特有的资料储存架构进行联机分析处理(OLAP)、数据挖掘(Data Mining)等分析,帮助决策者快速有效地从大量资料中分析出有价值的资讯,以利决策制定及快速响应外在环境变化,帮助构建商业智能(BI)。 大约十年前,企业开始构建数据湖来应对大数据时代

生态 | Apache Hudi集成Alluxio实践

∥☆過路亽.° 提交于 2020-10-23 02:29:01
原文链接: https://mp.weixin.qq.com/s/sT2-KK23tvPY2oziEH11Kw 1. 什么是Alluxio Alluxio为数据驱动型应用和存储系统构建了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。这还使得应用程序能够通过一个公共接口连接到许多存储系统。Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。 对于用户应用程序和计算框架,Alluxio提供了快速存储,促进了作业之间的数据共享和局部性。当数据位于本地时,Alluxio可以以内存速度提供数据;当数据位于Alluxio时,Alluxio可以以计算集群网络的速度提供数据。第一次访问数据时,只从存储系统上读取一次数据。为了得到更好的性能,Alluxio推荐部署在计算集群上。 对于存储系统,Alluxio弥补了大数据应用与传统存储系统之间的差距,扩大了可用的数据工作负载集。当同时挂载多个数据源时,Alluxio可以作为任意数量的不同数据源的统一层。 Alluxio可以被分为三个部分:masters、workers以及clients。一个典型的设置由一个主服务器、多个备用服务器和多个worker组成。客户端用于通过Spark或MapReduce作业、Alluxio命令行等与Alluxio服务器通信。 2. 什么是Apache Hudi

官宣!ASF官方正式宣布Apache Hudi成为顶级项目

情到浓时终转凉″ 提交于 2020-08-11 01:06:31
官宣!ASF官方正式宣布Apache Hudi成为顶级项目 马萨诸塞州韦克菲尔德(Wakefield,MA)- 2020年6月 - Apache软件基金会(ASF)、350多个开源项目和全职开发人员、管理人员和孵化器宣布:Apache Hudi正式成为Apache顶级项目(TLP)。在投票表决Hudi毕业时,Hudi总共获得了19票binding(其中包括ASF联合创始人Jim Jagielski的一票),21票non-binding。 Apache Hudi(Hadoop Upserts Delete and Incremental)数据湖技术可在Apache Hadoop兼容的云存储和分布式文件系统之上进行流处理。该项目最初于2016年在Uber开发(代号和发音为"Hoodie"),于2017年开源,并于2019年1月提交给Apache孵化器。 Apache Hudi项目VP Vinoth Chandar说:“在孵化器中学习和发展Apache之道是一种有益的体验,作为一个社区,我们对我们共同推动该项目走了多远依然感到谦卑,与此同时,对即将到来的挑战感到兴奋。” Apache Hudi用于在Apache Hadoop分布式文件系统(HDFS)或云存储上使用流处理原语(例如插入更新和增量更改流)来管理PB级数据湖。Hudi数据湖提供了新鲜的数据,比传统批处理效率高一个数量级。

Apache Hudi重磅特性解读之全局索引

烈酒焚心 提交于 2020-07-27 15:18:01
1. 摘要 Hudi表允许多种类型操作,包括非常常用的 upsert ,当然为支持 upsert ,Hudi依赖索引机制来定位记录在哪些文件中。 当前,Hudi支持分区和非分区的数据集。分区数据集是将一组文件(数据)放在称为分区的桶中的数据集。一个Hudi数据集可能由N个分区和M个文件组成,这种组织结构也非常方便hive/presto/spark等引擎根据分区字段过滤以返回有限的数据量。而分区的值绝大多数情况下是从数据中得来,这个要求一旦一条记录映射到分区/桶,那么这个映射应该 a) 被Hudi知道;b) 在Hudi数据集生命周期里保持不变。 在一个非分区数据上Hudi需要知道recordKey -> fileId的映射以便对记录进行 upsert 操作,现有解决方案如下:a) 用户/客户端通过payload提供正确的分区值;b) 实现GlobalBloomIndex索引来扫描指定路径下的所有文件。上述两个场景下,要么需要用户提供映射信息,要么会导致扫描所有文件的性能开销。 这个方案拟实现一种新的索引类型,维护 (recordKey <-> partition, fileId) 映射或者 ((recordKey, partitionPath) → fileId) 映射,这种映射由Hudi存储和维护,可以解决上述提到的两个限制。 2. 背景 数据集类型

Apache Hudi 编译测试

为君一笑 提交于 2020-04-28 19:58:27
测试环境:Ubuntu 16.04 Hudi版本:0.5.2 Spark版本:2.4.0 下载编译测试 下载 git clone https://github.com/apache/incubator-hudi.git && cd incubator-hudi 编译 mvn clean package -Dmaven.test.skip=true Hudi CLI测试 写入查询测试 Spark shell启动 ./spark-shell --packages org.apache.hudi:hudi-spark-bundle_2.11:0.5.1-incubating,org.apache.spark:spark-avro_2.11:2.4.4 --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' 插入数据测试 import org . apache . hudi . QuickstartUtils . _ import scala . collection . JavaConversions . _ import org . apache . spark . sql . SaveMode . _ import org . apache . hudi . DataSourceReadOptions

写入Apache Hudi数据集

半世苍凉 提交于 2020-04-26 23:41:29
这一节我们将介绍使用 DeltaStreamer 工具从外部源甚至其他Hudi数据集摄取新更改的方法, 以及通过使用 Hudi数据源 的upserts加快大型Spark作业的方法。 对于此类数据集,我们可以使用各种查询引擎 查询 它们。 写操作 在此之前,了解Hudi数据源及delta streamer工具提供的三种不同的写操作以及如何最佳利用它们可能会有所帮助。 这些操作可以在针对数据集发出的每个提交/增量提交中进行选择/更改。 UPSERT(插入更新) :这是默认操作,在该操作中,通过查找索引,首先将输入记录标记为插入或更新。 在运行启发式方法以确定如何最好地将这些记录放到存储上,如优化文件大小之类后,这些记录最终会被写入。 对于诸如数据库更改捕获之类的用例,建议该操作,因为输入几乎肯定包含更新。 INSERT(插入) :就使用启发式方法确定文件大小而言,此操作与插入更新(UPSERT)非常相似,但此操作完全跳过了索引查找步骤。 因此,对于日志重复数据删除等用例(结合下面提到的过滤重复项的选项),它可以比插入更新快得多。 插入也适用于这种用例,这种情况数据集可以允许重复项,但只需要Hudi的事务写/增量提取/存储管理功能。 BULK_INSERT(批插入) :插入更新和插入操作都将输入记录保存在内存中,以加快存储优化启发式计算的速度(以及其它未提及的方面)。