华为云FusionInsight MRS实战:如何用DeltaStreamer实现Hudi实时数据入湖的最佳策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2310个文字,预计阅读时间需要10分钟。
背景:传统大数据平台的架构是针对离线数据处理需求设计的。常用的数据导入方式是采用sqoop工具,通过定时作业批量导入数据。
数据需求:随着数据量增长,对实时性要求不断提高。因此,需要按小时甚至分钟级别不断优化数据。
数据:按小时或分钟级别的数据。
背景传统大数据平台的组织架构是针对离线数据处理需求设计的,常用的数据导入方式为采用sqoop定时作业批量导入。随着数据分析对实时性要求不断提高,按小时、甚至分钟级的数据同步越来越普遍。由此展开了基于spark/flink流处理机制的(准)实时同步系统的开发。
然而实时同步从一开始就面临如下几个挑战:
- 小文件问题。不论是spark的microbatch模式,还是flink的逐条处理模式,每次写入HDFS时都是几MB甚至几十KB的文件。长时间下来产生的大量小文件,会对HDFS namenode产生巨大的压力。
- 对update操作的支持。HDFS系统本身不支持数据的修改,无法实现同步过程中对记录进行修改。
- 事务性。不论是追加数据还是修改数据,如何保证事务性。即数据只在流处理程序commit操作时一次性写入HDFS,当程序rollback时,已写入或部分写入的数据能随之删除。
Hudi就是针对以上问题的解决方案之一。使用Hudi自带的DeltaStreamer工具写数据到Hudi,开启–enable-hive-sync 即可同步数据到hive表。
本文共计2310个文字,预计阅读时间需要10分钟。
背景:传统大数据平台的架构是针对离线数据处理需求设计的。常用的数据导入方式是采用sqoop工具,通过定时作业批量导入数据。
数据需求:随着数据量增长,对实时性要求不断提高。因此,需要按小时甚至分钟级别不断优化数据。
数据:按小时或分钟级别的数据。
背景传统大数据平台的组织架构是针对离线数据处理需求设计的,常用的数据导入方式为采用sqoop定时作业批量导入。随着数据分析对实时性要求不断提高,按小时、甚至分钟级的数据同步越来越普遍。由此展开了基于spark/flink流处理机制的(准)实时同步系统的开发。
然而实时同步从一开始就面临如下几个挑战:
- 小文件问题。不论是spark的microbatch模式,还是flink的逐条处理模式,每次写入HDFS时都是几MB甚至几十KB的文件。长时间下来产生的大量小文件,会对HDFS namenode产生巨大的压力。
- 对update操作的支持。HDFS系统本身不支持数据的修改,无法实现同步过程中对记录进行修改。
- 事务性。不论是追加数据还是修改数据,如何保证事务性。即数据只在流处理程序commit操作时一次性写入HDFS,当程序rollback时,已写入或部分写入的数据能随之删除。
Hudi就是针对以上问题的解决方案之一。使用Hudi自带的DeltaStreamer工具写数据到Hudi,开启–enable-hive-sync 即可同步数据到hive表。

