一、Sqoop简介
Apache Sqoop(TM)是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具。
二、Sqoop原理
将导入或导出命令翻译成mapreduce程序来实现。
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
三、Sqoop安装
安装Sqoop的前提是已经具备Java和Hadoop的环境。
1、上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz到虚拟机中并解压,如我的上传目录是:/opt/module/
$ tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
2、在sqoop根目录下的conf目录中,修改配置文件。
1) 重命名配置文件
$ mv sqoop-env-template.sh sqoop-env.sh
$ mv sqoop-site-template.xml sqoop-site.xml
2) 修改配置文件sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/module/hadoop
export HADOOP_MAPRED_HOME=/opt/module/hadoop
export HIVE_HOME=/opt/module/hive
export ZOOKEEPER_HOME=/opt/module/zookeeper
export ZOOCFGDIR=/opt/module/zookeeper
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/
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
5、测试Sqoop是否能够成功连接数据库
$ bin/sqoop list-databases --connect jdbc:mysql://linux01:3306/ --username root --password 123456
出现如下输出:
information_schema
metastore
mysql
performance_schema
注意:该Sqoop搭建是在前面Hive镜像基础上搭建的。