phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rajeshbabu@apache.org" <chrajeshbab...@gmail.com>
Subject Re: ClassNotFoundException for UDF class
Date Mon, 27 Jul 2015 11:59:47 GMT
Hi Anchal Agrawal,

Have you place the jar in HDFS? and the path_to_jar in the create function
is the URI for the jar in hdfs?

Thanks,
Rajeshbabu.


On Sat, Jul 25, 2015 at 5:58 AM, James Taylor <jamestaylor@apache.org>
wrote:

> Are you sure your hbase-site.xml is being picked up on the client-side?
> I've seen this happen numerous times. Maybe try setting something in there
> that would cause an obvious issue to confirm.
>
> I'm not away of anything else you need to do, but I'm sure Rajeshbabu will
> chime in if there is.
>
> Thanks,
> James
>
> On Fri, Jul 24, 2015 at 5:25 PM, Anchal Agrawal <anchal@yahoo-inc.com>
> wrote:
>
>> Hi James,
>>
>> Thanks for your email! I have set the hbase-site.xml configs. I tried
>> removing the dependent jars from the UDF jar and instead included the
>> dependencies in the classpath, but that didn't help.
>>
>> Is there anything else that I could be missing, or could I try out some
>> other debug steps?
>>
>> Thank you,
>> Anchal
>>
>>
>>   On Friday, July 24, 2015 3:29 PM, James Taylor <jamestaylor@apache.org>
>> wrote:
>>
>>
>> I don't believe you'd want to bundle the dependent jars iniside your jar
>> - I wasn't completely sure if that's what you've done. Also there's a
>> config you need to enable in your client-side hbase-site.xml to use this
>> feature.
>> Thanks,
>> James
>>
>> On Friday, July 24, 2015, Anchal Agrawal <anchal@yahoo-inc.com> wrote:
>>
>> Hi all,
>>
>> I'm having issues getting a UDF to work. I've followed the instructions
>> <http://phoenix.apache.org/udf.html#Creating_Custom_UDFs> and created a
>> jar, and I've created a function with the *CREATE FUNCTION *command.
>> However, when I use the function in a *SELECT* statement, I get a
>> *ClassNotFoundException* for the custom class I wrote. I'm using v4.4.0.
>>
>> Here's some debugging information:
>> 1. The UDF jar includes the dependency jars (phoenix-core, hbase,
>> hadoop-common, etc.), in addition to the UDF class itself. There are no
>> permission issues with the jar.
>> 2. I've tried putting the jar on the local FS, on my custom DFS, and also
>> in the HBase dynamic jar dir (as specified in hbase-site.xml).
>> 3. I've tried the *CREATE FUNCTION* command without giving the jar path
>> (the jar is present in the HBase dynamic jar dir).
>> 4. The Phoenix client doesn't report any syntax errors with my *CREATE
>> FUNCTION* command I'm using:
>> *create function GetValue(VARBINARY) returns UNSIGNED_LONG as
>> 'org.apache.phoenix.expression.function.GetValue' using jar 'path_to_jar';*
>>
>> 5. Here's part of the stack trace for the query *SELECT GetValue(pk)
>> FROM "table_name";* (full stack trace here <http://pastebin.com/eu4SmHm8>
>> )
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *Error: java.lang.reflect.InvocationTargetException
>> (state=,code=0)...Caused by: java.lang.ClassNotFoundException:
>> org.apache.phoenix.expression.function.GetValue    at
>> java.net.URLClassLoader$1.run(URLClassLoader.java:372)    at
>> java.net.URLClassLoader$1.run(URLClassLoader.java:361)    at
>> java.security.AccessController.doPrivileged(Native Method)    at
>> java.net.URLClassLoader.findClass(URLClassLoader.java:360)    at
>> org.apache.hadoop.hbase.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:147)
>> at
>> org.apache.phoenix.expression.function.UDFExpression.constructUDFFunction(UDFExpression.java:164)
>> ... 28 more*
>>
>> Am I missing something? I've studied the UDF documentation and searched
>> around for my issue but to no avail. The *GetValue* class is present in
>> the UDF jar, so I'm not sure what the root problem is. I would greatly
>> appreciate any help!
>>
>> Thanks,
>> Anchal
>>
>>
>>
>>
>

Mime
View raw message