- Subscribe to RSS Feed
- Mark Question as New
- Mark Question as Read
- Float this Question for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
Hive query failed over JDBC.
- Labels:
-
Apache Hadoop
-
Apache Hive
-
Apache Tez
Created ‎07-27-2016 11:04 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am working on hive JDBC client.I am able to run normal queries like select * from table, show database etc. But when I am trying to run queries like insert into ,select count(*) it simply fails with following exception.
java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:282) at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:378) at TablePerformance.countItems(TablePerformance.java:51) at TablePerformance.main(TablePerformance.java:63)
I have checked hive server logs and it also shows same error message as above. Is there any way I can set hive.execution.engine over jdbc connectivity ?
Any kind of help would be greatly appreciated.
Created ‎07-29-2016 07:42 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I solved it by passing the below connection objects with my user name.
con = DriverManager.getConnection("jdbc:hive2://host:10000/default?hive.execution.engine=tez", "<user-name>","");
Thanks you all of you for your help and advice.
Created ‎07-27-2016 11:17 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's hard to tell what the root cause is based on the above error.
Can you provide yarn application log? You can get it by running 'yarn logs -applicationId [your application_id]'
Created ‎07-28-2016 12:34 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Takahiko Saito Stack trace just after jdbc query failure.
Container exited with a non-zero exit code 127 Failing this attempt. Failing the application. 2016-07-28 00:11:22,769 INFO rmapp.RMAppImpl (RMAppImpl.java:handle(767)) - application_1466711437570_0051 State change from FINAL_SAVING to FAILED 2016-07-28 00:11:22,769 WARN resourcemanager.RMAuditLogger (RMAuditLogger.java:logFailure(323)) - USER="girish" OPERATION=Application Finished - Failed TARGET=RMAppManager RESULT=FAILURE DESCRIPTION=App failed with state: FAILED PERMISSIONS=Application application_1466711437570_0051 failed 2 times due to AM Container for appattempt_1466711437570_0051_000002 exited with exitCode: 127 For more detailed output, check application tracking page then click on links to logs of each attempt. Diagnostics: Exception from container-launch. Container id: container_e02_1466711437570_0051_02_000001 Exit code: 127 Exception message: /bin/bash: /mnt/resource/usercache/girish/appcache/application_1466711437570_0051/container_e02_1466711437570_0051_02_000001/default_container_executor_session.sh: No such file or directory Stack trace: ExitCodeException exitCode=127: /bin/bash: /mnt/resource/usercache/girish/appcache/application_1466711437570_0051/container_e02_1466711437570_0051_02_000001/default_container_executor_session.sh: No such file or directory at org.apache.hadoop.util.Shell.runCommand(Shell.java:576) at org.apache.hadoop.util.Shell.run(Shell.java:487) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:753) at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:303) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Container exited with a non-zero exit code 127 Failing this attempt. Failing the application. APPID=application_1466711437570_0051 2016-07-28 00:11:22,769 INFO capacity.ParentQueue (ParentQueue.java:removeApplication(372)) - Application removed - appId: application_1466711437570_0051 user: "girish" leaf-queue of parent: root #applications: 0 2016-07-28 00:11:23,446 INFO resourcemanager.RMAuditLogger (RMAuditLogger.java:logSuccess(170)) - USER="girish" IP=10.0.0.5 OPERATION=Kill Application Request TARGET=ClientRMService RESULT=SUCCESS APPID=application_1466711437570_0051 CALLERCONTEXT=HIVE_SSN_ID:d8a476e9-84c4-4633-a980-3f8a9dd7dac8
Created ‎07-28-2016 10:54 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the stack trace. Now we know why it failed. It's because the container cannot be launched because default_container_executor_session.sh doesn't exist at /mnt/resource/usercache/girish/appcache/application_1466711437570_0051/container_e02_1466711437570_0051_02_000001
As to why this happened, that still needs to be investigated. Will update if I find something.
Created ‎07-29-2016 06:17 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Girish Chaudhari How much memory do you have on your cluster (on each node)?
A simple select statement is simply able to stream results back to JDBC client. count() however, needs to work and requires memory and I am just wondering what is assigned here?
Created ‎07-29-2016 06:31 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@mqureshi I am able to run same query through hive view and hive cli but not through jdbc .
Cluster configuration is as below:
Name node and Secondary node (8 Core / 28 GB RAM each) 3 Data Nodes (8 Core / 28 GB RAM each)
I tried to set hive.execution.engine=tez by appending it to jdbc connect url but it doesn't work.
Created ‎07-29-2016 07:42 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I solved it by passing the below connection objects with my user name.
con = DriverManager.getConnection("jdbc:hive2://host:10000/default?hive.execution.engine=tez", "<user-name>","");
Thanks you all of you for your help and advice.
Created ‎03-03-2018 07:41 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear @Girish Chaudhari,
Unfortunately, I have faced this issue as well, but I could not understand the BEST ANSWER submitted by you. If it is possible, please help me.
thanks a million,
Ali
Created ‎03-05-2018 06:44 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ali,
Did you tried to pass "hive.execution.engine=tez" as session config property in JDBC connection URL. Please try that and let me if that works.
e.g.
con = DriverManager.getConnection("jdbc:hive2://host:10000/default?hive.execution.engine=tez")
Created ‎03-07-2018 05:34 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I had also been facing that issue in hive, but I solved by setting "use.hive.interactive.mode" to true and restart the Hive View to run in llap mode.
thank you
