博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[大数据之Sqoop] —— 什么是Sqoop?
阅读量:6808 次
发布时间:2019-06-26

本文共 1892 字,大约阅读时间需要 6 分钟。

介绍

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.616/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.testdevxingoo

通过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.616/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.abcd

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

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

转载地址:http://uftwl.baihongyu.com/

你可能感兴趣的文章
借助Unity AR Foundation构建跨平台AR应用
查看>>
GitHub 重磅更新:无限私有仓库免费使用
查看>>
Russ Miles:被忽略的架构师和混沌工程
查看>>
研究人员发现:基于文本的AI模型容易受到改述攻击
查看>>
了解这12个概念,让你的JavaScript水平更上一层楼
查看>>
学习Kubernetes 和容器技术体系的最佳方法
查看>>
微软亚洲研究院等提出CNN训练新方法RePr,准确率显著提升
查看>>
GitHub预测2018年开源项目趋势
查看>>
QCon北京2015:移动开发最佳实践专题前瞻
查看>>
滴滴开源支撑业务代码重构工具Rdebug
查看>>
Java多线程编程那些事:volatile解惑
查看>>
苏宁11.11:苏宁易购移动端的架构优化实践
查看>>
Node.js v7 Beta版引入citgm
查看>>
《NoSQL For Mere Mortals》书评与作者问答录
查看>>
Core Animation基础
查看>>
InfoQ趋势报告:架构和设计领域技术演变详解
查看>>
【译文】Nodejs官方文档(Part 3 断言测试)
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
小米松果电子拆分成立大鱼半导体,专注IoT芯片研发
查看>>
JavaFX及Java客户端技术的未来
查看>>