当前位置: 首页 > news >正文

Mysql入湖Iceberg

Mysql入湖Iceberg

使用Scala实现Spark高可用集群读取Mysql数据写入Iceberg数据湖,数据存储于Hadoop高可用集群

  • Spark 3.3.3
  • Hadoop 3.3.6
  • Iceberg 1.3.0

代码

packagecom.czl.datalake.template.iceberg.mysqlimportorg.apache.spark.sql.SparkSessionobjectTest{defmain(args:Array[String]):Unit={//windows环境测试需要配置// System.setProperty("hadoop.home.dir", "D://hadoop3.3.0")// System.setProperty("HADOOP_USER_NAME", "czl")valspark=SparkSession.builder().appName("mysqlToIceberg").config("spark.sql.catalog.czlCatalog","org.apache.iceberg.spark.SparkCatalog").config("spark.sql.catalog.czlCatalog.type","hadoop")//hadoop文件系统路径.config("spark.sql.catalog.czlCatalog.warehouse","/data").getOrCreate()try{// 1. 读取MySQL数据valmysqlDF=spark.read.format("jdbc").option("url","jdbc:mysql://10.10.10.10:6033").option("driver","com.mysql.cj.jdbc.Driver").option("user","root").option("password","root")//库名.表名.option("dbtable","testDb.testTable").load()//写入Iceberg表mysqlDF.write.format("iceberg")//存储在hadoop上的,库名.表名.save("czlCatalog.testDb.testTable")}catch{casee:Exception=>e.printStackTrace()}finally{spark.stop()}}}

依赖参考

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>dataLake-template-iceberg</artifactId><groupId>com.czl</groupId><version>1.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dataLake-template-iceberg-spark-mysql</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.24</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.12</artifactId><version>3.3.3</version></dependency><dependency><groupId>org.apache.iceberg</groupId><artifactId>iceberg-spark-runtime-3.3_2.12</artifactId><version>1.3.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.scala-tools</groupId><artifactId>maven-scala-plugin</artifactId><version>2.15.2</version><executions><execution><goals><!--编译源码--><goal>compile</goal><!--编译测试源码--><goal>testCompile</goal></goals></execution></executions></plugin></plugins></build></project>

提示

  • core-site.xml,hdfs-site.xml文件放置在resources文件夹下,以便于识别到Hadoop集群
  • Spark高可用集群,每个节点上传mysql-connector-java-8.0.33.jariceberg-spark-runtime-3.3_2.12-1.3.0.jar这两个必须使用的依赖。

本地模式提交

./spark-submit --master local[*]--class com.czl.datalake.template.iceberg.mysql.Test /opt/dataLake-template-iceberg-spark-mysql-1.0.jar

集群模式提交,jar在本地

./spark-submit --master spark://node1:7077 --deploy-mode cluster --class com.czl.datalake.template.iceberg.mysql.Test /opt/dataLake-template-iceberg-spark-mysql-1.0.jar

集群模式提交,jar在Hadoop

./spark-submit --master spark://node1:7077 --deploy-mode cluster --class com.czl.datalake.template.iceberg.mysql.Test hdfs://ling//workspace/project/dataLake-template-iceberg-spark-mysql-1.0.jar

Yarn模式提交,jar在Hadoop

./spark-submit --masteryarn--deploy-mode cluster --class com.czl.datalake.template.iceberg.mysql.Test hdfs://ling//workspace/project/dataLake-template-iceberg-spark-mysql-1.0.jar
http://www.zskr.cn/news/110265.html

相关文章:

  • 基于PyTorch-CUDA容器的PM2.5浓度预测实战
  • Qwen-Image-Edit-2509本地部署与智能图像编辑指南
  • 2025Deepseek知识库建设方案商部署优选清单:企业知识库部署厂商全收录 - 品牌2026
  • 上海到武汉黄石襄阳荆州宜昌十堰孝感荆门鄂州黄冈咸宁随州恩施搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • Kotaemon:开源RAG框架的混合检索突破
  • 2026留学语言培训价值榜发布:多次元教育以98.6分引领行业从规模竞争走向质量深耕 - 速递信息
  • LobeChat能否驾驶无人机?空中任务指挥官
  • Wan2.2-T2V-A14B:16倍压缩与双专家架构突破
  • 大数据环境下数据仓库的微服务架构
  • 从认知自我到行为塑造,自我管理经典必读书籍推荐
  • 2025年度办公室装修公司TOP5权威推荐:甄选公装企业破解 - mypinpai
  • 2025-2026北京婚姻家事律师事务所口碑排名:专业解析与靠谱机构推荐 - 苏木2025
  • NVIDIA官方TensorRT镜像在PyTorch安装环境中的集成方案
  • java:链表,栈和队列(手写)和java当中的栈和队列
  • 重庆到北京、天津、石家庄、唐山搬家公司排行、搬家费用明细 - 物流人
  • LobeChat动画与交互动效赏析:细节决定用户体验
  • 重庆到常州、温州、徐州、绍兴搬家公司排行、搬家费用明细 - 物流人
  • PaddlePaddle深度学习平台实战:从git下载到模型训练全流程解析
  • rust属性#[allow(clippy::type_complexity)]
  • TensorRT-LLM模型导出全解析(v0.20.0rc3)
  • LobeChat能否用于编写YAML配置?CI/CD流水线快速搭建
  • LobeChat能否接收语音指令?全双工对话体验
  • 构建面向ChatGPT的内容生态:多模态优化与知识体系战略
  • 使用npm安装GPT-SoVITS前端控制台常见报错解决
  • Raft算法在大数据领域的应用:原理与实践
  • AutoGPT入门与本地部署安装指南
  • Dify智能体平台 vs 若依框架:谁更适合企业AI转型?
  • 重庆到成都、昆明、贵阳、遵义搬家公司排行、搬家费用明细 - 物流人
  • HMI动画使用戒律:何时动?如何动?
  • GNU make在鸿蒙PC上的使用方法