前言
Apache Hudi bootstrap源码简要走读,不了解Hudi bootstrap的可以参考:利用Hudi Bootstrap转化现有Hive表的parquet/orc文件为Hudi表
版本
Hudi 0.12.0
Spark 2.4.4
入口
1 | val bootstrapDF = spark.emptyDataFrame |
Apache Hudi bootstrap源码简要走读,不了解Hudi bootstrap的可以参考:利用Hudi Bootstrap转化现有Hive表的parquet/orc文件为Hudi表
Hudi 0.12.0
Spark 2.4.4
1 | val bootstrapDF = spark.emptyDataFrame |
记录写Hudi时的一个异常的解决方法,其实这个异常从去年就发现并找到解决方法了,而且已经提交到社区merge了,PR:[HUDI-2675] Fix the exception ‘Not an Avro data file’ when archive and clean。之所以现在又要总结这个异常的处理方法是因为:我们生产环境用的 Hudi0.9.0版本,且没有升级,因为升级Hudi版本可能会有不兼容的问题,需要测试,比较费时,所以目前还没有升级版本,而这个PR合入的版本为0.11.0,所以本文主要总结在0.9.0版本如何解决这个问题,当然也适用于0.11.0版本之前的其他有同样问题的版本。
archive
和clean
时都会有这个异常,主要异常信息:
1 | Caused by: java.io.IOException: Not an Avro data file |
在最开始学习Hudi源码时,就发现了Hudi有一个Bootstrap功能,但是一直没用过,通过官网文档https://hudi.apache.org/cn/docs/migration_guide/可知,它可以将现有的表件转化为Hudi表,而且有两种类型METADATA_ONLY
和FULL_RECORD
,但是文档并不详细,比如这两种类型的区别具体是啥,支持哪些文件类型的源表。于是带着这些疑问来学习一下它是如何使用的以及源码原理的实现,这样可以更全面的了解Hudi。
Hudi 0.12.0
Spark 2.4.4/3.1.2
如题,目前只支持两种文件类型:parquet和orc,对于其他格式的Hive表,比如text就不能用Bootstrap进行转化了
其实官方文档并没有说明支持哪些类型,我们可以在源码里找到答案:
more >>
首先安装好Ceph,可以参考我前面的文章Ceph分布式集群安装配置
Flink: 1.10.1
hadoop: hdp版本 3.1.1.3.1.0.0-78
flink-s3-fs-hadoop-1.10.1.jar,从maven仓库下载即可,下载地址:https://mvnrepository.com/artifact/org.apache.flink/flink-s3-fs-hadoop,找到对应的版本下载即可
然后在$FLINK_HOME/plugins
目录下创建文件夹s3-fs-hadoop
,将下载的flink-s3-fs-hadoop-1.10.1.jar拷贝到该目录下
我这个版本的Flink是有scala-shell终端的,别的版本可能没有,路径 bin/start-scala-shell.sh
添加配置(Shell我们采用模式yarn-per-job):1
2
3
4
5execution.target: yarn-per-job
s3.access.key: access_key
s3.secret.key: secret_key
s3.endpoint: ip:7480
s3.connection.ssl.enabled: false
首先安装好Ceph,可以参考我上篇文章Ceph分布式集群安装配置
spark: 2.4.5
hadoop: hdp版本 3.1.1.3.1.0.0-78
1 | hadoop-aws-3.1.1.3.1.0.0-78.jar 注意版本要和hadoop版本对应 |
将上面的jar包拷贝到$SPARK_HOME/jars
more >>
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true