![数据转换解决方案sqoop_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a903520a-2860-4a99-b097-bc88db01a2da/a903520a-2860-4a99-b097-bc88db01a2da1.gif)
![数据转换解决方案sqoop_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a903520a-2860-4a99-b097-bc88db01a2da/a903520a-2860-4a99-b097-bc88db01a2da2.gif)
![数据转换解决方案sqoop_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a903520a-2860-4a99-b097-bc88db01a2da/a903520a-2860-4a99-b097-bc88db01a2da3.gif)
![数据转换解决方案sqoop_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a903520a-2860-4a99-b097-bc88db01a2da/a903520a-2860-4a99-b097-bc88db01a2da4.gif)
![数据转换解决方案sqoop_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a903520a-2860-4a99-b097-bc88db01a2da/a903520a-2860-4a99-b097-bc88db01a2da5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据转换工具sqoop1. SqoopSqoop工具介绍 Sqoop Sqoop是Apache顶级项目,主要用来在Hadoop和关系数据库中传递数据。通过sqoop,我们可以方便的将数据从关系数据库导入到HDFS,或者将数据从HDFS导出到关系数据库。 sqoop主要通过JDBC和关系数据库进行交互,理论上支持JDBC的database都可以使用sqoop。1.1 Sqoop介绍:兼容数据库 Sqoop主要通过mapreduce把数据从关系型数据库中导入数据到HDFS,目前测试兼容的数据库。 对oracle数据库的处理,复制jdbc驱动ojdbc6.jar 到sqoop的lib目录即可。数据库
2、数据库版本支持版本支持直接支持直接支持MySQL5.0+YesOracle10.2.0+NoPostgreSQL8.3+(只支持导入)YesHSQLDB1.8.0+NoTeradata13.0+No1.2 工作原理:总体架构1.2 工作原理: 工作流程(1) Sqoop架构非常简单,其整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。 Sqoop可以通过命令行先创建一个任务名,并描述该任务的导入或者导出工作,然后执行即可。其主要工作流程如下:1.读取要导入数据的表结构,生成运行类,默认是QueryResult,打成jar包,然后提交给Had
3、oop;1.2 工作原理: 工作流程(2)2.设置好mapreduce的job,主要包括如下参数: (1) InputFormatClass : 设置输入格式; (2) OutputFormatClass: 设置输出格式,包括:文本、SequenceFile和AvroDataFile三种格式; (3) Mapper: 设置执行mapreduce任务的mapper类; (4) taskNumbers: 设置执行mapreduce的并行任务数。1.2 工作原理: 工作流程(3) 3. 由Hadoop来执行MapReduce任务完成Import工作: 1)首先要对数据进行切分,记录划分范围并读取;
4、2)然后创建RecordReader从数据库中读取数据; 3)创建Map,RecordReader一行一行从关系型数据库中读取数据,设置好Map的Key和Value; 4)运行map。1.3 数据导入Import特性1.支持文本文件、avro、SequenceFiles格式, 默认为文本。2.支持数据追加,通过apend指定。3.支持table列选取(column),支持数据选取(where、 join)。4.支持map任务数定制和数据压缩。 5. 提供参数将关系数据库中的数据导入到HBase ,导入HBase分二部:1)导入数据到HDFS; 2)调用HBase put操作逐行将数据写入表。1
5、.4 数据导出Export特性1. 支持将数据导出到表(table)或者调用存储过程(call)。2. 支持insert、update模式。3. 支持并发控制。1.5 增量备份(1) 一般情况下,关系数据表存在于线上环境的备份环境,需要每天进行数据导入。如果数据表较大,我们通常不可能每次都进行全表的导入,而sqoop提供了增量导入数据的机制。 控制增量导入主要由三个参数控制: -check-column (col):表明当判断哪些行要被导入时需要检查的列; -incremental (mode):表明Sqoop是如何判断哪些行是新的,mode主要包括append(增量)和lastmodifie
6、d(上次备份后修改过的)两个模式; -last-value (value):表明上次导入之后check-column(被检查列)的最大值(已排序的)。 1.5 增量备份(2) 还有一个问题,每天导入时last value值都不一样,如何做到每天动态的读取新的last value呢?这点sqoop也想到了,sqoop支持把一条sqoop命令变为一个job查找最新的last value,然后自动地更换last value的值。 我们只要设置一个每天增量导出任务和一个定期的全表导出任务,用脚本定时执行两个任务即可完成数据库数据的转换工作了。 1.6 Sqoop性能 原生Sqoop导出到HDFS速度为2.8MB/s左右。 此外Sqoop还有很多第三方的插件,比如Quest开发的OraOop插件来提高导入导出速度。 测试环境如下:一台只有700m内存的,IO低下的oracle数据库,百兆的网络,使用Quest的Sqoop插件设置为4个并行度。从orcale导出到HDFS速度达到了5MB/s 。最新sqoop稳定版本为1.4.4,1.6 Sqoop版本和稳定性 最新sqoop稳定版本为1.4.4,2013年8月发布,目前sqoop2也更新到了1.99.3,2013年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论