Hudi系列5:Hudi與Spark集成 一. Spark操作Huid概述 二. Spark-Shell方式 三. pyspark方式 四. SparkSQL方式 參考:

一. Spark操作Huid概述

Hudi各個版本支持Spark版本情況:


將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'

備註:
官網提供的是:
--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'

四. 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'

參考:

  1. https://hudi.apache.org/docs/quick-start-guide/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章