Hadoop高手之路--08--Sqoop数据迁移

Sqoop数据迁移

一、sqoop概述

1、简介

Sqoop是Apache的一款开源工具,Sqoop主要用于在Hadoop和关系数据库或大型机之间传输数据,可以使用Sqoop工具将数据从关系数据库管理系统导入(import)到Hadoop分布式文件系统中,或者将Hadoop中的数据转换导出(export)到关系数据库管理系统。

2、原理

在这里插入图片描述

二、sqoop的安装配置

1、下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、上传服务器

在这里插入图片描述

3、解压

在这里插入图片描述
在这里插入图片描述

4、配置

标准的apach项目文件
在这里插入图片描述
将模板配置文件拷贝一份

cp sqoop-env-template.sh sqoop-env.sh

在这里插入图片描述
修改配置文件
在这里插入图片描述

5.测试

bin/sqoop list-databases \
  -connect jdbc:mysql://localhost:3306/ \
  --username root \
  --password root \

在这里插入图片描述

出现错误,无驱动包

6、解决错误

需要上传MySQL的java驱动包
在这里插入图片描述

7、再次执行命令

bin/sqoop list-databases \
  -connect jdbc:mysql://hadoop01:3306/ \
  --username root \
  --password Root123! \

在这里插入图片描述

三、sqoop指令介绍

在这里插入图片描述
在这里插入图片描述

四、数据的导入

1、导入命令

bin/sqoop import \
  -connect jdbc:mysql://hadoop01:3306/azkaban \
  --username root \
  --password Root123! \
  --target-dir /azkaban/execution_logs \
  --table execution_logs \
  --num-mappers 1

2.启动hadoop

在这里插入图片描述

3.启动yarn

在这里插入图片描述

4、执行命令

在这里插入图片描述
在这里插入图片描述
在webUI上查看

在这里插入图片描述

五. Mysql表导入HDFS

1.数据准备

首先先新建一个目录

在这里插入图片描述
之后创建一个新的数据库

在这里插入图片描述
在这里插入图片描述
并且新建一个表格
在这里插入图片描述
并添加字段
在这里插入图片描述
插入数据

在这里插入图片描述

2.数据导入

将该表导入hdfs

bin/sqoop import \
  --connect jdbc:mysql://hadoop01:3306/sqoop \
  --username root \
  --password Root123! \
  --target-dir /sqoop/mysql_hdfs_append \
  --table salary \
  --num-mappers 1

在这里插入图片描述
在webUI上查看结果
在这里插入图片描述
在这里插入图片描述

六. Mysql表数据子集导入

bin/sqoop import \
  --connect jdbc:mysql://hadoop01:3306/sqoop \
  --username root \
  --password Root123! \
  --where "jobtittle='Java工程师'"\
  --target-dir /sqoop/where \
  --table salary \
  --num-mappers 1

在这里插入图片描述
在webUI上查看运行结果

在这里插入图片描述