2019-03-13 I/O操作

2019-03-13  本文已影响0人  做一只乐观的小猴子

https://cloud.tencent.com/developer/article/1330159

checksum I/O操作中的数据检查

校验和方式是检查数据完整性的重要方式。一般会通过对比新旧校验和来确定数据情况,如果两者不同则说明数据已经损坏。

比如,在传输数据前生成了一个校验和,将数据传输到目的主机时再次计算校验和,如果两次的校验结果不同,则说明数据已经损坏。

因为Hadoop采用HDFS作为默认的文件系统,因此具有两方面的数据完整性。

ApacheSqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。

关系型数据库的数据导入到Hadoop(可保存为多种文件类型:文本类型,Avro二进制类型以及SequenceFiles类型)

与其相关的系统(如HBase和Hive)中;

同时也可以把数据从Hadoop系统里抽取并导出到关系型数据库里。

Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS。Sqoop架构非常简单,其整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。

Sqoop在import时,需要制定split-by参数。Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同map中。每个map中再处理数据库中获取的一行一行的值,写入到HDFS中。同时split-by根据不同的参数类型有不同的切分方法,如比较简单的int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来确定划分几个区域。比如selectmax(split_by),min(split-by)from得到的max(split-by)和min(split-by)分别为1000和1,而num-mappers为2的话,则会分成两个区域(1,500)和(501-100),同时也会分成2个sql给2个map去进行导入操作,分别为selectXXXfromtablewheresplit-by>=1andsplit-by<500和selectXXXfromtablewheresplit-by>=501andsplit-by<=1000。最后每个map各自获取各自SQL中的数据进行导入工作

作者:CatherinePlans

链接:https://www.jianshu.com/p/e42f307b1f07

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

上一篇下一篇

猜你喜欢

热点阅读