Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Unable to access Local mysql databases (ooziedb and ambaridb) from Zeppelin Notebook

avatar

I am trying to access the local databases for ambari and oozie from Zeppelin Notebook. But I guess the mysql interpreter is not working properly. I am following this link to configure mysql interpreter https://zeppelin.apache.org/docs/0.6.1/interpreter/jdbc.html.

Input:

%jdbc(mysql)

show databases

Error Message:

com.mysql.jdbc.Driver class java.lang.ClassNotFoundException java.net.URLClassLoader.findClass(URLClassLoader.java:381) java.lang.ClassLoader.loadClass(ClassLoader.java:424) sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) java.lang.ClassLoader.loadClass(ClassLoader.java:357) java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:264) org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection(JDBCInterpreter.java:214) org.apache.zeppelin.jdbc.JDBCInterpreter.getStatement(JDBCInterpreter.java:275) org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:336) org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:442) org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94) org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:341) org.apache.zeppelin.scheduler.Job.run(Job.java:176) org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745)

1 ACCEPTED SOLUTION

avatar

The problem has been fixed. Zeppelin couldn't find some dependencies. I have followed the following link to fix it:

https://community.hortonworks.com/articles/75562/jdbc-hive-interpreter-failing-to-run-with-error-ja....

View solution in original post

7 REPLIES 7

avatar
Master Mentor

@Saad Siddique

As from the StackTrace it is not clear that "ClassNotFoundException" is coming for which class. But i suspect that it might be due to the JDBC Driver.

Can you please check if you have edited the dependencies artifact(ex. mysql:mysql-connector-java:5.1.38) in interpreter. I mean adding JDBC driver to the Zeppelin classpath.

.

avatar

Thanks for your help.

I have added the following jar in dependencies artifact: /usr/share/java/mysql-connector-java-5.1.29.jar

Still getting this error. Is this related to user and password information ?

java.lang.ClassNotFoundException: org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.zeppelin.jdbc.security.JDBCSecurityImpl.getAuthtype(JDBCSecurityImpl.java:66) at org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection(JDBCInterpreter.java:217) at org.apache.zeppelin.jdbc.JDBCInterpreter.getStatement(JDBCInterpreter.java:275) at org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:336) at org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:442) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:94) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:341) at org.apache.zeppelin.scheduler.Job.run(Job.java:176) at org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 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)

avatar
Master Mentor

@Saad Siddique

Can you please double check if you have added the following properties to core-site.xml. Specially "hadoop.proxyuser.zeppelin.users"

hadoop.proxyuser.zeppelin.users=* 
hadoop.proxyuser.zeppelin.hosts=*
hadoop.proxyuser.zeppelin.groups=*

.

avatar
Master Mentor

@Saad Siddique

Additionally the "UserGroupInformation" class is present inside the "hadoop-auth.jar" file. Hence please check & copy this JAR to "/usr/hdp/2.5.0.0-1245/zeppelin/interpreter/jdbc" ( in your case the '2.5.0.0-1245' version might be different)

Then restart the Zeppelin.

avatar

@Jay SenSharma

Thanks for your help. I did both of the above mentioned steps but still same error is showing up. Zeppelin is installed on the edge node in a 14 node cluster. Regarding mysql interpreter, following is the configuration:

mysql.driver-->com.mysql.jdbc.Driver

mysql.password

mysql.url-->jdbc:mysql://localhost:3306/

mysql.user-->root

avatar

@Jay SenSharma

Im still not able to access. Do you have anything else in mind for me to try.

Thanks

avatar

The problem has been fixed. Zeppelin couldn't find some dependencies. I have followed the following link to fix it:

https://community.hortonworks.com/articles/75562/jdbc-hive-interpreter-failing-to-run-with-error-ja....