数据湖之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 ;
make it to the end-- 创建表
罗恩克拉克
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的数据库nighty night
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 |
+----------------+
crack切换 数据库eleanor roovelt
u hang ;
lect * from tb_hang ;
+-------------+---------------+
| tb_hang.id | tb_hang.name |
+-------------+---------------+
| 2 | hangge |
打电话技巧| 1 | hang |
+-------------+---------------+