2012-06-13 11 views
5

próbuję skompilować ten UDF:Jak mogę skompilować ulu UDF

package com.dataminelab.hive.udf; 
import org.apache.hadoop.hive.ql.exec.UDF; 
import org.apache.hadoop.io.Text; 
import java.security.*; 

/** 
* Calculate md5 of the string 
*/ 
public final class Md5 extends UDF { 

    public Text evaluate(final Text s) { 
     if (s == null) { 
      return null; 
     } 
     try { 
      MessageDigest md = MessageDigest.getInstance("MD5"); 
      md.update(s.toString().getBytes()); 
      byte[] md5hash = md.digest(); 
      StringBuilder builder = new StringBuilder(); 
      for (byte b : md5hash) { 
      builder.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1)); 
      } 
      return new Text(builder.toString()); 
      } catch (NoSuchAlgorithmException nsae) { 
      System.out.println("Cannot find digest algorithm"); 
      System.exit(1); 
     } 
     return null; 
    } 
} 

Próbując skompilować z:

javac Md5.java 

Ale otrzymuję:

Md5.java:2: package org.apache.hadoop.hive.ql.exec does not exist 
import org.apache.hadoop.hive.ql.exec.UDF; 
            ^
Md5.java:3: package org.apache.hadoop.io does not exist 
import org.apache.hadoop.io.Text; 

Zakładam są one gdzieś w pliku JAR, ale nie jestem pewien, gdzie je zainstalowałem, więc nie mogę ich dodać do mojej ścieżki klas. Czy ktoś zna domyślną lokalizację lub jak się dowiedzieć?

+0

znalazłem jeden '/ usr/lib/hadoop-0.20/hadoop-core.jar' przez zgadywanie, który naprawił część błędu kompilacji, ale nadal pojawia się błąd dla' org.apache.hadoop.hive.ql.exec.UDF' – nickponline

+1

GOt to: '/ usr/lib/hive/lib/hive-exec-0.7.1-cdh3u3.jar' – nickponline

Odpowiedz

0

Czy zawierasz słoiki w postaci $ HIVE_HOME/lib/hive-serde - *. Jar i $ HIVE_HOME/lib/hive-exec - *. Jar w ścieżce klas?

2

następujące prace dla mnie, ale podejrzewam, że dane będą się różnić w zależności od instalacji i co robi Twój kod źródłowy:

export CLASSPATH=/usr/lib/hive/lib/hive-exec-0.9.0.15.jar:/usr/lib/hadoop/hadoop-core.jar 
0

dodać wyodrębnienie 0.4.1 plik jar do lib