一、Sqoop简介
关系型数据库: mysql oracle
非关系型数据库: redis hbase mongdb 缓存数据库
Apache Sqoop™是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具。数据迁移工具.
Sqoop于2012年3月孵化出来,现在是一个顶级的Apache项目。
最新的稳定版本是1.4.6。Sqoop2的最新版本是1.99.7。请注意,1.99.7与1.4.6不兼容,且没有特征不完整,它并不打算用于生产部署。
二、Sqoop原理
将导入或导出命令翻译成mapreduce程序来实现。
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
三、Sqoop安装
安装Sqoop的前提是已经具备Java和Hadoop的环境。
3.1、下载并解压
-
最新版下载地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/
-
上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz到虚拟机中,如我的上传目录是:/home/yvan/softwares
-
解压sqoop安装包到指定目录,如:
$ tar -zvxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C ~/modules/
3.2、修改配置文件
Sqoop的配置文件与大多数大数据框架类似,在sqoop根目录下的conf目录中。 -
重命名配置文件
$ mv sqoop-env-template.sh sqoop-env.sh
$ mv sqoop-site-template.xml sqoop-site.xml -
修改配置文件
sqoop-env.sh
export HADOOP_COMMON_HOME=/home/yvan/modules/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/home/yvan/modules/hadoop-2.7.2
export HIVE_HOME=/home/yvan/modules/hive-1.2
export ZOOKEEPER_HOME=/home/yvan/modules/zookeeper-3.4.5
export ZOOCFGDIR=/home/yvan/modules/zookeeper-3.4.5
3.3、拷贝JDBC驱动
拷贝jdbc驱动到sqoop的lib目录下,如:
$ cp -a mysql-connector-java-5.1.27-bin.jar ~/modules/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/
或者直接上传到sqoop的lib目录中。
3.4、验证Sqoop
我们可以通过某一个command来验证sqoop配置是否正确:
$ bin/sqoop help
出现一些Warning警告(警告信息已省略),并伴随着帮助命令的输出:
Available commands:
codegen Generate code to interact with database records
create-hive-table Import a table definition into Hive
eval Evaluate a SQL statement and display the results
export Export an HDFS directory to a database table
help List available commands
import Import a table from a database to HDFS
import-all-tables Import tables from a database to HDFS
import-mainframe Import datasets from a mainframe server to HDFS
job Work with saved jobs
list-databases List available databases on a server
list-tables List available tables in a database
merge Merge results of incremental imports
metastore Run a standalone Sqoop metastore
version Display version information
3.5、测试Sqoop是否能够成功连接数据库
$ bin/sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password 123456
出现如下输出:
information_schema
metastore
mysql
performance_schema