Sqoop 数据迁移工具(mysql、HDFS、Hive、HBase)

1、概述

sqoop 是 apache 旗下一款 “Hadoop 和关系数据库服务器之间传送数据”的工具。
(1)导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统。
(2)导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等。

Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。
在这里插入图片描述

2、工作机制

将导入或导出命令翻译成 MapReduce 程序来实现,在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制。

3、Sqoop 安装

3.1、准备安装包

安装 Sqoop 的前提是已经具备 Java 和 Hadoop 的环境:
安装包(sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz)下载地址:http://ftp.wayne.edu/apache/sqoop/1.4.6/

本人博客中用到的 hbase verson 1.6.0,当心版本不兼容。
sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz(sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz):
链接:https://pan.baidu.com/s/1mp6-tS0qpU3Nmv2oUrYXCA
提取码:kg7i
复制这段内容后打开百度网盘手机App,操作更方便哦

3.2、安装步骤

3.2.1、解压安装包到安装目录

tar -zxvf ~/apks/sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz -C ~/apps/
cd ~/apps
mv sqoop-1.4.6.bin_hadoop-2.0.4-alpha/ sqoop-1.4.6

3.2.2、sqoop-env.sh

(1)进入到 sqoop conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh:

cd ~/apps/sqoop-1.4.6/conf
mv sqoop-env-template.sh sqoop-env.sh

(2) 修改 sqoop-env.sh:

vim sqoop-env.sh

在这里插入图片描述

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.7.5
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.7.5
export HBASE_HOME=/home/hadoop/apps/hbase-1.6.0
export HIVE_HOME=/home/hadoop/apps/hive-2.3.3
export ZOOCFGDIR=/home/hadoop/apps/zookeeper-3.4.10/conf

zookeeper 和 hbase 没有安装。那就不用管了。如果也安装的有,并且要使用,那么就给配置上。

3.2.3、加入 mysql 驱动包

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

cp mysql-connector-java-5.1.40-bin.jar ~/apps/sqoop1.4.6/lib/

链接:https://pan.baidu.com/s/1M828j9nUKrbyYvFuZLTfiw
提取码:7azh

3.2.4、配置系统环境变量

(1)编辑环境变量文件:

vi /etc/profile

(2)添加内容:

export SQOOP_HOME=/home/hadoop/apps/sqoop1.4.6
export PATH=$PATH:$SQOOP_HOME/bin

(3)然后保存退出(":wq")。
(4)更新环境变量:

source /etc/profile

3.2.4、验证安装是否成功

sqoop-version 或者 sqoop version
在这里插入图片描述
出现如图所示画面,证明安装成功,那么接下来就可以正常使用了。

4、Sqoop 基本命令介绍

首先,我们可以使用 sqoop help 来查看,sqoop 支持哪些命令:
在这里插入图片描述
然后得到这些支持了的命令之后,如果不知道使用方式,可以使用 sqoop help command 的方式来查看某条具体命令的使用方式,比如:sqoop help import

5、Sqoop 数据导入

5.1、导入 MySQL 数据到 HDFS

“导入工具” 导入单个表从 RDBMS 到 HDFS。表中的每一行被视为 HDFS 的记录。所有记录都存储为文本文件的文本数据(或者 Avro、sequence 文件等二进制数据)。
下面的语法用于将数据导入 HDFS:

s
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值