Sqoop 简介与安装

  • 一、Sqoop 简介
  • 1.1 定义
  • 1.2 原理
  • 二:安装
  • 2.1 安装前须知
  • 2.2 软件下载
  • 2.3 安装步骤
  • 2.3.1解压缩安装包到指定目录
  • 2.3.2 进入到 conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh
  • 2.3.3 修改 sqoop-env.sh
  • 2.3.4 加入 mysql 驱动包到 sqoop1.4.6/lib 目录下
  • 2.3.5 进行环境变量的配置
  • 2.3.6 验证是否安装成功


一、Sqoop 简介


1.1 定义


sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具,是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出。

1.2 原理


其原理是将执行命令转化成 MapReduce 作业来实现数据的迁移。

将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制
核心的功能有两个:

导入、迁入

导出、迁出

导入数据:MySQL,Oracle 等关系型数据库导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等分布式文件存储系统中

导出数据:从 Hadoop 的分布式文件系统中导出数据到关系数据库 mysql 等

Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。


sqoop:

工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序


hive

工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序


sqoop导入hive时卡住 sqoop导入数据到hive原理_HDFS

二:安装


2.1 安装前须知

将来sqoop在使用的时候有可能会跟那些系统或者组件打交道?

HDFS, MapReduce, YARN, ZooKeeper, Hive, HBase, MySQL

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

补充一点: 如果你的sqoop工具将来要进行hive或者hbase等等的系统和MySQL之间的交互

你安装的SQOOP软件的节点一定要包含以上你要使用的集群或者软件系统的安装包

补充一点: 将来要使用的azakban这个软件 除了会调度 hadoop的任务或者hbase或者hive的任务之外, 还会调度sqoop的任务

azkaban这个软件的安装节点也必须包含以上这些软件系统的客户端/2、

2.2 软件下载

下载地址 http://mirrors.hust.edu.cn/apache/

sqoop导入hive时卡住 sqoop导入数据到hive原理_hadoop_02


sqoop版本说明

绝大部分企业所使用的sqoop的版本都是 sqoop1

sqoop-1.4.6 或者 sqoop-1.4.7 它是 sqoop1

sqoop-1.99.4----都是 sqoop2

此处使用sqoop-1.4.6版本sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

2.3 安装步骤

2.3.1解压缩安装包到指定目录
[root @test200 install]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C ../bigdata/
2.3.2 进入到 conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh
[hadoop@hadoop3 conf]$ cp sqoop-env-template.sh sqoop-env.sh
2.3.3 修改 sqoop-env.sh
[hadoop@hadoop3 conf]$ vi sqoop-env.sh

修改 sqoop-env.sh 中的以下配置

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.7.5

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.7.5

#set the path to where bin/hbase is available
export HBASE_HOME=/home/hadoop/apps/hbase-1.2.6

#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin

#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/hadoop/apps/zookeeper-3.4.10/conf

export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10

为什么在sqoop-env.sh 文件中会要求分别进行 common和mapreduce的配置呢???

  1. 在apache的hadoop的安装中;四大组件都是安装在同一个hadoop_home中的
    但是在CDH, HDP中, 这些组件都是可选的。
  2. 在安装hadoop的时候,可以选择性的只安装HDFS或者YARN,
    CDH,HDP在安装hadoop的时候,会把HDFS和MapReduce有可能分别安装在不同的地方。

2.3.4 加入 mysql 驱动包到 sqoop1.4.6/lib 目录下

[hadoop@hadoop3 ~]$ cp mysql-connector-java-5.1.40-bin.jar apps/sqoop-1.4.6/lib/

可以像上述方法在 shell 中复制,也可以直接在 Xftp 软件中进行拖拽

2.3.5 进行环境变量的配置

[hadoop@hadoop3 ~]$ vi /etc/profile
export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin

保存退出使其立即生效

[hadoop@hadoop3 ~]$ source /etc/profile

2.3.6 验证是否安装成功

sqoop-version 或者 sqoop version

sqoop导入hive时卡住 sqoop导入数据到hive原理_sqoop_03