Hadoop(七)Sqoop

参考文章:
Sqoop教程(一) Sqoop数据迁移工具
Sqoop——vue5在线教程

Sqoop简介

Sqoop: “SQL到Hadoop和Hadoop到SQL”

Sqoop是一种用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从MySQL,Oracle等关系数据库向Hadoop HDFS导入数据,并从Hadoop文件系统导出到关系数据库。

在这里插入图片描述

Sqoop命令

import数据导入

import:从MySQL导入到HDFS文件系统数据

–connect:数据库JDBC连接字符串jdbc:mysql://192.168.1.105:3306/sqoop_db

–username:数据库用户名

–password:数据库密码

–table:数据库表名

–columns:数据库列名

sqoop import \
--connect jdbc:mysql://192.168.1.105:3306/sqoop_db 
--username root 
--password root
--table product 
--columns 'PRODUCT_ID,PRODUCT_NAME,LIST_PRICE,QUANTITY,CREATE_TIME'

导入表数据子集

我们可以使用Sqoop导入工具中的"where"子句导入表的子集。它在相应的数据库服务器中执行相应的SQL查询,并将结果存储在HDFS的目标目录中。

sqoop import 
--connect jdbc:mysql://localhost/userdb 
--username root 
--table emp_add 
--m 1 
--where “city =’sec-bad’” 
--target-dir /wherequery

增量导入表数据

增量导入是仅导入表中新添加的行的技术。需要添加“incremental”,“check-column”和“last-value”选项来执行增量导入。

Sqoop import命令中的增量选项使用以下语法。

--incremental <mode>
--check-column <column name>
--last value <last check column value>
sqoop import 
--connect jdbc:mysql://localhost/userdb 
--username root 
--table emp 
--m 1 
--incremental append 
--check-column id 
-last value 1205

Sqoop将数据导到hbase

  1. mysql导入hbase可以直接通过sqoop进行
sqoop import 
--connect jdbc:mysql://192.168.220.20:3306/test 
--username root 
--password 123456 
--table smq_to_hbase 
--hbase-table smq_hbase 
--column-family info 
--hbase-row-key id

通过Sqoop将Hbase导入到Mysql中

hbase导出到mysql无法直接通过sqoop进行,需要经过hive的中间作用来完成。顺序为:hbase→hive外部表→hive内部表→sqoop导出→mysql。

hbase外部表中映射了Hbase中的数据。真正的数据此时还是存在Hbase中的,所以需要先将外部表导入到内部表中再导出。

创建内部表

hive> CREATE TABLE test.employee(key INT,id INT,name STRING);

创建外部表与mysql中表的对应

CREATE EXTERNAL TABLE test.h_employee (key int,id int,name string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
"hbase.columns.mapping" =
":key,info:id, info:name"
)
TBLPROPERTIES( "hbase.table.name" = "employee",
"hbase.mapred.output.outputtable" = "employee");

hive外部表的数据导入内部表中

insert overwrite table test.employee select * from test.h_employee;

sqoop将hive表导入至mysql中

sqoop export -connect jdbc:mysql://192.168.220.20:3306/test -username root -password 123456 -tablemploye
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值