You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Sahil Takiar (JIRA)" <ji...@apache.org> on 2017/11/09 16:55:01 UTC

[jira] [Updated] (HIVE-16930) HoS should verify the value of Kerberos principal and keytab file before adding them to spark-submit command parameters

     [ https://issues.apache.org/jira/browse/HIVE-16930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sahil Takiar updated HIVE-16930:
--------------------------------
    Fix Version/s: 2.3.2

> HoS should verify the value of Kerberos principal and keytab file before adding them to spark-submit command parameters
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-16930
>                 URL: https://issues.apache.org/jira/browse/HIVE-16930
>             Project: Hive
>          Issue Type: Bug
>          Components: Spark
>            Reporter: Yibing Shi
>            Assignee: Yibing Shi
>             Fix For: 3.0.0, 2.4.0, 2.3.2
>
>         Attachments: HIVE-16930.1.patch
>
>
> When Kerberos is enabled, Hive CLI fails to run Hive on Spark queries:
> {noformat}
> >hive -e "set hive.execution.engine=spark; create table if not exists test(a int); select count(*) from test" --hiveconf hive.root.logger=INFO,console > /var/tmp/hive_log.txt > /var/tmp/hive_log_2.txt 
> 17/06/16 16:13:13 [main]: ERROR client.SparkClientImpl: Error while waiting for client to connect. 
> java.util.concurrent.ExecutionException: java.lang.RuntimeException: Cancel client 'a5de85d1-6933-43e7-986f-5f8e5c001b5f'. Error: Child process exited before connecting back with error log Error: Cannot load main class from JAR file:/tmp/spark-submit.7196051517706529285.properties 
> Run with --help for usage help or --verbose for debug output 
>         at io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:37) 
>         at org.apache.hive.spark.client.SparkClientImpl.<init>(SparkClientImpl.java:107) 
>         at org.apache.hive.spark.client.SparkClientFactory.createClient(SparkClientFactory.java:80) 
>         at org.apache.hadoop.hive.ql.exec.spark.RemoteHiveSparkClient.createRemoteClient(RemoteHiveSparkClient.java:100) 
>         at org.apache.hadoop.hive.ql.exec.spark.RemoteHiveSparkClient.<init>(RemoteHiveSparkClient.java:96) 
>         at org.apache.hadoop.hive.ql.exec.spark.HiveSparkClientFactory.createHiveSparkClient(HiveSparkClientFactory.java:66) 
>         at org.apache.hadoop.hive.ql.exec.spark.session.SparkSessionImpl.open(SparkSessionImpl.java:62) 
>         at org.apache.hadoop.hive.ql.exec.spark.session.SparkSessionManagerImpl.getSession(SparkSessionManagerImpl.java:114) 
>         at org.apache.hadoop.hive.ql.exec.spark.SparkUtilities.getSparkSession(SparkUtilities.java:111) 
>         at org.apache.hadoop.hive.ql.exec.spark.SparkTask.execute(SparkTask.java:97) 
>         at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160) 
>         at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) 
>         at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1972) 
>         at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1685) 
>         at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1421) 
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1205) 
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1195) 
>         at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:220) 
>         at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:172) 
>         at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:383) 
>         at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:318) 
>         at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:720) 
>         at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:693) 
>         at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:628) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
>         at java.lang.reflect.Method.invoke(Method.java:606) 
>         at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
>         at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 
> Caused by: java.lang.RuntimeException: Cancel client 'a5de85d1-6933-43e7-986f-5f8e5c001b5f'. Error: Child process exited before connecting back with error log Error: Cannot load main class from JAR file:/tmp/spark-submit.7196051517706529285.properties 
> Run with --help for usage help or --verbose for debug output 
>         at org.apache.hive.spark.client.rpc.RpcServer.cancelClient(RpcServer.java:179) 
>         at org.apache.hive.spark.client.SparkClientImpl$3.run(SparkClientImpl.java:490) 
>         at java.lang.Thread.run(Thread.java:745) 
> 17/06/16 16:13:13 [Driver]: WARN client.SparkClientImpl: Child process exited with code 1 
> {noformat} 
> In the log, below message shows up:
> {noformat}
> 17/06/16 16:13:12 [main]: INFO client.SparkClientImpl: Running client driver with argv: /usr/lib/spark/bin/spark-submit --executor-cores 1 --executor-memory 268435456 --principal hive/nightly58-1.gce.cloudera.com@GCE.CLOUDERA.COM --keytab  --properties-file /tmp/spark-submit.7196051517706529285.properties --class org.apache.hive.spark.client.RemoteDriver /usr/lib/hive/lib/hive-exec-1.1.0-cdh5.8.5.jar --remote-host nightly58-1.gce.cloudera.com --remote-port 36074 --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 --conf hive.spark.client.rpc.server.address=null
> {noformat}
> There isn't any value after parameter "--keytab", which makes the spark-submit command syntax  wrong. 
> Hive should verifies the setting before use it.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)