Sqoop数据迁移简介

目录

引入Sqoop

Sqoop定义

Sqoop架构设计

Sqoop工作原理


引入Sqoop

在Hadoop早期,如果想把MySQL里一张上亿记录的表导入HDFS做大数据分析,开发人员需要手动编写MapReduce程序,通过JDBC读取数据再写入,过程繁琐且性能受限。

Sqoop的诞生,就是为了自动化并高效地完成这种结构化的批量数据迁移,它是Hadoop生态与关系型数据库之间的桥梁。

Sqoop定义

Apache Sqoop是一个用于在Hadoop和结构化数据数据存储之间高效传输批量数据的工具。

它的名字来源是"SQL to Hadoop"。顾名思义,功能就是从数据库导入到Hadoop(用于海量数据离线分析)和从Hadoop导出到数据库(用于业务分析)。

它的优势在于高效的批处理和简化了操作,并且支持主流的关系型数据库,还可自动映射(也可手动配置)。

Sqoop架构设计

追求的是在批量迁移场景下的简单高效。

1.Sqoop Client(客户端):执行命令的客户端

2.Connector(连接器):负责与数据源交互的插件,为不同数据源提供定制化读写支持

3.MapReduce Framework(执行引擎):Sqoop将导入/导出任务翻译成MapReduce作业,利用Hadoop集群的分布式能力实现并行传输和容错。

Sqoop工作原理

翻译与并行

1.Import导入(RDBMS--->HDFS)

当执行sqoop import命令的时候:

  1. 元数据获取:Sqoop通过JDBC连接到数据库,获取表的列、数据类型等元数据。
  2. 任务翻译:Sqoop根据这些信息,生成一个只有Map阶段的MapReduce作业。
  3. 并行拉取:多个Map任务并行。每个任务负责拉取表的一部分数据工作,并将数据直接写入HDFS

2.导出(HDFS--->RDBMS)

当执行sqoop export命令的时候:

  1. Sqoop读取HDFS上的数据文件。
  2. 生成MapReduce作业,每个Map任务读取一部分HDFS数据。
  3. Map任务通过JDBC将数据块以INSERT语句等形式批量写入目标数据库表。
相关推荐
skywalk81638 小时前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式
棣廷1 天前
初识Hive(2)
数据仓库·hive·hadoop
skywalk81631 天前
deepseek对skywalk163/hive 和hivecommons/hive 两个多机AI Agent任务调度项目的对比
人工智能·hive·agent
father_12272 天前
【ambari管理下hdp2.6.5升级hive1.2.1-2.1.0-2.3.3】
hive·hadoop·ambari
magic_kid_20102 天前
HDFS 故障复盘:千万级 block 导致 FBR 超过 128 MiB,DataNode 被判定为 dead
大数据·hadoop·hdfs·hadoop 故障
小刘在重生~3 天前
Servlet_day2 (上)|Servlet 整合 JDBC|请求转发 forward|Request 作用域
hive·hadoop·servlet
螺蛳粉 螺蛳粉3 天前
CDH第四篇:CDH 元数据库实战:MySQL 5.7.22 二进制安装 + 三库三账号授权全记录
hive·mysql5.7·centos7·元数据·cdh·oozie·数据库部署
chunyublog3 天前
FinalShell 远程连接 Hadoop 三节点集群教程
大数据·hadoop·分布式
爱吃火鸡面呀3 天前
MySQL、ClickHouse、Doris、Hive、Spark SQL、Flink SQL 选型对比:优点、缺点与面试话术
hive·mysql·clickhouse
ha_lydms5 天前
AnalyticDB MySQL 技术架构
大数据·hadoop·mysql·adb·spark·dataworks·1024程序员节