数据湖之iceberg系列(三)iceberg快速⼊门
2 spark将读写iceberg表中数据
准备spark集群, 并配置iceberg环境
最聪明的狗狗在spark的配置⽬录中添加hadoop和hive的配置⽂件 ⽅便spark与hadoop和hive整合
在spark的jars包中添加下载好的iceberg的jar包
2.1 catalog为hadoop
2.1.1 sparksql操作
spark-sql --packages org.apache.iceberg:iceberg-spark3-runtime:0.10.0 \
--conf spark.sql.catalog.hadoop_prod=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.pe=hadoop \
--conf spark.sql.catalog.hadoop_prod.warehou=hdfs://linux01:8020/doit/iceberg/warehou
配台式机
创建表
-- 使⽤系统默认的数据源 会将表⽣成在默认的本地⽂件夹中
spark-sql> create table tb_test1(id int ,name string) using iceberg ;
-- 切换启动SQL脚本是⾃⼰设置的数据源hadoop_prod
u hadoop_prod.default ;
-- 创建表
create table tb_test1(id int ,name string) using iceberg ;
查看表的位置在HDFS上
插⼊⼊数据到iceberg表中
inrt into tb_test1 values(1,'马云'),(2,'马蓉'),(3,'马保国') ;
lect * from tb_test1 ;
星星离我们有多远
1 马云
2 马蓉
3 马保国
2.1.2 sparkshell操作
-- 登录shell客户端
spark-shell --packages org.apache.iceberg:iceberg-spark3-runtime:0.10.0 \
--conf spark.sql.catalog.hadoop_prod=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.pe=hadoop \
--conf spark.sql.catalog.hadoop_prod.warehou=hdfs://linux01:8020/doit/iceberg/warehou
直接读取上⾯在sparksql中创建的表中的数据
scala> ad.format("iceberg").load("hdfs://linux01:8020//doit/iceberg/warehou/default/tb_test
1").show +---+------+
| id| name|
+---+------+
| 1| 马云|
| 2| 马蓉|
| 3|马保国|
+---+------+
使⽤sparkAPI建表和插⼊数据在后⾯的API中在详细介绍
2.1.3 IDEA spark项⽬操作
使⽤IDEA创建maven项⽬ , 添加依赖
2.2 catalog为hive
spark可以使⽤sparkshell , sparksql 和idea中创建iceberg表 ,在hive中使⽤iceberg⽀持以后可以再hive中对数据进⾏分析处理 , 但是不能对数据进⾏修改和创建表等操作 , 也就是说暂且还不⽀持写操作 !
2.2.1 sparksql操作
spark-sql --packages org.apache.iceberg:iceberg-spark3-runtime:0.10.0 --conf
spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog --conf
spark.sql.catalog.pe=hive
顽皮的小杜鹃-- 在hive中创建iceberg的数据库
create databa spark_catalog.hang ;
-- 切换数据源数据库
强说愁u spark_catalog.hang ;
-- 创建iceberg表
create table tb_hang(id int , name string) using iceberg ;
在hive的⼯作⽬录中查看 出现如下⽬录 :
向表中插⼊数据 -----> 在hive客户端查询数据
-- 开启hive对iceberg的⽀持
atalog=hive;
abled=true ;
-- 在hive端查看当前的数据库
show databa ;
+----------------+
| databa_name |
+----------------+
| db_doit19 |
芦荟有什么用
| db_icer |
| default |
| hang |
+----------------+
切换 数据库
u hang ;
海棠花作文
lect * from tb_hang ;
+-------------+---------------+
| tb_hang.id | tb_hang.name |
+-------------+---------------+
柔光伞
| 2 | hangge |
| 1 | hang |
+-------------+---------------+