Hudi系列5:Hudi与Spark集成

2023-01-11  本文已影响0人  只是甲
image.png

一. Spark操作Huid概述

Hudi各个版本支持Spark版本情况:


image.png

将hudi集成spark的jar包,放到spark的jars目录

-- 同步到其它节点
cd /home/hudi-0.12.0/packaging/hudi-spark-bundle/target
cp ./hudi-spark3.3-bundle_2.12-0.12.0.jar /home/spark-3.3.1-bin-hadoop3/jars/

Hudi支持Scala(Spark-Shell)、pyspark、SparkSQL三种方式来操作Hudi。

软件 版本
Python 3.8
Hadoop 3.3.2
Spark 3.3.1
Hudi 0.12.0

二. Spark-Shell方式

# Spark 3.3
spark-shell \
  --packages org.apache.hudi:hudi-spark3.3-bundle_2.12:0.12.0 \
  --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
  --conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' \
  --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
image.png

备注:
官网提供的是:
--packages org.apache.hudi:hudi-spark3.3-bundle_2.12:0.12.1
因为hudi最新的版本是0.12.1,但是我测试过,建表有问题,会报错,把hudi的版本改回0.12.0即可
--packages org.apache.hudi:hudi-spark3.3-bundle_2.12:0.12.0

下同。

三. pyspark方式

# Spark 3.3
export PYSPARK_PYTHON=$(which python3)
pyspark \
--packages org.apache.hudi:hudi-spark3.3-bundle_2.12:0.12.0 \
--conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
--conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog' \
--conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
image.png

四. SparkSQL方式

# Spark 3.3
spark-sql --packages org.apache.hudi:hudi-spark3.3-bundle_2.12:0.12.0 \
--conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
--conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension' \
--conf 'spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog'
image.png

参考:

  1. https://hudi.apache.org/docs/quick-start-guide/
上一篇下一篇

猜你喜欢

热点阅读