sqoop基本知识

sqoop产生背景

最早 数据存储是基于传统关系型数据库。随着数据量增长,传统的数据存储方式无法满足需求,换一种新的存储策略。 hdfs 分布式存储 应运而生。但传统的关系型数据库(mysql /oracle)里所存储的数据, 需要迁移到大数据平台。sqoop应运而生。sqoop 是 apache 旗下一款Hadoop 和关系数据库服务器之间传送数据的工具

sqoop是什么

sqoop是做数据迁移的。本质还是一个命令行工具,和 HDFS, Hive 相比,并没有什么高深的理论。
在这里插入图片描述

数据导入的方向

如果以大数据平台为中心
数据迁入 import: 是指将数据从 mysql或oracle 平台迁移到 hadoop平台。
数据迁出 export: 是指将数据从 hadoop平台迁移到 mysql或oracle 平台。
eg:hive 数据分析的结果,如果要进行可视化展示,一般存入mysql中。

广义hadoop平台包括:hdfs、hive、hbase

sqoop的工作机制

sqoop工作的本质是:将sqoop命令转换为mapreduce任务。在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制。

  • sqoop的数据迁入:从mysql读取数据,将数据输出到hdfs / hive /hbase 等。
map端:
普通的mr,数据输入,使用 FileInputFormat:只能针对文本进行读取。
	map:LongWritable 
	key:Text 
	
因为是从masql读取,因此需要重新定义输入:
    使用DBInputFormat:将数据库的数据,  一行一行的读取过来
    map() {直接输出},不再需要reduce()

数据迁入的本质,相当于重新定义了数据输入类(使用DBInputFormat),在运行过程中,只需要maptask

  • sqoop的数据迁出:将数据从hdfs迁出到mysql
map端:   
     输入不用变,依然使用 FileInputFormat:  一行一行地读取数据
     map(){
         将数据输出到mysql中
         重新定义  OutputFormat(使用DBOutputFormat)
     }

数据的迁出,相当于重新定义了OUTPUTFORMAT,只需要maptask。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值