Hadoop.如何计算输入拆分的哈希



我想计算输入拆分的sha256哈希,映射器的输出应该是

(键,值)其中键是块的起始位置并且value是完整块的sha256散列。。

我的要求是阅读完整的输入拆分为一个记录。

以下是我到目前为止所做的。。(我把块大小取为100kb)。。没有对键的Value部分进行过操作,Value。右不只是输出1

public void map(LongWritable key, Text value,
      OutputCollector <LongWritable, IntWritable> output, Reporter reporter) throws IOException {
     LongWritable key_offset = new LongWritable();
     String line = value.toString();
     long block = 0;
     if (count == 0) {
       key_offset = key;
       block = key_offset.get();
       block = block / 100000;
       count++;
     }
     output.collect(new LongWritable(block), one);

您能从Hadoop-最终指南中修改WholeFileInputFormat吗?这样,您就可以计算SHA256并将其作为值传递,而不是将整个文件内容作为BytesWritable值传递?您只需要修改WholeFileRecordReader.next()方法,将IOUtils.readFully替换为一些计算文件字节的SHA256的方法,可能类似于:

  • http://www.mkyong.com/java/java-sha-hashing-example/

相关内容

  • 没有找到相关文章

最新更新