如何使用 SeaTunnel 同步 MySQL 数据到 Hive

这篇具有很好参考价值的文章主要介绍了如何使用 SeaTunnel 同步 MySQL 数据到 Hive。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一步:环境准备

  • Java 8 或 11 并配置JAVA_HOME

  • Git 

  • Maven

第二步:下载SeaTunnel并安装连接器

  • 下载地址:https://seatunnel.apache.org/download/

  • 下载SeaTunnel并安装2.3.0版本

    https://www.apache.org/dyn/closer.lua/incubator/seatunnel/2.3.0/apache-seatunnel-incubating-2.3.0-bin.tar.gz

详细的安装过程可以参考:https://seatunnel.apache.org/docs/2.3.0/start-v2/locally/deployment

第三步:创建测试数据

    1、在MySQL创建表source_user

create table source_user(userid int(4) primary key not null auto_increment,username varchar(16) not null);

       并插入一些数据

insert into source_user (username) values ("z3");insert into source_user (username) values ("l4");insert into source_user (username) values ("w5");

    2、在Hive中创建表sink_user

create table sink_user( userid int, username string);

第四步:运行作业

1、下载MySQL驱动程序

    • 下载mysql驱动程序并放在 /plugins/Jdbc/lib/目录下

    • MySQL驱动可以从这里下载:https://dev.mysql.com/downloads/connector/j/

2、下载和拷贝Hive连接器所需包

    • 目前版本Hive连接器需将以下包拷贝到 ./lib/ 目录下

    • hive-exec-x.x.x.jar  这个包可以从hive的lib目录下找到。

    • flink-shaded-hadoop-2-uber-x.x.x-xx.x.jar 这个包可以从这里下载:https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-2-uber

3、创建任务配置文件mysql_to_hive.conf 放在 ./conf/目录下          

env {  job.mode = "BATCH"} source {    Jdbc {        url = "jdbc:mysql://ctyun9/test?serverTimezone=GMT%2b8"        driver = "com.mysql.cj.jdbc.Driver"        user = "root"        password = "123456"        query = "select * from source_user"    }} transform {} sink {  Hive {    table_name = "st.sink_user"    metastore_uri = "thrift://localhost:9083"  } }

如果我们需要分片并行读取,可以在JDBC中配置partition_column 和 partition_num。

连接器文档可以参考这里👉https://seatunnel.apache.org/docs/2.3.0-beta/connector-v2/source/Jdbc、https://seatunnel.apache.org/docs/2.3.0-beta/connector-v2/sink/Hive

4、运行任务

  • 通过./bin/seatunnel.sh 可以运行同步任务。

  • 通过-e 可以执行运行模式

    • LOCAL为本地模式,会在本机启动一个SeaTunnel实例并提交任务运行,任务运行完成后会自动关闭实例

    • CLUSTER为集群模式,可以把任务提交到SeaTunnel集群。

./bin/seatunnel.sh -e LOCAL -c ./config/mysql_to_hive.conf

集群模式

SeaTunnel也支持集群模式,集群模式的部署可以参考https://seatunnel.apache.org/docs/2.3.0/seatunnel-engine/deployment。

相比之下,集群模式比Local模式拥有更好的性能,同时支持作业的多机并行,支持集群HA、断点续传、历史作业信息存储等特性。

集群模式的使用方式可以参考 https://seatunnel.apache.org/docs/2.3.0/seatunnel-engine/cluster-mode。文章来源地址https://www.toymoban.com/news/detail-402392.html

到了这里,关于如何使用 SeaTunnel 同步 MySQL 数据到 Hive的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据NiFi(二十):实时同步MySQL数据到Hive

    文章目录 实时同步MySQL数据到Hive 一、开启MySQL的binlog日志 1、登录mysql查看MySQL是否开启binlog日志

    2024年02月03日
    浏览(31)
  • 大数据bug-sqoop(二:sqoop同步mysql数据到hive进行字段限制。)

    新增加三个参数 –query “${sql}” 这个参数添加对应表的sql语句。注意结尾必须添加 $CONDITIONS ,必须添加where 条件,如果没有where条件,写成where 1=1。案例如下: \\\"select id,key_id,key_type,\\\'\\\' as encryption_cert_chain,device_type,account_id_hash,user_identifier,user_id,request_id,device_id,vehicle_id,vehicl

    2024年02月12日
    浏览(32)
  • 教程 | 使用 Apache SeaTunnel 同步本地文件到阿里云 OSS

    一直以来,大数据量一直是爆炸性增长,每天几十 TB 的数据增量已经非常常见,但云存储相对来说还是不便宜的。众多云上的大数据用户特别希望可以非常简单快速的将文件移动到更实惠的 S3、OSS 上进行保存,这篇文章就来介绍如何使用 SeaTunnel 来进行到 OSS 的数据同步。

    2024年02月08日
    浏览(37)
  • 数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

    Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主要解决数据集成领域的常见问题: * 数据源

    2024年02月04日
    浏览(36)
  • 使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

    一、创建一张Hive测试表 创建分区字段partition_date,指定分隔符“,” 二、编写Sqoop数据同步命令 我这里使用的是shell脚本的方式: 命令相关属性说明: --connect:连接Oracle数据库的URL,例如jdbc:oracle:thin:@219.216.110.120:1521:orcl。 --username:连接Oracle数据库的用户名,例如TEST1。

    2024年02月04日
    浏览(42)
  • sqoop同步命令从mysql同步到hive

    sqoop import --connect jdbc:mysql://192.168.253.142:8066/youfanshop  --username mycat --password 123456 --query \\\'SELECT id,name,age,address,telphone,qq,weixin,email,sex,birthday,account FROM user WHERE $CONDITIONS\\\' --fields-terminated-by \\\'t\\\'  --null-string \\\'**\\\'  --target-dir /user/hive/warehouse/youfanshop.db/user  --hive-table youfanshop.user  --m 1 -

    2024年02月06日
    浏览(26)
  • 阿里云RDS MySQL 数据如何快速同步到 ClickHouse

    云数据库 RDS MySQL 和 云数据库 ClickHouse 是阿里云推出的两个备受欢迎的数据库解决方案,它们为用户提供了可靠的数据存储方案、分析数仓方案,本文介绍如何快速将 RDS MySQL 的数据同步到云数据库 ClickHouse。 如何快速将RDSMySQL的数据同步到云数据库 云数据库 RDS MySQL 和云数据

    2024年02月04日
    浏览(31)
  • MySQL如何实时同步数据到ES?试试阿里开源的Canal

    前几天在网上冲浪的时候发现了一个比较成熟的开源中间件——  Canal  。在了解了它的工作原理和使用场景后,顿时产生了浓厚的兴趣。今天,就让我们跟随我的脚步,一起来揭开它神秘的面纱吧。 目录 前言 简介  工作原理  MySQL主备复制原理 canal 工作原理 Canal架构  C

    2024年02月20日
    浏览(33)
  • MySQL中的业务数据该如何正确导入到Hive中 - Sqoop

    水善利万物而不争,处众人之所恶,故几于道💦   1. 使用Sqoop脚本将MySQL中的数据迁移到HDFS   2. 在Hive中建立与之对应的表   3. 将HDFS中的数据load到 Hive 数仓的ODS层的表中 1 . 使用Sqoop 将 MySQL中的数据导入到HDFS上 使用示例: mysql_to_hdfs.sh all 2021-02-01 导出的数据用lzo压缩,并

    2024年02月11日
    浏览(37)
  • apache seatunnel支持hive jdbc

    上传hive jdbc包HiveJDBC42.jar到seatunel lib安装目录 原因是cloudera 实现了add batch方法 创建seatunnel任务文件mysql2hivejdbc.conf

    2024年02月06日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包