Support Questions
Find answers, ask questions, and share your expertise

Using Hive through JDBCInterpreter in Zeppelin

Solved Go to solution

Using Hive through JDBCInterpreter in Zeppelin

Explorer

I am trying to perform a "show tables;" on Hive using the JDBCInterpreter. I have set up all usernames, passwords and URLs for the interpreter und added hive-jdbc, hadoop-common and hive-shims as dependencies. In the UI I do not get an explicit error - just no result. In the .out log file I can see following:

23:58:51.342 [pool-3-thread-2] ERROR org.apache.zeppelin.jdbc.JDBCInterpreter - zeppelin will be ignored. driver.zeppelin and zeppelin.url is mandatory. 23:58:51.349 [pool-3-thread-2] ERROR org.apache.zeppelin.scheduler.Job - Job failed java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isAnyEmpty([Ljava/lang/CharSequence;)Z at org.apache.zeppelin.jdbc.JDBCInterpreter.open(JDBCInterpreter.java:170) ~[zeppelin-jdbc-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.0-1245] at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:69) ~[zeppelin-interpreter-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.0-1245] at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:93) ~[zeppelin-interpreter-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.0-1245] at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:341) ~[zeppelin-interpreter-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.$ at org.apache.zeppelin.scheduler.Job.run(Job.java:176) [zeppelin-interpreter-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.0-1245] at org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162) [zeppelin-interpreter-0.6.0.2.5.0.0-1245.jar:0.6.0.2.5.0.0-1245] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_60] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_60] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_60] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_60] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
1 ACCEPTED SOLUTION

Accepted Solutions

Re: Using Hive through JDBCInterpreter in Zeppelin

Contributor

@Sebastian Hätälä

Do your cluster have connection to the internet ? I had the same issue and got to know that zeppelin download required jars using maven according to the versions of the component. So we need to have compatible jars, for example I did download jars from maven manually but they were of latest version and surprisingly it didn't work and I have to download older jars.

View solution in original post

8 REPLIES 8

Re: Using Hive through JDBCInterpreter in Zeppelin

@Sebastian Hätälä

Can you provide the string you are using for the JDBC interpreter? By default, the %jdbc interpreter is intended to be used with Postgres. Check your interpreter settings. You may have to use %jdbc(hive) as your interpreter string.

Re: Using Hive through JDBCInterpreter in Zeppelin

Explorer

Hi Michael, I did try %hive and %jdbc(hive) both with the same result.

Re: Using Hive through JDBCInterpreter in Zeppelin

@Sebastian can you take a screenshot or copy and paste your interpreter settings pls?

Re: Using Hive through JDBCInterpreter in Zeppelin

Explorer

I did try the following two, both with the same result:

jdbc:hive2://zkserver1.company.com:2181,zkserver2.company.com:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
jdbc:hive2://hiveserver2.company.com:10000

Re: Using Hive through JDBCInterpreter in Zeppelin

Contributor

@Sebastian Hätälä Did you manage to solve it ?

Re: Using Hive through JDBCInterpreter in Zeppelin

@Sebastian

Please post which HDP version are you on? Also by any chance, is your cluster wire encrypted? Also please post your interpreter settings snapshot as mentioned in one of the earlier comments

Re: Using Hive through JDBCInterpreter in Zeppelin

Contributor

@Sebastian Hätälä

Do your cluster have connection to the internet ? I had the same issue and got to know that zeppelin download required jars using maven according to the versions of the component. So we need to have compatible jars, for example I did download jars from maven manually but they were of latest version and surprisingly it didn't work and I have to download older jars.

View solution in original post

Re: Using Hive through JDBCInterpreter in Zeppelin

@Sebastian Hätälä

Were you able to resolve this, what is the version of hive-jdbc, hadoop-common and hive-shims are you using ?

java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isAnyEmpty Sounds like issue with some jar version. I use following as dependencies; let me know if this works.

org.apache.hive:hive-jdbc:2.0.1

org.apache.hadoop:hadoop-common:2.7.2

org.apache.hive.shims:hive-shims-0.23:2.1.0