2015-01-29 4 views
-2

hadoop map reduce를 사용하여 기본 mysql 데이터베이스에서 데이터를 읽으려고하지만 hadoop에 mysql jar 파일을 추가 한 후에도이 예외가 발생하는 경우/lib 폴더에 있습니다.java.lang.RuntimeException : java.lang.ClassNotFoundException : com.mysql.jdbc.Driver

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.setConf(DBInputFormat.java:169) 
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:70) 
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:130) 
    at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:470) 
    at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:490) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387) 
    at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1218) 
    at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1215) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1489) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1215) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1236) 
    at DBCountPageView.run(DBCountPageView.java:227) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 
    at DBCountPageView.main(DBCountPageView.java:236) 
    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:601) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.getConnection(DBInputFormat.java:195) 
    at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.setConf(DBInputFormat.java:163) 
    ... 21 more 
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:188) 
    at org.apache.hadoop.mapreduce.lib.db.DBConfiguration.getConnection(DBConfiguration.java:148) 
    at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.getConnection(DBInputFormat.java:189) 
    ... 22 more 
+0

구체적인 문제를 명확히하거나 세부 정보를 추가하여 필요한 것을 정확하게 강조하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. – Vivek

+0

javenc.driver에 maven add dependency를 사용하고 있다면 othervise가 jar 파일을 다운로드하여 classpath에 추가하십시오. – Milkmaid

+0

maven을 사용하지 않습니다 – PMR

답변

1

너는 mysql-connector-java-version-bin.jar을 다운로드하고 classpath를 추가해야합니다. 자세한 내용은 MySQL documentation을 참조하십시오.

+0

jar 파일을 클래스 경로에 추가했습니다. – PMR

+0

어디에 추가 했습니까? 응용 프로그램을 어떻게 실행합니까? – Jens

+0

hadoop/lib 폴더에 jar 파일을 추가했으며 내 응용 프로그램을 실행하고 있습니다. hadoop jar myapp.jar MainClass -libjars – PMR

관련 문제