Package co.nubetech.hiho.uuid

Source Code of co.nubetech.hiho.uuid.UuidMapper

package co.nubetech.hiho.uuid;

import static co.nubetech.hiho.dedup.DelimitedTextInputFormat.DELIMITER_CONF;

import java.io.IOException;
import java.util.UUID;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.TaskAttemptID;
import org.apache.log4j.Logger;

public class UuidMapper extends Mapper<Text, Text, NullWritable, Text> {

  final static Logger logger = Logger
      .getLogger(co.nubetech.hiho.uuid.UuidMapper.class);

  @Override
  public void map(Text key, Text val, Context context)
      throws IOException, InterruptedException {
    Configuration conf = context.getConfiguration();

    UUID randomUuid = UUID.randomUUID();
    TaskAttemptID taskAttemptId = context.getTaskAttemptID();
    Long mostSignificant = (long) taskAttemptId.hashCode();
    Long leastSignificant = randomUuid.getLeastSignificantBits();
    UUID uniquieId = new UUID(mostSignificant, leastSignificant);

    String delimeter = conf.get(DELIMITER_CONF);
    String value = val.toString();
    String outputValue = uniquieId.toString() + delimeter + value;
    logger.debug("The UUID generated is " + uniquieId.toString()
        + "\nOutput is " + outputValue);

    context.write(null, new Text(outputValue));

  }

}
TOP

Related Classes of co.nubetech.hiho.uuid.UuidMapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.