开发者社区> 青夜之衫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

介绍

449064-20160929183228375-1475688511.png

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?,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
什么是数据湖引擎
什么是数据湖引擎
15 0
什么是大数据?
  然而,什么是大数据?至今也没有一个比较权威的定义。   麦肯锡曾给出大数据的定义是:大数据是指大小超出了常规数据库工具获取、存储、管理和分析能力的数据集合。   维基百科也给出类似的定义:大数据指的是所涉及的数据量规模大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理并整理成为帮助企业经营决策更积极目的的资讯。   一句话,大数据就是数据量大?!   我觉得,这句话说了等于没说,还容易让人误解。你以为数据量大才是大数据?
62 0
什么是大数据架构?
大数据架构是用于摄取和处理大量数据(通常称为“大数据”)的总体系统,因此可以针对业务目的进行分析。该架构可视为基于组织业务需求的大数据解决方案的蓝图。 大数据架构是用于摄取和处理大量数据(通常称为“大数据”)的总体系统,因此可以针对业务目的进行分析。
1705 0
Sqoop数据导入/导出
1. 从HDFS导出到RDBMS数据库 1.1 准备工作 写一个文件 sqoop_export.txt 1201,laojiao, manager,50000, TP 1202,fantj,preader,50000,TP 1203,jiao,dev...
2348 0
[Sqoop]Sqoop使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/53163460 Sqoop的本质还是一个命令行工具,和HDFS,MapReduce相比,并没有什么高深的理论。
1055 0
什么是托管元数据?
什么是托管元数据? 托管元数据是一种允许管理员创建的垂直分级术语的集合,可以在文档库和列表中作为栏使用,但是只在SharePoint 2010 Server中支持。
429 0
+关注
1040
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载