弹性 MapReduce Hive 访问 Iceberg 数据

登录 Master 节点并切换 hadoop 用户,执行以下命令启动 SparkSQLspark-sql –master local[*] –conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions –conf spark.sql.catalog.local=org.apache.ice。

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

一、开发准备

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

·在创建 EMR 集群时在软件配置界面选择 Hive、Spark、Iceberg 组件。

二、通过 spark 创建 Iceberg 表

注意:说明:

注意:Iceberg 相关的包放置在 /usr/local/service/iceberg/ 目录下,–jars 使用的依赖包版本在不同 EMR 版本中可能存在差异,请查看并使用正确的依赖包。

建表:

spark-sql> CREATE TABLE local.default.t1 (id int, name string) USING iceberg;Time taken: 2.752 seconds

插入数据:

spark-sql> INSERT INTO local.default.t1 values(1, "tom");Time taken: 2.71 seconds

查询数据:

spark-sql> SELECT * from local.default.t1;1 tomTime taken: 0.558 seconds, Fetched 1 row(s)

三、通过 Hive 查看 Iceberg 数据

登录 Master 节点并切换 hadoop 用户,执行以下命令连接 Hive:

hive

添加 Iceberg 依赖包:

hive> add jar /usr/local/service/iceberg/iceberg-hive-runtime-0.13.0.jar;

创建外部表:

hive> CREATE EXTERNAL TABLE t1 STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' LOCATION '/usr/hive/warehouse/default/t1' TBLPROPERTIES ('iceberg.catalog'='location_based_table');

查询 t1 表记录数:

hive> select count(*) from t1;OK1Time taken: 26.255 seconds, Fetched: 1 row(s)

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