/ / Vytvorenie úľa UDF - hadoop, úľ

Vytvorenie úľa UDF - hadoop, úľ

Ahoj priatelia Som nová pre úľ. Snažím sa vytvoriť jedno UDF v podregisterovi nazývané ConvertDateFormatUDF Pri vytváraní dočasnej funkcie sa vyskytuje nasledujúca chyba:

hive>add jar /home/cloudera/date.jar

Pridané /home/cloudera/date.jar na cestu triedy Pridaný zdroj: /home/cloudera/date.jar

hive>CREATE TEMPORARY FUNCTION fun as "com.db.acedq.opal.hive.ConvertDateFormatUDF";
java.lang.NoClassDefFoundError: org/apache/pig/EvalFunc
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.pig.EvalFunc
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.FunctionTask

Prosím, niekto mi pomôž, pretože som nový v úľ. môže mi niekto povedať kroky, ktoré treba dodržiavať

odpovede:

1 pre odpoveď č. 1

Váš úľ UDF sa nejako odvoláva na triedu ošípaných, ktorá by bola pravdepodobne v súbore pig.jar, ktorý nemusí byť nevyhnutne na classpath v prostredí Úľa.

Externé poháre môžu byť pridané rovnako ako vaše vlastné používateľom vytvorené poháre pomocou pridať jar. napr.,

hive> add jar /usr/lib/pig/pig.jar;

Nie som si istý, čo sa váš UDF snaží robiť, ale"ConvertDateFormat" znie ako veľmi jednoduchá metóda, takže ak váš kód nepotreboval explicitne odkazovať na triedu ošípaných, musel by som to skontrolovať kvôli chybám.


1 pre odpoveď č. 2

Zdá sa, že rovnako ako javový kód UDF, ktorý vytvárate, ide o PIG knižnice. Pri vytváraní Úľového fondu UDF by ste mali zahrnúť knižnicu úlovkov. Spomínal som celý postup v nasledujúcom odkazu http://lets-do-something-big.blogspot.in/2014/02/hive-udf-example.html , Prosím, dajte mi vedieť, ak máte stále problém