[大数据之Sqoop] —— 什么是Sqoop?

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:

介绍

sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具。你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中;也可以把数据从hdfs中导出到关系型数据库中。sqoop通过Hadoop的MapReduce导入导出,因此提供了很高的并行性能以及良好的容错性。

sqoop适合以下的人群使用:

  • 系统和应用开发者
  • 系统管理员
  • 数据库管理员
  • 数据分析师
  • 数据工程师

支持的版本

本文档是依据sqoop v1.4.6翻译的.目前最新的版本是sqoop2,变化有点大。

sqoop的版本

sqoop是Apache软件基金会提供的开源框架。官方网站参考:http://sqoop.apache.org

前提条件

想要使用这款工具需要有一下的背景:

  • 基本的计算机知识
  • 对类似bash的命令行比较熟悉(因为sqoop基本都是通过命令行来操作的)
  • 熟悉关系型数据库系统的管理(毕竟是从数据库到出)
  • 熟悉hadoop基本操作(了解基本的hdfs操作和mapreduce的原理会更容易理解sqoop的过程)

在你使用sqoop之前,需要先安装hadoop。这个文档是基于Linux环境的,如果你是在windows下使用,需要安装cygwin。

基本的使用

通过sqoop,你可以从关系型数据库中导出数据,导入到hdfs中。输入可能是数据库的一张表或者查询结果;输出则是数据库表或者结果的导出文件集合。导入进程是并行的,因此输出的结果可能是多个文件(最终在hdfs中可能会得到多个文件)。这些文件可能是标准的文本文件TextFile(比如,使用逗号做字段间的分割),也可能是Avro或者SequeenceFiles的记录文件。

sqoop的导入进程是一个自动生成出来的java class,因此它的很多组件都可以自定义,比如导入的格式、文本的格式、到出的格式等等。

sqoop还提供了很多的工具来检查数据库.

比如通过sqoop-list-databases可以列出数据库的表视图。

[root@hadoop-master bin]# sqoop-list-databases --connect 'jdbc:mysql://localhost:3306/dbname' --username 'name' --password 'passwd'
16/09/29 18:29:11 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
16/09/29 18:29:11 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
16/09/29 18:29:11 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
test
dev
xingoo

通过sqoop-list-tables查看表

[root@hadoop-master bin]# sqoop-list-tables --connect 'jdbc:mysql://localhost:3306/dbname' --username 'name' --password 'passwd'
16/09/29 18:26:50 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
16/09/29 18:26:50 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
16/09/29 18:26:51 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
a
b
c
d

大多数导入进程,代码生成,导出进程都可以自定义。对于数据库,你可以控制到特定的行或者列,读取哪些行,读取哪些列。对于输出的hdfs文件,可以指定特定的分隔符以及转义字符,以及文本的格式化。甚至可以控制生成代码的类和包的名字。

总结的来说,sqoop是基于mapreduce的一款db和hadoop之间的数据交换工具。后续的文档,将会介绍sqoop在使用时的参数。

本文转自博客园xingoo的博客,原文链接:[大数据之Sqoop] —— 什么是Sqoop?,如需转载请自行联系原博主。
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
10月前
|
分布式计算 关系型数据库 MySQL
【赵渝强老师】大数据交换引擎Sqoop
Sqoop是一款开源工具,用于在Hadoop与传统数据库如Oracle、MySQL之间传输数据。它基于MapReduce实现,支持数据导入导出、生成Java类及Hive表结构等操作,适用于大数据处理场景。
259 3
【赵渝强老师】大数据交换引擎Sqoop
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
827 0
|
分布式计算 运维 大数据
盘点下近几年退役的顶级 Apache 大数据项目 - 继 Sentry,Sqoop 之后,Ambari 正式退役!
盘点下近几年退役的顶级 Apache 大数据项目 - 继 Sentry,Sqoop 之后,Ambari 正式退役!
|
存储 分布式计算 关系型数据库
大数据组件Sqoop-安装与验证
大数据组件Sqoop-安装与验证
379 0
|
关系型数据库 MySQL 大数据
大数据Sqoop将mysql直接抽取至Hbase
大数据Sqoop将mysql直接抽取至Hbase
323 0
|
关系型数据库 MySQL 大数据
大数据Sqoop搭建
大数据Sqoop搭建
303 0
|
SQL 分布式计算 分布式数据库
大数据Sqoop借助Hive将Mysql数据导入至Hbase
大数据Sqoop借助Hive将Mysql数据导入至Hbase
700 0
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
1154 2
|
数据采集 SQL 分布式计算
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
数据处理 、大数据、数据抽取 ETL 工具 DataX 、Kettle、Sqoop
3665 0
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
440 3