import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; public class NellVertexMapper extends Mapper <Object , Text, LongWritable, Text>{ @Override protected void map(Object key, Text value, Context context) throws IOException, InterruptedException { String line=value.toString(); if(!line.startsWith("#")){ String[] strs = line.trim().split("\\s+"); String srcstring=strs[0]; String[] srcsplit=srcstring.trim().split(":"); String src=srcsplit[srcsplit.length - 1]; String relationstr=strs[1]; String[] relationsplit=relationstr.trim().split(":"); String relation=relationsplit[relationsplit.length -1]; String deststring=strs[2]; String[] destsplit=deststring.trim().split(":"); String target=destsplit[destsplit.length - 1]; // System.out.println("source : "+src+" relation : "+relation+" target : "+target); long srchash=Math.abs(hash(src)); srchash=srchash%(1<<20); long targethash=Math.abs(hash(target)); targethash=targethash%(1<<20); if(srchash<0 || targethash <0){ System.out.println("TESTNEGATIVEMapper"); } context.write(new LongWritable(srchash), new Text(src)); context.write(new LongWritable(targethash), new Text(target)); } // TODO Auto-generated method stub } public static long hash(String string) { long h = 1125899906842597L; // prime int len = string.length(); for (int i = 0; i < len; i++) { h = 31*h + string.charAt(i); } return h; } public static void main(String[] args){ String test ="jkds"; System.out.println(hash(test)); } }