Spark、lceberg、Minio 集成环境搭建

(44) 2023-10-25 14:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Spark、lceberg、Minio 集成环境搭建,希望能够帮助你!!!。

采用Spark、Iceberg、Minio搭建轻量级集群环境。

一、前置条件

1、采用 对象存储 minio 集群;

2、使用lceberg对数据组织进行管理;

3、spark版本采用 spark-3.2.1-bin-hadoop3.2.tgz;

二、配置环境

1、minio 配置

Spark、lceberg、Minio 集成环境搭建_https://bianchenghao6.com/blog__第1张

参考:http://www.minio.org.cn/download.shtml#/linux

2、spark 配置

修改 SPARK_HOME/conf 目录中的 spark-defaults.conf 文件,添加以下内容

Spark、lceberg、Minio 集成环境搭建_https://bianchenghao6.com/blog__第2张

参考:http://docs.minio.org.cn/docs/master/disaggregated-spark-and-hadoop-hive-with-minio

3、下载 lceberg 包

官网地址:https://iceberg.apache.org/docs/latest/getting-started/

Jar包下载地址:https://search.maven.org/remotecontent?filepath=org/apache/iceberg/iceberg-spark-runtime-3.2_2.12/0.13.1/iceberg-spark-runtime-3.2_2.12-0.13.1.jar

4、下载所需的jar包

maven仓库下载地址:https://search.maven.org/

当前使用的是spark3.2.1,所以需要按以下方式进行修改(/opt/spark-3.2.1/jars):

备份:mv guava-14.0.1.jar guava-14.0.1.jar_bak

下载:

hadoop-aws-3.3.1.jar

guava-28.0-jre.jar

aws-sdk-java-2.17.179.jar

aws-java-sdk-bundle-1.11.793.jar

以上下载的jar包放到 /opt/spark-3.2.1/jars 下,如图:

Spark、lceberg、Minio 集成环境搭建_https://bianchenghao6.com/blog__第3张

注:以上配置好后,重启Spark集群服务。

三、使用示例

/opt/spark-3.2.1/bin/spark-shell --master spark://centos4:7078 \

--driver-memory 512m --executor-memory 512m --conf spark.cores.max=2 \

--jars /root/tmp/ojdbc6.jar \

--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \

--conf spark.sql.catalog.dev=org.apache.iceberg.spark.SparkCatalog \

--conf spark.sql.catalog.dev.type=hadoop \

--conf spark.sql.catalog.dev.io-impl=org.apache.iceberg.hadoop.HadoopFileIO \

--conf spark.sql.catalog.dev.warehouse=s3a://warehouse

导入所需包

import scala.collection.mutable.ArrayBuffer

import org.apache.spark.sql.SaveMode

val prop = new java.util.Properties

prop.setProperty("driver","oracle.jdbc.driver.OracleDriver")

prop.setProperty("user","username")

prop.setProperty("password","password")

val df = spark.read.jdbc("jdbc:oracle:thin:@192.168.0.1:1521/demo","tbl_hello",prop)

df.writeTo("dev.db.tset_hello").createOrReplace()

更多使用方法参考:https://iceberg.apache.org/docs/latest/getting-started/

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复