news 2026/7/7 20:28:13

Mysql入湖Iceberg

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 16:28:49

LobeChat能否用于编写Ansible Playbook?IT自动化脚本生成

LobeChat 能否用于编写 Ansible Playbook&#xff1f;——自然语言驱动 IT 自动化的实践探索 在现代 IT 运维中&#xff0c;一个常见的困境是&#xff1a;明明知道应该用自动化来提升效率&#xff0c;却总被写脚本这件事卡住。尤其是对于 Ansible 这类声明式工具&#xff0c;虽…

作者头像 李华
网站建设 2026/7/7 11:02:17

YOLOv8深度解析:为什么它成为大模型微调新宠?

YOLOv8深度解析&#xff1a;为什么它成为大模型微调新宠&#xff1f; 在智能摄像头遍布工厂车间、自动驾驶车辆穿梭于城市街道的今天&#xff0c;一个共同的技术挑战摆在面前&#xff1a;如何让机器“看”得又快又准&#xff1f;尤其是在边缘设备资源受限、云端推理成本敏感的背…

作者头像 李华
网站建设 2026/7/7 18:35:21

Qwen-Image-Edit-2509本地部署与智能图像编辑指南

Qwen-Image-Edit-2509本地部署与智能图像编辑指南 你有没有经历过这样的场景&#xff1a;市场部临时通知&#xff0c;“所有产品图的LOGO必须今晚全部换成新版&#xff0c;明天一早上线”&#xff0c;而设计师早已下班&#xff1f;又或者&#xff0c;运营需要为春节、情人节、6…

作者头像 李华
网站建设 2026/7/7 19:27:05

利用AI agents追踪内部交易:洞察公司内部信心

利用AI agents追踪内部交易&#xff1a;洞察公司内部信心关键词&#xff1a;AI agents、内部交易追踪、公司内部信心、数据分析、金融监管摘要&#xff1a;本文聚焦于利用AI agents追踪内部交易以洞察公司内部信心这一前沿话题。首先介绍了相关背景&#xff0c;包括研究目的、预…

作者头像 李华
网站建设 2026/7/7 19:37:49

Seed-Coder-8B-Base如何生成OpenAPI实现代码

Seed-Coder-8B-Base如何生成OpenAPI实现代码 在现代软件开发中&#xff0c;一个常见的场景是&#xff1a;前端团队正焦急地等待后端提供用户管理接口的联调地址&#xff0c;而后端工程师却还在手敲 UserController.java 里的第17个 GetMapping——明明 OpenAPI 文档早就写好了&…

作者头像 李华
网站建设 2026/7/7 10:12:07

LobeChat能否驾驶无人机?空中任务指挥官

LobeChat能否驾驶无人机&#xff1f;空中任务指挥官 在一片广袤的农田上&#xff0c;一位农民掏出手机&#xff0c;轻声说&#xff1a;“让无人机去东边那块地看看小麦有没有锈病。” 几秒钟后&#xff0c;远处的多旋翼无人机自动启动、升空、飞向指定区域&#xff0c;完成航拍…

作者头像 李华