Sqoop作为Hadoop与传统数据库之间的桥梁,对于数据的导入导出有着重要作用。通过对Sqoop基本语法以及功能的阐述,深刻解密Sqoop的作用和价值。

 一、什么是Apache Sqoop?

Cloudera开发的Apache开源项目,是SQL-to-Hadoop的缩写。主要用于在Hadoop(Hive)与传统的数据库(mysqlpostgresql...)间进行数据的传递,可以将一个关系型数据库(例如 MySQL ,Oracle ,Postgres等)中的数据导进到HadoopHDFS中,也可以将HDFS的数据导进到关系型数据库中。在导入数据的时候,既可以导入整个数据库,也可以导入单个表、所有表或表的部分数据到HDFS,在导入数据的同时可以导成各种格式。除此之外,Sqoop可以从HDFS导出数据到数据库,所以sqoop它拥有双向的作用。

二、Sqoop如何工作?

Sqoop工作也是基于计算框架MapReduce,MapReduce会把提交的SQL导数转换成MapReduce作业,然后提交到集群。总体来说分成三个步骤:

1、检查表详情

2、创建和提交作业到集群

3、获取表记录并写入数据到HDFS

三、基本语法:

Sqoop是一个带很多子命令的命令行工具,有很多用来导入、导出、列出数据库内容等工具。通常我们先列出数据库有哪些表,然后再去导相应的表。如果想要去看sqoop所有的工具,可以运行sqoop help来查看所有工具列表,在这里也建议大家习惯使用help,去查找一些使用参数。另外,也可以运行sqoop help tool-name来查看特定工具的帮助(如importexport)。

Sqoop调用的基本语法

四、使用Sqoop探索数据库:

通常在导数据之前我们先要探索一下数据库,去了解数据库里面都有哪些表,一般有两种方式:

1List-tables:列出所有MySQLloudacre数据库的表

2.eval:执行数据库查询

Sqoop作为Hadoop家族重要的一员,我们需要着重认知和把握,对于我们了解和学习大数据有着重要的帮助。平常大家也可以关注一些大数据的资讯,了解大数据发展的趋势和一些行业经典案例。尤其是现在网络媒体兴盛,信息传播迅速,比如微信服务号,我自己平时就喜欢从上面找一些案例,像大数据cn就很不错。但是技术永远都是有门槛的,只有不断学习交流才可以不断进步,最近我在大数据时代学习中心这个服务号也学到了一些其他人分享的经验,对于我个人帮助也很大。