章节内容
上节我们完成了如下的内容:
Sqoop 部分导入数据 --query
Sqoop 部分导入数据 --where
记录执行过程和执行结果
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123
注意事项
Apache Sqoop 于 2021 年 6 月迁入 Attic。
Apache Sqoop 的使命是创建和维护与 Apache Hadoop 和结构化数据存储相关的大规模数据传输软件。
虽然项目已经可能过时,但是如果你的时间充裕的话,可以适当地学习一下,可能会对你有一定的帮助的!!!
MySQL -> Hive
执行脚本
CREATE DATABASE mydb; CREATE TABLE mydb.goodtbl( gname string, serialNumber int, price int, stock_number int, create_time date );
执行结果如下:
导入数据
注意,这里是在 Shell 中执行,不是在 Hive 中执行!!!
sqoop import \ --connect jdbc:mysql://h122.wzk.icu:3306/sqoop \ --username hive \ --password hive@wzk.icu \ --table goodtbl \ --hive-import \ --create-hive-table \ --fields-terminated-by "\t" \ --hive-overwrite \ --hive-table mydb.goodtbl \ -m 1
上述参数的解释:
hive-import 必须参数,指定导入hive
hive-database hive库名
hive-table hive表名
fields-terminated-by hive字段分隔符
hive-overwrite 覆盖已经存在的数据
create-hive-table 创建好hive表
分配任务
YARN 集群开始工作了
等待执行
Map->Reduce
Hive -> MySQL
执行脚本
我们需要在 MySQL 中先建立好我们的表格。
CREATE TABLE sqoop.goodtbl2( gname varchar(50), serialNumber int, price int, stock_number int, create_time date );
执行结果如下:
导出数据
在Shell中运行如下脚本
sqoop export \ --connect jdbc:mysql://h122.wzk.icu:3306/sqoop \ --username hive \ --password hive@wzk.icu \ --table goodtbl2 \ --num-mappers 1 \ --export-dir /user/hive/warehouse/mydb.db/goodtbl \ --input-fields-terminated-by "\t"
等待执行
任务分配至YARN 等待调度
查看结果
MapReduce结束,执行完毕后,我们可以在数据库中查看到我们导出的结果。