Java Hadoop..如何计算输入拆分的哈希
我想计算输入分割的sha256散列,映射器的输出应该是 (键,值),其中键是块的开始位置 值是完整块的sha256哈希 我的要求是将完整的输入拆分为一条记录 以下是我到目前为止所做的。。(我将块大小设置为100 kb)…没有处理键Value的值部分。对,不仅仅是输出1Java Hadoop..如何计算输入拆分的哈希,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我想计算输入分割的sha256散列,映射器的输出应该是 (键,值),其中键是块的开始位置 值是完整块的sha256哈希 我的要求是将完整的输入拆分为一条记录 以下是我到目前为止所做的。。(我将块大小设置为100 kb)…没有处理键Value的值部分。对,不仅仅是输出1 public void map(LongWritable key, Text value, OutputCollector <LongWritable, IntWritable> output, Repor
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);
public void映射(可长写键、文本值、,
OutputCollector输出,Reporter)引发IOException{
LongWritable key_offset=新的LongWritable();
字符串行=value.toString();
长块=0;
如果(计数=0){
键偏移量=键;
block=key_offset.get();
区块=区块/100000;
计数++;
}
collect(新的LongWritable(块),一个);
您能否修改Hadoop-最终指南中的,以便计算SHA256并将其作为值传递,而不是将整个文件内容作为BytesWritable值传递?您只需要修改整个FileRecordReader。next()方法将IOUtils.ready替换为用于计算文件字节的SHA256的某种方法-可能类似于: