安装注意点:1.配置文件sqoop-env.sh
2.导入jar包
运行注意点(某种情况下昂 不是所有情况):
1.指定mysql驱动 --driver com.mysql.jdbc.Driver \
2.指定m即MapReduce的个数 -m 1 \
2.7.1 Sqoop简介以及使用
2.7.1.1 产生背景
基于传统关系型数据库的稳定性,还是有很多企业将数据存储在关系型数据库中;早期由于工具的缺乏,Hadoop与传统数据库之间的数据传输非常困难。基于前两个方面的考虑,需要一个在传统关系型数据库和Hadoop之间进行数据传输的项目,Sqoop应运而生。
2.7.1.2 Sqoop是什么
Sqoop是一个用于Hadoop和结构化数据存储(如关系型数据库)之间进行高效传输大批量数据的工具。
它包括以下两个方面:
可以使用Sqoop将数据从关系型数据库管理系统(如MySQL)导入到Hadoop系统(如HDFS、Hive、HBase)中
将数据从Hadoop系统中抽取并导出到关系型数据库(如MySQL)
Sqoop的核心设计思想是利用MapReduce加快数据传输速度。
也就是说Sqoop的导入和导出功能是通过基于Map Task(只有map)的MapReduce作业实现的。
所以它是一种批处理方式进行数据传输,难以实现实时的数据进行导入和导出。
官网介绍:
Apache Sqoop(TM) is a tool designed for efficiently transferring bulk
data between Apache Hadoop and structured datastores such as relational databases.
2.7.1.3 特点
优点:它可以将跨平台的数据进行整合。
缺点:它不是很灵活。
mysql <--- > hdfs
mysql ---> hive
mysql ---> hbase
sqoop的重要的几个关键词??
import : 从关系型数据库到hadoop
export : 从hadoop到关系型数据库。
2.7.2 Sqoop的安装
1、解压配置环境变量
tar -zxvf /home/sqoop... -C /usr/local/sqoop...
vi /etc/profile
2、mv ./conf/sqoop-env-template.sh ./conf/sqoop-env.sh
3、配置文件:vi ./conf/sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.7.1/
export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.7.1/
export HIVE_HOME=/usr/local/hive-1.2.1/
export ZOOCFGDIR=/usr/local/zookeeper-3.4.7/
4、将mysql的驱动包导入到sqoop安装目录下的lib包下面
cp /home/mysql-connector-java-5.1.6.jar ./lib/
5、启动测试:
sqoop version
sqoop help
sqoop注意
sqoop语句要求写成一行,多行时用\连接
sqoop的相关属性有先后顺序,有搭配要求
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
See 'sqoop help COMMAND' for information on a specific command.
查看数据库:
查看数据库:
sqoop list-databases \
--connect jdbc:mysql://hadoop01:3306 \
--username root --password root;
查看test库下的表:
sqoop list-tables \
--connect jdbc:mysql://hadoop01:3306/test \
--username root --password root;
结果如下图: