数据湖之 Flink Spark 集成 iceberg

本文详细介绍了如何将Flink与Spark集成到大数据处理框架Iceberg中,包括Iceberg的优点、安装部署步骤、Flkink与Spark对Iceberg的集成方法,以及Hive查询Iceberg表的操作。内容涵盖了Iceberg的ACID特性、存储格式支持,以及在Flink SQL中的DML操作等。
摘要由CSDN通过智能技术生成

一、iceberg优点

  1. 提供ACID事物,上游数据写入即可见,提供了 upsert、merge into 能力
  2. 支持计算引擎有 Spark、Flink、Presto 以及 Hive
  3. 支持 Parquet、Avro 以及 ORC 等存储格式
  4. 增量读取处理能力:支持通过流式方式读取增量数据,支持 Structed Streaming 以及 Flink table Source

二、安装部署

版本: hadoop 2.7.7 hive 2.3.9 flink 1.11.1 spark 3.0.2 iceberg 0.11.1
下载依赖jar包:

 iceberg-flink-runtime-0.11.1.jar
 iceberg-hive-metastore-0.11.1.jar
 iceberg-hive-runtime-0.11.1.jar
 iceberg-spark3-0.11.1.jar
 iceberg-spark3-runtime-0.11.1.jar
 iceberg-spark3-extensions-0.11.1.jar

根据各自名字分别移到spark , hive . flink lib目录下
加入全局配置: HADOOP_HOME HIVE_HOME .并配置path 环境变量

export PATH= HADOOP_HOME/bin: HIVE_HOME/conf

加入全局配置:

 export HADOOP_CLAASSPATH=$(hadoop classpath)

三、iceberg集成flink

1.为了方便演示,使用flink 的 sql-client.sh conf目录下面 sql-client-defaults.yaml 加入配置;

catalogs:
# 默认 catalog 名字
- name: myhive
# 默认catalog的类型
type: hive
default-database: default
# hive配置文件地址
hive-conf-dir: /opt/server/apache-hive-2.3.9-bin/conf

将core-site.xml hdfs-site.xml hive-site.xml 拷贝到 conf目录下面

2.将core-site.xml hdfs-site.xml hive-site.xml 拷贝到 conf目录下面

export HADOOP_CLASSPATH=`hadoop classpath`

3.并启动本地flink集群,bin目录下面执行 :

./sql-client.sh embedded -j /opt/server/flink-1.11.1/lib/iceberg-flink-runtime-0.11.1.jar
-j /opt/server/flink-1.11.1/lib/flink-sql-connector-hive-2.3.6_2.11-1.11.2.jar shell

# 需要在启动参数中添加 -noverify 跳过字节码校验
# # start client without jar
exec $JAVA_RUN $JVM_ARGS -noverify "${log_setting[@]}" -classpath "`manglePathList
"$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`" org.apache.f
link.table.client.SqlClient "$@"
# check if SQL client jar is in /opt
elif [ -n "$FLINK_SQL_CLIENT_JAR" ]; then
# start client with jar
exec $JAVA_RUN $JVM_ARGS -noverify "${log_setting[@]}" -classpath "`manglePathList
"$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS:$FLINK_SQL_CLIE
NT_JAR"`" org.apache.flink.table.client.SqlClient "$@" --jar "`manglePath
$FLINK_SQL_CLIENT_JAR`"

4.flink集成iceberg

flink 黑窗口中执行sql命令

./sql-client.sh embedded  -j /opt/server/flink-1.11.1/lib/iceberg-flink-runtime-0.11.1.jar -j /opt/server/flink-1.11.1/lib/flink-sql-connector-hive-2.3.6_2.11-1.11.2.jar shell

①.创建catalog 指定iceberg存放位置

CREATE CATALOG hadoop_catalog WITH (
'type'='iceberg',
'catalog-type'='hadoop',
'warehouse'='hdfs://xxx:8020/user/hive/warehouse/',
'property-version'='1'
);

use catalog hadoop_catalog
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值