Booked on https://issues.apache.org/jira/browse/HIVE-9486.

Thanks,
Navis

2015-01-27 18:05 GMT+09:00 德明 施 <deming....@outlook.com>:

>
>
>
> Hi All,
> I am not having some hive classpath issue. I think this is a bug.
> I wrote my own SerDe "com.stanley.MySerde", which is a simple json
> serializer; It is generally the same with the built-in SerDe
> "org.apache.hadoop.hive.serde2.DelimitedJSONSerDe".
> Then I issued the command:add jar /path/to/myjar.jar; (I am sure this
> command worked)create table t1.json_1 row format serde
> "com.stanley.MySerde" location '/user/stanley/test-data-1/' as select *
> from t1.plain_table;
> create table t1.json_2 row format serde
> "org.apache.hadoop.hive.serde2.DelimitedJSONSerDe" location
> '/user/stanley/test-data-2/' as select * from t1.plain_table;
> The second command will succeed but the first one will fail with
> ClassNotFoundException. But if I put myjar.jar to $HIVE_HOME/lib, both
> command will succeed. I went through the code of the
> org.apache.hadoop.hive.ql.plan.PlanUtils.java, seems it is using
> Class.forname(clzname) to load the class, I think it should use the
> Thread.contextClassLoader instead, am I right?There's a similar issue here:
> https://issues.apache.org/jira/browse/HIVE-6495
> Here's the exception trace: java.lang.ClassNotFoundException:
> com.ebay.p13n.hive.bexbat.serde.JsonLazySimpleSerDe       at
> java.net.URLClassLoader$1.run(URLClassLoader.java:366)       at
> java.net.URLClassLoader$1.run(URLClassLoader.java:355)       at
> java.security.AccessController.doPrivileged(Native Method)   at
> java.net.URLClassLoader.findClass(URLClassLoader.java:354)   at
> java.lang.ClassLoader.loadClass(ClassLoader.java:425)        at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)        at
> java.lang.ClassLoader.loadClass(ClassLoader.java:358)        at
> java.lang.Class.forName0(Native Method)      at
> java.lang.Class.forName(Class.java:190)      at
> org.apache.hadoop.hive.ql.plan.PlanUtils.getTableDesc(PlanUtils.java:310)
>   at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genFileSinkPlan(SemanticAnalyzer.java:5874)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPostGroupByBodyPlan(SemanticAnalyzer.java:8278)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:8169)
>    at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9001)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:9267)
> at
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:327)
> at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:427)    at
> org.apache.hadoop.hive.ql.Driver.compile(Driver.java:323)    at
> org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:980)    at
> org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1045)       at
> org.apache.hadoop.hive.ql.Driver.run(Driver.java:916)        at
> org.apache.hadoop.hive.ql.Driver.run(Driver.java:906)
>

Reply via email to