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上查看运行结果