Hadoop冷热数据转换工具Sqoop

本文介绍Apache Sqoop在Hadoop与关系数据库间的数据迁移方法。它通过JDBC驱动实现数据的双向导入,支持全表扫描,但需谨慎使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqoop是Apache基金下的开源项目,目的是完成关系数据库和Hadoop的转化,实现双向导入。


通常的大型数据系统使用之实现较少,主要原因是因为其在CDH3才开始支持,而且该方式是通过JDBC驱动,将数据库进行读取,并将数据转换至HDFS文件,通常会影响热数据的使用。但是做为日常工作,需要转换时,还是会提供一些方便。


CDH3版本的Sqoop已经默认安装了,其构建在MapReduce之上,不同于直接拷贝,其通过JDBC驱动连接实现hadoop和关系数据库之间的通信。

在进行sqoop前,需要把对应的JDBC驱动放到对应的lib目录。


sqoop命令参数:

import ##表示导入数据

--connect jdbc:mysql://ip:3306/sqoop ##指定连接mysql的url

--username test ##连接mysql的用户名

--password test1 ##连接mysql的密码

--table weblogs ##从mysql导出的表名称

--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符

--m1 ##复制过程使用1个map作业

--target-dir /data/weblogs/import ##指定HDFS上存放的路径


其中,username和password用于验证访问mysql的权限,必须在hadoop的用户名中出现。


默认情况下,导入的数据按照主键进行分割,如果导入的表不包含主键,就用--split-by参数决定导入的数据如何分割。


Sqoop命令将转化为mapreduce作业,使用DBInputFormat,格式化查询结果。因为其进行全表扫描,使用时需要谨慎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值