优点
sqoop的作用是实现数据的导入和导出,主要是对数据库和数据仓库之间的操作
只要是支持jdbc连接的数据库都可以使用sqoop操作
添加Sqoop到环境变量中
export SQOOP_HOME=/export/server/sqoop
export PATH=$PATH:$SQOOP_HOME/bin:$SQOOP_HOME/sbin
source /etc/profile
启动数仓服务
./up01.sh start
sqoop建表语句
create database itcast charset=utf8;
create table itcast.tb_user(id int,name varchar(20),age int,gender varchar(20)
);
insert into itcast.tb_user value(1,'张三',20,'男');
hive数仓中的准备
create database itcast;
hive表指令
- create-hive-table 根据mysql表创建hive表
- –connect mysql连接信息 jdbc连接
- –username mysql用户名
- –password mysql密码
- –table mysql表名
- –hive-table hive表名 需要指定库
- –fields-terminated-by 字段分割符
/export/server/sqoop/bin/sqoop create-hive-table --connect jdbc:mysql://192.168.88.166:3306/users --username root --password 123456 --table tbl_users --hive-table users.tbl_users --fields-terminated-by '\t'
sqoop导入数据指令
- mysql数据导入数仓
- import 根据mysql表创建
- –connect mysql连接信息
- –username 用户名
- –password 密码
- –table mysql表名
- –hive-import 导入hive表
- –hive-overwrite 覆盖导入
- –hive-table hive表名
- –fields-terminated-by 字段分割符
- –delete-target-dir 如果存在表目录则删除后在再重新创建
- –direct 直接导入模式 提升导入速度
- –m 指定Maptask数量并行导入数据
/export/server/sqoop/bin/sqoop import --connect jdbc:mysql://192.168.88.166:3306/users --username root --password 123456 --table tbl_users --hive-import --hive-overwrite --hive-table users.tbl_users --fields-terminated-by '\t' --delete-target-dir --direct --m 1
编写sqoop脚本
qoop脚本就是将sqoop指令写入shell文件 后缀是 .sh
建表脚本
/export/server/sqoop/bin/sqoop \
create-hive-table \
--connect jdbc:mysql://192.168.88.166:3306/users \
--username root \
--password 123456 \
--table tbl_users \
--hive-table users.tbl_users \
--fields-terminated-by '\t'
导入脚本
/export/server/sqoop/bin/sqoop \
import \
--connect jdbc:mysql://192.168.88.166:3306/users \
--username root \
--password 123456 \
--table tbl_users \
--hive-import \
--hive-overwrite \
--hive-table users.tbl_users \
--fields-terminated-by '\t' \
--delete-target-dir \
--direct \
--m 1