2016-07-26 2 views
5

Я использую следующий улей запрос:ClassCastException на отброшенных таблицы запроса в Apache Spark улья

this.queryExecutor.executeQuery("Drop table user") 

и я получаю следующее исключение:

java.lang.LinkageError: ClassCastException: attempting to castjar:file:/usr/hdp/2.4.2.0-258/spark/lib/spark-assembly-1.6.1.2.4.2.0-258-hadoop2.7.1.2.4.2.0-258.jar!/javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/usr/hdp/2.4.2.0-258/spark/lib/spark-assembly-1.6.1.2.4.2.0-258-hadoop2.7.1.2.4.2.0-258.jar!/javax/ws/rs/ext/RuntimeDelegate.class 
at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:116) 
    at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91) 
    at javax.ws.rs.core.MediaType.<clinit>(MediaType.java:44) 
    at com.sun.jersey.core.header.MediaTypes.<clinit>(MediaTypes.java:64) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:182) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:175) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:162) 
    at com.sun.jersey.api.client.Client.init(Client.java:342) 
    at com.sun.jersey.api.client.Client.access$000(Client.java:118) 
    at com.sun.jersey.api.client.Client$1.f(Client.java:191) 
    at com.sun.jersey.api.client.Client$1.f(Client.java:187) 
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:187) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:170) 
    at org.apache.hadoop.yarn.client.api.impl.TimelineClientImpl.serviceInit(TimelineClientImpl.java:340) 
    at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163) 
    at org.apache.hadoop.hive.ql.hooks.ATSHook.<init>(ATSHook.java:67) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at java.lang.Class.newInstance(Class.java:442) 
    at org.apache.hadoop.hive.ql.hooks.HookUtils.getHooks(HookUtils.java:60) 
    at org.apache.hadoop.hive.ql.Driver.getHooks(Driver.java:1309) 
    at org.apache.hadoop.hive.ql.Driver.getHooks(Driver.java:1293) 
    at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1347) 
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1195) 
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059) 
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049) 
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$runHive$1.apply(ClientWrapper.scala:495) 
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$runHive$1.apply(ClientWrapper.scala:484) 
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$withHiveState$1.apply(ClientWrapper.scala:290) 
    at org.apache.spark.sql.hive.client.ClientWrapper.liftedTree1$1(ClientWrapper.scala:237) 
    at org.apache.spark.sql.hive.client.ClientWrapper.retryLocked(ClientWrapper.scala:236) 
    at org.apache.spark.sql.hive.client.ClientWrapper.withHiveState(ClientWrapper.scala:279) 
    at org.apache.spark.sql.hive.client.ClientWrapper.runHive(ClientWrapper.scala:484) 
    at org.apache.spark.sql.hive.client.ClientWrapper.runSqlHive(ClientWrapper.scala:474) 
    at org.apache.spark.sql.hive.HiveContext.runSqlHive(HiveContext.scala:613) 
    at org.apache.spark.sql.hive.execution.DropTable.run(commands.scala:89) 
    at org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult$lzycompute(commands.scala:58) 
    at org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult(commands.scala:56) 
    at org.apache.spark.sql.execution.ExecutedCommand.doExecute(commands.scala:70) 
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132) 
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130) 
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150) 
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130) 
    at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:55) 
    at org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:55) 
    at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:145) 
    at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:130) 
    at org.apache.spark.sql.DataFrame$.apply(DataFrame.scala:52) 
    at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:817) 
    at com.accenture.aa.dmah.spark.core.QueryExecutor.executeQuery(QueryExecutor.scala:35) 
    at com.accenture.aa.dmah.attribution.transformer.MulltipleUserJourneyTransformer.transform(MulltipleUserJourneyTransformer.scala:32) 
    at com.accenture.aa.dmah.attribution.userjourney.UserJourneyBuilder$$anonfun$buildUserJourney$1.apply$mcVI$sp(UserJourneyBuilder.scala:31) 
    at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141) 
    at com.accenture.aa.dmah.attribution.userjourney.UserJourneyBuilder.buildUserJourney(UserJourneyBuilder.scala:29) 
    at com.accenture.aa.dmah.attribution.core.AttributionHub.executeAttribution(AttributionHub.scala:47) 
    at com.accenture.aa.dmah.attribution.jobs.AttributionJob.process(AttributionJob.scala:33) 
    at com.accenture.aa.dmah.core.DMAHJob.processJob(DMAHJob.scala:73) 
    at com.accenture.aa.dmah.core.DMAHJob.execute(DMAHJob.scala:27) 
    at com.accenture.aa.dmah.core.JobRunner.<init>(JobRunner.scala:17) 
    at com.accenture.aa.dmah.core.ApplicationInstance.initilize(ApplicationInstance.scala:48) 
    at com.accenture.aa.dmah.core.Bootstrap.boot(Bootstrap.scala:112) 
    at com.accenture.aa.dmah.core.BootstrapObj$.main(Bootstrap.scala:134) 
    at com.accenture.aa.dmah.core.BootstrapObj.main(Bootstrap.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:71) 
    at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31) 
    at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:139) 
    at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:71) 
    at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:139) 
    at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:28) 
    at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:45) 
    at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:35) 
    at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:45) 
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74) 
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96) 
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:105) 
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 

Я видел там были подобные сообщения here и here, но до сих пор они не имели никакого ответа. Также посмотрели here, но не думаю, что это действительный курс действий в моем случае.

Интересно, что это специфично, когда мы пытаемся использовать запрос drop table (или drop table if exists).

В надежде найти разрешение на то же самое.

+0

у вас есть ответ на этот вопрос? –

+0

Вы решили эту проблему? – Edge7

+0

@ Edge7 Привет, Нет ... мы не смогли исправить это. Как выяснилось, требование об удалении таблицы было прекращено, поэтому больше не было сделано никаких исследований по этому вопросу. – hbabbar

ответ

0

Насколько я знаю, Вышеприведенная ошибка может быть из-за класса образца с той же структурой пакета, то есть: «javax.ws.rs.ext.RuntimeDelegate», найденной в разных проблемах JAR. Объекты класса создаются и выполняются во время выполнения. Таким образом, есть все возможности кода, ответственного за запуск синтаксиса DROP, вышеупомянутый класс будет использоваться и прерываться, поскольку он встречается более одного раза в пути к классам.

Я попытался DROP и DROP IF EXISTS в chd5 и работает без проблем, ниже детали моего бега:

первый запуск - Hadoop версия - 2.6, Hive 1.1.0 и Spark - 1.3.1 (включены улья библиотеки, чтобы зажечь LIB) второй прогон -Hadoop версии - 2.6, улей 1.1.0 и Спарк - 1.6.1 Режим бега - кли

scala> sqlContext.sql("DROP TABLE SAMPLE"); 
16/08/04 11:31:39 INFO parse.ParseDriver: Parsing command: DROP TABLE SAMPLE 
16/08/04 11:31:39 INFO parse.ParseDriver: Parse Completed 
...... 
scala>sqlContext.sql("DROP TABLE IF EXISTS SAMPLE"); 
16/08/04 11:40:34 INFO parse.ParseDriver: Parsing command: DROP TABLE IF EXISTS SAMPLE 
16/08/04 11:40:35 INFO parse.ParseDriver: Parse Completed 
..... 

Если возможно, пожалуйста, проверить DROP команды, используя другую версию из искры lib, чтобы сузить масштаб проблемы.

Между тем, я анализирую банки, чтобы узнать связь, в которой существуют два события того же класса «RuntimeDelegate», и сообщит, чтобы проверить, может ли удаление любой банки исправить проблему и добавить банку, чтобы воссоздать такой же выпуск.

+0

Также, если возможно, пожалуйста, перечислите ссылки на Джерси и javax.ws.rs-api в своей среде, чтобы воспользоваться сомнением – Aditya

Смежные вопросы