弹性 MapReduce Iceberg 引擎集成

这篇演示如何在 EMR 上使 Hive、Spark、Flink 引擎支持 Iceberg 表。

相关产品
弹性 MapReduce 产品页,含版本规格、价格与购买入口。

一、开发准备

·确认你已经开通了腾讯云,并且创建了一个 EMR 集群,详情参考 创建集群。

·在创建 EMR 集群时在软件配置界面选择 Iceberg 组件,并按照需求勾选集成的 Spark、Hive、Flink 引擎。

二、方式一:临时添加依赖环境

使用 Hive 命令启动 Hive,使用 add 命令添加 Hive 使用 Iceberg 依赖所需要的 jar 包:

//先启动hive引擎,在hive命令行添加依赖包hiveADD JAR {iceberg-hive-runtime};

{iceberg-hive-runtime} 是依赖 jar 包的绝对路径,jar 包位于 /usr/local/service/iceberg 目录下。

注意:使用临时添加依赖环境的方法,每次启动 Hive 时都需要使用 add 命令添加一次依赖。

三、方式二:使用额外 lib 目录

将 Hive 使用 Iceberg 依赖所需要的 jar 包拷贝到 auxlib 目录:

cp {iceberg-hive-runtime} /usr/local/service/hive/auxlib

将 Iceberg 依赖添加至 Hive 中之后,再启动 Hive 即可使用 Iceberg 表格。

四、Spark 集成

将 Spark 使用 Iceberg 依赖所需要的 jar 包拷贝到 jars 目录:

cp {iceberg-spark-runtime} /usr/local/service/spark/jars

{iceberg-spark-runtime} 是依赖 jar 包的绝对路径,jar 包位于 /usr/local/service/iceberg 目录下。

使用以下命令启动支持 Iceberg 表的 Spark sql 命令行:

spark-sql –conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \\ –conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog \\ –conf spark.sql.catalog.spark_catalog.type=hive \\

五、将 Iceberg 配置写入配置文件

可以通过将 Iceberg 配置写入配置文件的方式,让 Spark sql 默认支持 Iceberg。

进入EMR控制台,点击 集群服务 > SPARK > 配置管理 页面,选择 spark-defaults.conf 配置文件,新增以下参数值:

spark.sql.extensions = org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensionsspark.sql.catalog.spark_catalog = org.apache.iceberg.spark.SparkSessionCatalogspark.sql.catalog.spark_catalog.type = hive

注意:这里默认配置了 Hive 类型的 Catalog,其他类型的 Catalog 配置参考 产品文档。

六、Flink 集成

将 Flink 使用 Iceberg 依赖所需要的 jar 包拷贝到 auxlib 目录。

cp {iceberg-flink-runtime} /usr/local/service/flink/libcp /usr/local/service/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.2.2.jar /usr/local/service/flink/lib/cp /usr/local/service/hive/lib/hive-exec-3.1.3.jar /usr/local/service/flink/lib/cp /usr/local/service/hive/lib/libfb303-0.9.3.jar /usr/local/service/flink/lib///启动支持iceberg表的flink sql命令行./bin/sql-client.sh embedded shell

{iceberg-flink-runtime} 是依赖 jar 包的绝对路径,jar 包位于 /usr/local/service/iceberg 目录下。

{hadoop-mapreduce-client-core-3.2.2.jar}、{hive-exec-3.1.3.jar}、{libfb303-0.9.3.jar}三个 jar 包需要更改为对应的版本。

赞 (0)
上一篇 4天前
下一篇 4天前