sqoop使用

1、相关参数介绍

1.1 sqoop参数

在这里插入图片描述

1.2 导入 import

在这里插入图片描述

1.3 导出 export

在这里插入图片描述

2、sqoop使用案例

说明:使用下方命令需要在/etc/profile中配置SQOOP_HOME;
如未配置,需要在sqoop安装目录下使用bin/sqoop命令格式。

2.1 测试Sqoop是否能够成功连接数据库

命令:

sqoop list-databases --connect jdbc:mysql://node1:3306/ --username root --password 123456
2.2 建表语句
2.2.1 HIVE建表语句
CREATE EXTERNAL TABLE IF NOT EXISTS student(
    id BIGINT comment '学生ID',
    name STRING comment '姓名',
    age INT comment '年龄',
    sex STRING comment '性别',
    clazz STRING comment '班级'
)
comment '学生表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/user/lumia/hive/data/student';
2.2.2 MySQL建表语句
CREATE TABLE `student` (
  `id` bigint(20) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` varchar(20) DEFAULT NULL,
  `clazz` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2.2.3 向MySql中导入数据
导入student2.sql 
执行命令 mysql -u root -p123456 student < /linux中path路径/student2.sql
2.3 MySQL to HDFS
2.3.1全部导入
sqoop import \
--connect jdbc:mysql://node1:3306/student \
--username root \
--password 123456 \
--table student \
-m 1 \
--target-dir /user/lumia/hdfs/data/student/ \
--direct \
--delete-target-dir \
--fields-terminated-by "\t"
2.3.2 查询导入
sqoop import \
--connect jdbc:mysql://node1:3306/student\
--username root \
--password 123456\
--target-dir /user/lumia/hdfs/data/student/ \
--delete-target-dir \
-m 1 \
--fields-terminated-by "\t" \
--query 'select name,sex from studentwhere id <=1001 and $CONDITIONS;'

提示:must contain '$CONDITIONS' in WHERE clause.
如果query后使用的是双引号,则$CONDITIONS前必须加转移符,
防止shell识别为自己的变量。
2.3.3 导入指定列
sqoop import \
--connect jdbc:mysql://node1:3306/student\
--username root \
--password 123456\
--table student \
--target-dir /user/lumia/hdfs/data/student/ \
--delete-target-dir \
-m 1 \
--fields-terminated-by "\t" \
--columns id,sex 

提示:columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格
2.3.4 筛选查询导入数据
sqoop import \
--connect jdbc:mysql://node1:3306/student \
--username root \
--password 123456\
--target-dir /user/lumia/hdfs/data/student/ \
--delete-target-dir \
-m 1 \
--fields-terminated-by "\t" \
--table student\
--where "id=1"
2.4 MySQL to HIVE
sqoop import \
--connect jdbc:mysql://node1:3306/student2 \
--username root \
--password 123456 \
--table student3 \
-m 1 \
--split-by age \
--target-dir /user/lumia/hive/data/student2/ \
--hive-import \
--hive-database default \
--hive-table student2 \
--fields-terminated-by '\t' \
--lines-terminated-by '\n'

提示:该过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库
2.5 MySql to HBase
sqoop import \
--connect jdbc:mysql://192.168.0.120:3306/student \
--username root \
--password 123456 \
--table student \
--hbase-table student \
--hbase-create-table \
--hbase-row-key id \
--m 1 \
--column-family 'info'
2.6 HDFS to MySQL
sqoop export \
--connect jdbc:mysql://node1:3306/student2 \
--username root \
--password 123456 \
-m 1 \
--columns id,name,age,sex,clazz \
--export-dir /user/lumia/hdfs/data/student3/ \
--fields-terminated-by '\t'  \
--lines-terminated-by '\n' \
--table student3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值