Wie kompiliere ich eine Hive-UDF?

Ich versuche diese UDF zu kompilieren:

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;
    }
}

Versucht zu kompilieren mit:

javac Md5.java

Aber ich bekomme:

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;

Ich nehme an, dass diese irgendwo in einer JAR-Datei sind, aber ich bin nicht sicher, wo Hadoop sie installiert, so dass ich sie nicht zu meinem Klassenpfad hinzufügen kann. Kennt jemand den Standardspeicherort oder wie man es herausfindet?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage