hadoop - 计算HDFS中的HashCode函数

标签 hadoop hdfs hashcode mapr

我想将一些文件从一个位置移动到另一个位置 [这两个位置都在 HDFS 上],并且需要验证数据是否已正确移动。

为了比较移动的数据,我在考虑计算两个文件的哈希码,然后比较它们是否相等。如果相等,我会认为数据移动是正确的,否则数据移动没有正确发生。

但我对此有几个问题。

  1. 首先我是否需要使用 hashCode 技术?我正在使用 MapR 分发,我在某个地方读取了完成后的数据移动,在后端实现数据散列并确保它已正确传输。那么能不能保证数据在HDFS内部移动的时候是一致的,移动的时候不会插入异常呢?

  2. 我是否可以使用任何其他方式来确保移动的数据在不同位置保持一致?

提前致谢。

最佳答案

你问的是数据复制。只需使用 DistCp .

DistCp (distributed copy) is a tool used for large inter/intra-cluster copying. It uses MapReduce to effect its distribution, error handling and recovery, and reporting.

#sample example 
$hadoop distcp hdfs://nn1:8020/foo/bar \ 
                hdfs://nn2:8020/bar/foo

这会将 nn1 上/foo/bar 下的命名空间扩展为一个临时文件,将其内容分区到一组映射任务中,并在从 nn1 到 nn2 的每个 TaskTracker 上启动一个副本。


编辑

DistCp 使用 MapReduce 来影响其分发、错误处理和恢复以及报告

复制后,建议生成并交叉检查源和目标列表,以·验证复制是否真正成功·。由于 DistCp 同时使用 MapReduce 和 FileSystem API,三者中的任何一个或两者之间的问题都可能对副本产生不利和无声的影响。


编辑

我用来检查 sourcedist 文件的常用方法是检查文件的数量和每个文件的指定大小。这可以通过在源代码处生成一个 manifest 来完成,然后在 dist 中检查数量和大小。

关于hadoop - 计算HDFS中的HashCode函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32332282/

相关文章:

java - HBase 设置时间戳

hadoop - “WARN hdfs.DFSUtil: Namenode for null remains unresolved for ID null.”

用于列出文件的 Hadoop 命令

hibernate - 在实体类上是否等于和哈希码,这就是问题

c# - 我可以使用 GetHashCode() 进行所有字符串比较吗?

hadoop - 过滤后的计数值 - Apache PIG

mysql - sqoop导入部分表的where子句中传递第二个条件时出错

hadoop - Sqoop增量SemanticException没有与hdfs://host/user/xyz/_sqoop/匹配的文件吗?

java - 实现 hashCode() 的首选方法是什么?

api - 如何在 Spark 中检查 HDFS 目录是否为空