1. 下载连接
- 源代码下载:Apache Hudi 0.5.3 Source Release (asc, sha512)
- 0.5.3版本相关jar包地址:https://repository.apache.org/#nexus-search;quick~hudi
2. 迁移指南
- 这是一个bugfix版本,从0.5.2升级时不需要任何特殊的迁移步骤。如果要从早期版本"X"升级,请阅读"X"和0.5.3之间的每个后续版本的迁移指南。
- 0.5.3是Hudi毕业后的第一个版本,因此所有hudi jar的版本名称中不再带有"-incubating"。在所有提及hudi版本的地方,请确保不再存在"-incubating"。
例如,hudi-spark-bundle pom依赖如下所示:
<dependency>
<groupId>org.apache.hudi</groupId>
<artifactId>hudi-spark-bundle_2.12</artifactId>
<version>0.5.3</version>
</dependency>
3. 关键特性
-
Hudi内置支持
aliyun OSS
对象存储。 -
默认情况下将为delta-streamer和spark datasource写入启用Embedded Timeline Server。在此版本之前,此功能处于实验模式,embeddedTimeline Server在Spark Driver中缓存文件列表,并提供Restful接口给Spark Writer任务调用来减少了每次写入时的list文件列表的操作,此优化对云上对象存储非常友好。
-
默认情况下为delta-streamer和Spark datasource写入均启用"增量清理(incremental cleaning)"。在此版本之前,此功能还处于实验模式,在稳定状态下,增量清理避免了扫描所有分区的昂贵步骤,而是使用Hudi元数据来查找要清理的文件,此优化也对云上对象存储非常友好。
-
支持将Delta-Streamer配置文件放置在与实际数据不同的文件系统中。
-
Hudi Hive Sync现在支持按日期类型列分区的表。
-
Hudi Hive Sync现在支持直接通过Hive MetaStore进行同步。您只需要设置
hoodie.datasource.hive_sync.use_jdbc = false
。Hive Metastore Uri将从environment中隐式读取。例如当通过Spark datasource写入时,spark.write.format(“hudi”) .option(…) .option(“hoodie.datasource.hive_sync.username”, “<user>”) .option(“hoodie.datasource.hive_sync.password”, “<password>”) .option(“hoodie.datasource.hive_sync.partition_fields”, “<partition_fields>”) .option(“hoodie.datasource.hive_sync.database”, “<db_name>”) .option(“hoodie.datasource.hive_sync.table”, “<table_name>”) .option(“hoodie.datasource.hive_sync.use_jdbc”, “false”) .mode(APPEND) .save(“/path/to/dataset”)
-
支持Presto查询MoR表时Hudi侧的改造。
-
其他与Writer Performance相关的缺陷修复。
- 现在DataSource Writer避免了写入后不必要的数据加载。
- Hudi Writer现在利用spark的并发来加速小文件查找。
4. 感谢
感谢如下贡献者(排名不分先后): @bhasudha,@yanghua ,@ddong ,@smarthi ,@afilipchik,@zhedoubushishi,@umehrot2,@varadar,@ffcchi,@bschell,@vinothchandar ,@shenh062326,@lamber-ken,@zhaomin1423,@EdwinGuo,@prashantwason ,@pratyakshsharma,@dengziming ,@AakashPradeep,@Jecarm ,@xushiyan ,@cxzl25,@garyli1019 ,@rolandjohann ,@nsivabalan,@leesf ,@jfrazee