phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Taylor <jamestay...@apache.org>
Subject Re: ClassNotFoundException for UDF class
Date Sat, 25 Jul 2015 00:28:44 GMT
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