Does anyone have suggestions in setting property of hive-exec-2.0.0.jar
path in application?
Something like
'hiveConf.set("hive.remote.driver.jar","hdfs://storm0:9000/tmp/spark-assembly-1.4.1-hadoop2.6.0.jar")'.



2016-03-11 10:53 GMT+08:00 Stana <st...@is-land.com.tw>:

> Thanks for reply
>
> I have set the property spark.home in my application. Otherwise the
> application threw 'SPARK_HOME not found exception'.
>
> I found hive source code in SparkClientImpl.java:
>
> private Thread startDriver(final RpcServer rpcServer, final String
> clientId, final String secret)
>       throws IOException {
> ...
>
> List<String> argv = Lists.newArrayList();
>
> ...
>
> argv.add("--class");
> argv.add(RemoteDriver.class.getName());
>
> String jar = "spark-internal";
> if (SparkContext.jarOfClass(this.getClass()).isDefined()) {
> jar = SparkContext.jarOfClass(this.getClass()).get();
> }
> argv.add(jar);
>
> ...
>
> }
>
> When hive executed spark-submit , it generate the shell command with
> --class org.apache.hive.spark.client.RemoteDriver ,and set jar path with
> SparkContext.jarOfClass(this.getClass()).get(). It will get the local path
> of hive-exec-2.0.0.jar.
>
> In my situation, the application and yarn cluster are in different cluster.
> When application executed spark-submit with local path of
> hive-exec-2.0.0.jar to yarn cluster, there 's no hive-exec-2.0.0.jar in
> yarn cluster. Then application threw the exception: "hive-exec-2.0.0.jar
>   does not exist ...".
>
> Can it be set property of hive-exec-2.0.0.jar path in application ?
> Something like 'hiveConf.set("hive.remote.driver.jar",
> "hdfs://storm0:9000/tmp/spark-assembly-1.4.1-hadoop2.6.0.jar")'.
> If not, is it possible to achieve in the future version?
>
>
>
>
> 2016-03-10 23:51 GMT+08:00 Xuefu Zhang <xu...@uber.com>:
>
>> You can probably avoid the problem by set environment variable SPARK_HOME
>> or JVM property spark.home that points to your spark installation.
>>
>> --Xuefu
>>
>> On Thu, Mar 10, 2016 at 3:11 AM, Stana <st...@is-land.com.tw> wrote:
>>
>> >  I am trying out Hive on Spark with hive 2.0.0 and spark 1.4.1, and
>> > executing org.apache.hadoop.hive.ql.Driver with java application.
>> >
>> > Following are my situations:
>> > 1.Building spark 1.4.1 assembly jar without Hive .
>> > 2.Uploading the spark assembly jar to the hadoop cluster.
>> > 3.Executing the java application with eclipse IDE in my client computer.
>> >
>> > The application went well and it submitted mr job to the yarn cluster
>> > successfully when using " hiveConf.set("hive.execution.engine", "mr")
>> > ",but it threw exceptions in spark-engine.
>> >
>> > Finally, i traced Hive source code and came to the conclusion:
>> >
>> > In my situation, SparkClientImpl class will generate the spark-submit
>> > shell and executed it.
>> > The shell command allocated  --class with RemoteDriver.class.getName()
>> > and jar with SparkContext.jarOfClass(this.getClass()).get(), so that
>> > my application threw the exception.
>> >
>> > Is it right? And how can I do to execute the application with
>> > spark-engine successfully in my client computer ? Thanks a lot!
>> >
>> >
>> > Java application code:
>> >
>> > public class TestHiveDriver {
>> >
>> >         private static HiveConf hiveConf;
>> >         private static Driver driver;
>> >         private static CliSessionState ss;
>> >         public static void main(String[] args){
>> >
>> >                 String sql = "select * from hadoop0263_0 as a join
>> > hadoop0263_0 as b
>> > on (a.key = b.key)";
>> >                 ss = new CliSessionState(new
>> HiveConf(SessionState.class));
>> >                 hiveConf = new HiveConf(Driver.class);
>> >                 hiveConf.set("fs.default.name", "hdfs://storm0:9000");
>> >                 hiveConf.set("yarn.resourcemanager.address",
>> > "storm0:8032");
>> >                 hiveConf.set("yarn.resourcemanager.scheduler.address",
>> > "storm0:8030");
>> >
>> >
>> hiveConf.set("yarn.resourcemanager.resource-tracker.address","storm0:8031");
>> >                 hiveConf.set("yarn.resourcemanager.admin.address",
>> > "storm0:8033");
>> >                 hiveConf.set("mapreduce.framework.name", "yarn");
>> >                 hiveConf.set("mapreduce.johistory.address",
>> > "storm0:10020");
>> >
>> >
>> hiveConf.set("javax.jdo.option.ConnectionURL","jdbc:mysql://storm0:3306/stana_metastore");
>> >
>> >
>> hiveConf.set("javax.jdo.option.ConnectionDriverName","com.mysql.jdbc.Driver");
>> >                 hiveConf.set("javax.jdo.option.ConnectionUserName",
>> > "root");
>> >                 hiveConf.set("javax.jdo.option.ConnectionPassword",
>> > "123456");
>> >                 hiveConf.setBoolean("hive.auto.convert.join",false);
>> >                 hiveConf.set("spark.yarn.jar",
>> > "hdfs://storm0:9000/tmp/spark-assembly-1.4.1-hadoop2.6.0.jar");
>> >                 hiveConf.set("spark.home","target/spark");
>> >                 hiveConf.set("hive.execution.engine", "spark");
>> >                 hiveConf.set("hive.dbname", "default");
>> >
>> >
>> >                 driver = new Driver(hiveConf);
>> >                 SessionState.start(hiveConf);
>> >
>> >                 CommandProcessorResponse res = null;
>> >                 try {
>> >                         res = driver.run(sql);
>> >                 } catch (CommandNeedRetryException e) {
>> >                         // TODO Auto-generated catch block
>> >                         e.printStackTrace();
>> >                 }
>> >
>> >                 System.out.println("Response Code:" +
>> > res.getResponseCode());
>> >                 System.out.println("Error Message:" +
>> > res.getErrorMessage());
>> >                 System.out.println("SQL State:" + res.getSQLState());
>> >
>> >         }
>> > }
>> >
>> >
>> >
>> >
>> > Exception of spark-engine:
>> >
>> > 16/03/10 18:32:58 INFO SparkClientImpl: Running client driver with
>> > argv:
>> >
>> /Volumes/Sdhd/Documents/project/island/java/apache/hive-200-test/hive-release-2.0.0/itests/hive-unit/target/spark/bin/spark-submit
>> > --properties-file
>> >
>> >
>> /var/folders/vt/cjcdhms903x7brn1kbh558s40000gn/T/spark-submit.7697089826296920539.properties
>> > --class org.apache.hive.spark.client.RemoteDriver
>> >
>> >
>> /Users/stana/.m2/repository/org/apache/hive/hive-exec/2.0.0/hive-exec-2.0.0.jar
>> > --remote-host MacBook-Pro.local --remote-port 51331 --conf
>> > hive.spark.client.connect.timeout=1000 --conf
>> > hive.spark.client.server.connect.timeout=90000 --conf
>> > hive.spark.client.channel.log.level=null --conf
>> > hive.spark.client.rpc.max.size=52428800 --conf
>> > hive.spark.client.rpc.threads=8 --conf
>> > hive.spark.client.secret.bits=256
>> > 16/03/10 18:33:09 INFO SparkClientImpl: 16/03/10 18:33:09 INFO Client:
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          client token: N/A
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          diagnostics: N/A
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          ApplicationMaster host:
>> > N/A
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          ApplicationMaster RPC
>> > port: -1
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          queue: default
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          start time:
>> 1457180833494
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          final status: UNDEFINED
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          tracking URL:
>> > http://storm0:8088/proxy/application_1457002628102_0043/
>> > 16/03/10 18:33:09 INFO SparkClientImpl:          user: stana
>> > 16/03/10 18:33:10 INFO SparkClientImpl: 16/03/10 18:33:10 INFO Client:
>> > Application report for application_1457002628102_0043 (state: FAILED)
>> > 16/03/10 18:33:10 INFO SparkClientImpl: 16/03/10 18:33:10 INFO Client:
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          client token: N/A
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          diagnostics:
>> Application
>> > application_1457002628102_0043 failed 1 times due to AM Container for
>> > appattempt_1457002628102_0043_000001 exited with  exitCode: -1000
>> > 16/03/10 18:33:10 INFO SparkClientImpl: For more detailed output,
>> > check application tracking
>> > page:http://storm0:8088/proxy/application_1457002628102_0043/Then,
>> > click on links to logs of each attempt.
>> > 16/03/10 18:33:10 INFO SparkClientImpl: Diagnostics:
>> > java.io.FileNotFoundException: File
>> >
>> >
>> file:/Users/stana/.m2/repository/org/apache/hive/hive-exec/2.0.0/hive-exec-2.0.0.jar
>> > does not exist
>> > 16/03/10 18:33:10 INFO SparkClientImpl: Failing this attempt. Failing
>> > the application.
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          ApplicationMaster host:
>> > N/A
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          ApplicationMaster RPC
>> > port: -1
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          queue: default
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          start time:
>> 1457180833494
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          final status: FAILED
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          tracking URL:
>> > http://storm0:8088/cluster/app/application_1457002628102_0043
>> > 16/03/10 18:33:10 INFO SparkClientImpl:          user: stana
>> > 16/03/10 18:33:10 INFO SparkClientImpl: Exception in thread "main"
>> > org.apache.spark.SparkException: Application
>> > application_1457002628102_0043 finished with failed status
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.yarn.Client.run(Client.scala:920)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.yarn.Client$.main(Client.scala:966)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.yarn.Client.main(Client.scala)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> >
>> >
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> >
>> >
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > java.lang.reflect.Method.invoke(Method.java:606)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> >
>> >
>> org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:672)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
>> > 16/03/10 18:33:10 INFO SparkClientImpl:         at
>> > org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
>> > 16/03/10 18:33:10 INFO SparkClientImpl: 16/03/10 18:33:10 INFO
>> > ShutdownHookManager: Shutdown hook called
>> > 16/03/10 18:33:10 INFO SparkClientImpl: 16/03/10 18:33:10 INFO
>> > ShutdownHookManager: Deleting directory
>> >
>> >
>> /private/var/folders/vt/cjcdhms903x7brn1kbh558s40000gn/T/spark-5b92ce20-b6f8-4832-8b15-5e98bd0e0705
>> > 16/03/10 18:33:10 WARN SparkClientImpl: Error while waiting for client
>> > to connect.
>> > java.util.concurrent.ExecutionException: java.lang.RuntimeException:
>> > Cancel client '5bda93c0-865b-48a8-b368-c2fcc30e81e8'. Error: Child
>> > process exited before connecting back
>> >         at
>> > io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:37)
>> > ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
>> >         at
>> >
>> org.apache.hive.spark.client.SparkClientImpl.<init>(SparkClientImpl.java:101)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hive.spark.client.SparkClientFactory.createClient(SparkClientFactory.java:80)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.RemoteHiveSparkClient.createRemoteClient(RemoteHiveSparkClient.java:98)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.RemoteHiveSparkClient.<init>(RemoteHiveSparkClient.java:94)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.HiveSparkClientFactory.createHiveSparkClient(HiveSparkClientFactory.java:63)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.session.SparkSessionImpl.open(SparkSessionImpl.java:55)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.session.SparkSessionManagerImpl.getSession(SparkSessionManagerImpl.java:114)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.exec.spark.SparkUtilities.getSparkSession(SparkUtilities.java:131)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.optimizer.spark.SetSparkReducerParallelism.process(SetSparkReducerParallelism.java:117)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:158)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.runJoinOptimizations(SparkCompiler.java:181)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.optimizeOperatorPlan(SparkCompiler.java:119)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:102)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10195)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:229)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:239)
>> > [hive-exec-2.0.0.jar:2.0.0]
>> >         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:479)
>> > [hive-exec-2.0.0.jar:?]
>> >         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:319)
>> > [hive-exec-2.0.0.jar:?]
>> >         at
>> > org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1255)
>> > [hive-exec-2.0.0.jar:?]
>> >         at
>> org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1301)
>> > [hive-exec-2.0.0.jar:?]
>> >         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1184)
>> > [hive-exec-2.0.0.jar:?]
>> >         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1172)
>> > [hive-exec-2.0.0.jar:?]
>> >         at
>> > org.apache.hadoop.hive.ql.TestHiveDriver.main(TestHiveDriver.java:41)
>> > [test-classes/:?]
>> > Caused by: java.lang.RuntimeException: Cancel client
>> > '5bda93c0-865b-48a8-b368-c2fcc30e81e8'. Error: Child process exited
>> > before connecting back
>> >         at
>> >
>> org.apache.hive.spark.client.rpc.RpcServer.cancelClient(RpcServer.java:179)
>> > ~[hive-exec-2.0.0.jar:2.0.0]
>> >         at
>> >
>> org.apache.hive.spark.client.SparkClientImpl$3.run(SparkClientImpl.java:450)
>> > ~[hive-exec-2.0.0.jar:2.0.0]
>> >         at java.lang.Thread.run(Thread.java:745) ~[?:1.7.0_67]
>> > 16/03/10 18:33:10 WARN SparkClientImpl: Child process exited with code
>> 1.
>> > FAILED: SemanticException Failed to get a spark session:
>> > org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create
>> > spark client.
>> > 16/03/10 18:33:10 ERROR Driver: FAILED: SemanticException Failed to
>> > get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException:
>> > Failed to create spark client.
>> > org.apache.hadoop.hive.ql.parse.SemanticException: Failed to get a
>> > spark session: org.apache.hadoop.hive.ql.metadata.HiveException:
>> > Failed to create spark client.
>> >         at
>> >
>> org.apache.hadoop.hive.ql.optimizer.spark.SetSparkReducerParallelism.process(SetSparkReducerParallelism.java:121)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:158)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.runJoinOptimizations(SparkCompiler.java:181)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.optimizeOperatorPlan(SparkCompiler.java:119)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:102)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10195)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:229)
>> >         at
>> >
>> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:239)
>> >         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:479)
>> >         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:319)
>> >         at
>> > org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1255)
>> >         at
>> org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1301)
>> >         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1184)
>> >         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1172)
>> >         at
>> > org.apache.hadoop.hive.ql.TestHiveDriver.main(TestHiveDriver.java:41)
>> >
>>
>
>

Reply via email to