Sqoop介绍与安装教程

Sqoop简介

1、Sqoop是一款在Hadoop和其它关系型数据库之间传递数据的工具。

2、核心的功能有两个:

  • 导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统;
  • 导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等。

3、Sqoop与Hive本质

  • sqoop工具:本质是迁移数据, 迁移的方式是把sqoop的迁移命令转换成MR程序
  • hive工具:本质是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序

Sqoop原理

Sqoop 的本质还是一个命令行工具,通过shell命令,底层会将命令转换成MapReduce程序实现。主要针对 InputFormat 和 outputformat 。

Sqoop安装

1、前提概述
将来sqoop在使用的时候有可能会跟那些系统或者组件打交道?
HDFS, MapReduce, YARN, ZooKeeper, Hive, HBase, MySQL等

sqoop就是一个工具, 只需要在一个节点上进行安装即可。

如果你的Sqoop工具要与Hive、Hbase等系统或者MySQL进行交互,你安装的Sqoop软件的节点一定要包含以上你要使用的集群或者软件系统的安装包

2、安装包
Sqoop安装包下载地址

版本说明
sqoop-1.4.6 与 sqoop-1.4.7 是 sqoop1
sqoop-1.99.4—-是 sqoop2

3、步骤

  • 上传解压安装包
#将sqoop安装包上传至集群节点的某个目录下
[root@master ~]# cd /opt/app/Sqoop/
[root@master Sqoop]# rz
#解压
[root@master Sqoop]# tar -zxvf sqoop-1.4.7.bin__hadoop2.6.0.tar.gz
#重命名
[root@master Sqoop]# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7
[root@master Sqoop]# ls
sqoop-1.4.7  sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
  • 修改sqoop配置文件
#修改sqoop-env.sh文件(没有此文件,需拷贝sqoop-env-template.sh重命名为sqoop-env.sh)
[root@master ~]# cd /opt/app/Sqoop/sqoop-1.4.7/conf/
[root@master conf]# ls
oraoop-site-template.xml  sqoop-env-template.cmd  sqoop-site-template.xml
sqoop-env.sh              sqoop-env-template.sh   sqoop-site.xml

#添加以下内容
export HIVE_HOME=/opt/apps/Hive/hive-2.3.3
export HADOOP_COMMON_HOME=/opt/apps/Hadoop/hadoop-2.7.6
export HADOOP_MAPRED_HOME=/opt/apps/Hadoop/hadoop-2.7.6
  • 上传mysql-connector-java-5.1.46-bin.jar到sqoop的lib目录
[root@master ~]# cd /opt/app/Sqoop/sqoop-1.4.7/lib/
[root@master lib]# rz
  • 配置环境变量
[root@master lib]# vim /etc/profile
#添加以下内容
#Sqoop环境变量
export SQOOP_HOME=/opt/apps/Sqoop/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
#使配置生效
[root@master lib]# source /etc/profile
  • 验证环境变量配置是否成功
[root@master lib]# sqoop version
#成功出现下面信息
18/08/15 20:31:50 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Sqoop 1.4.7
git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8
Compiled by maugli on Thu Dec 21 15:59:58 STD 2017
  • 验证sqoop连接mysql数据库是否成功
#反斜杠表示换行写,反斜杠前有空格
[root@master lib]# sqoop list-databases \
> --connect jdbc:mysql://master:3306/?useSSL=false \
> --username root \
> --password 123456 \
#或者写在一行
[root@master lib]# sqoop list-databases --connect jdbc:mysql://master:3306/?useSSL=false --username root --password 123456 

猜你喜欢

转载自blog.csdn.net/qq_41610418/article/details/81710727