E-MapReduce HDFS文件快速CRC校验工具介绍

背景

在大数据应用场景下经常有数据文件的迁移工作,如果保障迁移之后数据的完整性是一个很常见的问题。对本地文件系统的数据而言,我们一般用md5工具(在Linux下可用md5sum命令)。

而对云存储上的文件来说,md5不一定满足需求。比如阿里云OSS文件并没有提供md5校验值,而是提供了CRC64校验值。本文就给大家介绍一下在大数据场景下,如何用工具快速对比文件。

OSSUtil

首先我们使用OSS官方提供ossutil工具,可以方便的得到云端OSS文件的CRC64:

[hadoop@emr-header-1 ~]$ ossutil stat oss://bucket/file.txt
ACL                         : default
Accept-Ranges               : bytes
Content-Length              : 500000000
Content-Type                : application/octet-stream
Etag                        : 1C1CE59DC84E49EC89EE6570A3608597-96
Last-Modified               : 2017-08-01 11:16:27 +0800 CST
Owner                       : onwerid
X-Oss-Hash-Crc64ecma        : 5376366475988344152
X-Oss-Object-Type           : Multipart
X-Oss-Storage-Class         : Standard
0.097086(s) elapsed

其中的 X-Oss-Hash-Crc64ecma : 5376366475988344152 就是校验值。

ossutil hash命令还能得到本地文件的CRC64值:

[hadoop@emr-header-1 ~]$ ossutil hash file.txt
CRC64-ECMA                  : 5376366475988344152

将两个CRC值进行比较,就可以知道从本地上传到OSS上的文件是否成功。

但是,上面的方法只对单个文件有用,如果你的文件是放在分布式文件系统,比如E-MapReduce上的HDFS,有需要备份数据到OSS上,用OSSUtil工具可能就太慢了。下面将引入一个新的工具。

E-MapReduce Distcp和DistCheck

DistCp

首先用EMR distcp工具将数据从HDFS导入到OSS上:

hadoop distcp /user/hadoop/terasort-10g oss://emr-bucket/upload

这里的原始目录有10G,文件列表是:
/user/hadoop/terasort-10g/input/part-m-00000
/user/hadoop/terasort-10g/input/part-m-00001
...
/user/hadoop/terasort-10g/input/part-m-00020

将文件列表保持成一个文件 list.txt ,并上传到 HDFS 上 /user/hadoop/list.txt

hadoop fs -put list.txt /user/hadoop/list.txt

下载工具

然后,需要你下载本文附件中的压缩包,解压缩之后可以得到两个文件 streaming.jar 和 crctool。其中crctool是一个可以在本地运行的可执行文件(注意:只能在Linux 64位环境下执行),功能和ossutil的hash功能类似,但它只支持从标准输入中读取数据,比如:

cat file.txt | ./crctool

运行工具

接下去就可以运行DistCheck工具了,具体命令如下:

hadoop jar streaming.jar -Dmapred.reduce.tasks=1 -mapper crctool -file crctool -input /user/hadoop/list.txt -output /user/hadoop/distcheck-out

查看结果

查看工具输出的结果:

[hadoop@emr-header-1 ~]$ hadoop  fs -cat /user/hadoop/distcheck-out/part-00000
hdfs://emr-header-1:9000/user/hadoop/terasort-10g/input/part-m-00000: 5376366475988344152
hdfs://emr-header-1:9000/user/hadoop/terasort-10g/input/part-m-00001: 11439160807767203705
hdfs://emr-header-1:9000/user/hadoop/terasort-10g/input/part-m-00002: 2122411653175000878
hdfs://emr-header-1:9000/user/hadoop/terasort-10g/input/part-m-00003: 7064261157479130820
...

这是HDFS上文件的CRC值,可以和OSS上的文件做比较:

[hadoop@emr-header-1 ~]$ hadoop fs -ls oss://emr-bucket/upload/terasort-10g/input  |grep part | awk '{print $6}' | xargs -L1 ./ossutil stat  | grep Crc64
X-Oss-Hash-Crc64ecma        : 5376366475988344152
X-Oss-Hash-Crc64ecma        : 11439160807767203705
X-Oss-Hash-Crc64ecma        : 2122411653175000878
X-Oss-Hash-Crc64ecma        : 7064261157479130820
...
时间: 2024-09-08 20:38:26

E-MapReduce HDFS文件快速CRC校验工具介绍的相关文章

利用Perl实现批量文件MD5自动化校验工具

Message Digest Algorithm-MD5 为计算机安全领域广泛使用的一种散列函数,用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一.利用 MD5 算法来进行文件校验的方案被大量应用于软件下载站.论坛数据库.系统文件安全等方面. MD5 的典型应用是一致性验证,对一段信息(Message)产生信息摘要(Message-Digest),以防止信息被篡改.例如机密资料的检验,下载文件的检验,明文密码的加密等. 本文介绍一款基于 Perl 实现的批量文件的 MD5 自动化校验工具

U盘文件夹加密小工具介绍

  U盘的使用已经越来越广泛了,但是使用方便的同时也会带来很多泄密的困扰,于是给U盘加密就变得十分重要了.怎么来给u 盘加密呢?给大家介绍一款软件--"高强度U盘文件夹加密",这款软件采用了独特的安全的加密算法,能非常方便地给你的U盘数据加上一把锁. 它的加密方法非常简单,还可分为"强度压缩加密"和"快速移动加密"两个加密方法. 1.强度压缩加密 强度压缩加密的操作方法与上面讲述的加.解密操作一样,只不过是强度压缩加密相对快速移动加密而言,其最大

怎样给WinPE添加文件校验工具

  怎样给WinPE添加文件校验工具           在WinPE下有没有办法快速校验文件的属性呢?答案是有的,下面就为大家说说为pe增加右键属性文件校验功能,方法如下: 首先把HashTab.dll文件拷贝到system32文件夹下. 然后在REGDOC.CMD(也有可能是别的名字,或者没有)中加入如下句子: rem 关联文件校验 regsvr32 /s "%WINDIR%SYSTEM32HashTab.dll" reg add "HKU.DEFAULTSoftware

一个助Hadoop集群数据快速上云工具

背景 越来越多的公司和企业希望将业务迁移到云上,同时业务数据也希望能更顺畅的迁移到云上. 当前业界有很多公司是以Hadoop技术构建数据中心,所以本文将探讨如何快速的将Hadoop文件系统(HDFS)上的数据迁移到云上. 在阿里云上使用最广泛的存储服务是OSS对象存储.OSS的数据迁移工具ossimport2可以将您本地或第三方云存储服务上的文件同步到OSS上,但这个工具无法读取Hadoop文件系统的数据,无法发挥Hadoop分布式的特点.并且因为工具只支持本地文件,所以需要将HDFS上的文件先

百度新工具:搜索引擎友好程度校验工具

笔者今天下午在登录百度站长平台(sitemap.baidu.com)时,在XML数据格式实例按钮左边发现百度新增一项工具:搜索引擎友好程度校验工具.百度对该工具的解释:格式规范清晰地HTML书写能够帮助搜索引擎更好,更有效地抓取您的网站.这项工具可以帮助您检测网页是否对搜索引擎足够友好. 笔者带着期望的心情对其所负责的齐鲁人才网检测,看能否从结果中获取一些有利于网站优化的建议,下面是检测结果的截图: 从上图的信息中可以看到,百度列出了6个项目, 1. URL的长度放到了首位,明确表示url的最长

分割视频文件常用的六种工具

Ultra Video Joiner Ultra Video Joiner是一个帮助你连接或者合并AVI/DivX,MPEG I/II,VOB,DAT,WMV,ASF视频文件到一个大的各种格式的视频文件的工具. 你可以增添无限数量的视频文件到清单中并在需要的时候轻松地重新组织它们的顺序,然后再将这些视频文件合并为一个大的AVI/DivX,MPEG I/II,WMV/ASF格式的视频文件.本程序无须任何技术经验并且非常易于使用. Ultra RM Converter Ultra RM Conver

文件快速加密压缩备份到u盘的技巧

  小编这里要跟大家分享的是关于文件快速加密压缩备份到u盘的技巧,u盘是我们拷贝文件时常用的工具,方便携带,在平时的工作中,我们经常需要将一些重要的文件备份到u盘里,但是又怕别人借用u盘的时候看到我们的重要文件,因此我们还会对u盘进行加密,一般大家都会选择利用WinRAR等工具手工将所需的文件制作成压缩包,然后将其移动到优盘上.这样的操作显得比较繁杂,实际上,利用Windows操作系统的"发送到"菜单,就可以实现更加快捷的加密压缩操作.感兴趣的朋友一起来看看吧! 操作方法: 1.首先在

asp.net反编译的cs文件快速生成aspx.cs

问题描述 asp.net反编译的cs文件快速生成aspx.cs 各位大神,木有啥工具能直接把反编译出的代码还原成源代码那种包含有aspx. designer.cs 还有aspx.cs文件那样的工具么? 反编译的dll只有cs文件 改起来工程量好大 解决方案 designer.cs aspx.cs文件 不可能区分开,因为编译的时候丢失了源代码属于哪个文件的信息. 但是aspx文件和.cs文件可以对应起来,在aspx里面找开头的codebehind,里面指向类. 解决方案二: asp.net 中 .

用java实现-16位的CRC校验 ,把C实现的,用JAVA实现

问题描述 16位的CRC校验 ,把C实现的,用JAVA实现 //本部分的定义需要根据不同的编译器进行修改 //U8 U16 U32分别表示8位.16位.32位无符号数值 #define U8 unsigned char #define U16 unsigned short #define U32 unsigned int #endif //C文件部分 U16 Crc16CCITT_Table[16]={ /* CRC 16bit余式表 */ 0x0000, 0x1021, 0x2042, 0x3