Sqoop导入失败,UnsupportedClassVersionError [英] Sqoop import failed, UnsupportedClassVersionError

查看:268
本文介绍了Sqoop导入失败,UnsupportedClassVersionError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用sqoop将表从MySQL导入到HDFS。
使用的命令行是

I was trying to import table from MySQL to HDFS using sqoop. The commandline used is,

sqoop import --connect jdbc:mysql://192.168.10.452/qw_key_test --username qw -P --split-by qw_id -m 10 --target-dir /user/perf/qwperf/sqoops --verbose --table qw_perf_store_key

映射器因不支持的版本而失败,如下所示。

The mappers fails with Unsupported version as show below.

2013-05-22 17:46:24,165 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead
2013-05-22 17:46:24,534 WARN org.apache.hadoop.conf.Configuration: session.id is deprecated. Instead, use dfs.metrics.session-id
2013-05-22 17:46:24,535 INFO org.apache.hadoop.metrics.jvm.JvmMetrics: Initializing JVM Metrics with processName=MAP, sessionId=
2013-05-22 17:46:24,835 INFO org.apache.hadoop.util.ProcessTree: setsid exited with exit code 0
2013-05-22 17:46:24,839 INFO org.apache.hadoop.mapred.Task:  Using ResourceCalculatorPlugin : org.apache.hadoop.util.LinuxResourceCalculatorPlugin@191410e5
2013-05-22 17:46:25,278 INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1
2013-05-22 17:46:25,280 FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.UnsupportedClassVersionError: qw_perf_store_key : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:1510)
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1475)
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1569)
    at org.apache.sqoop.mapreduce.db.DBConfiguration.getInputClass(DBConfiguration.java:276)
    at org.apache.sqoop.mapreduce.db.DataDrivenDBInputFormat.createDBRecordReader(DataDrivenDBInputFormat.java:230)
    at org.apache.sqoop.mapreduce.db.DBInputFormat.createRecordReader(DBInputFormat.java:236)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:617)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:325)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)

任何想法?
使用CentOS 6.2,CDH4
JDK7_21,sqoop:Sqoop 1.4.1-cdh4.1.3(git commit id 0ff32b245c1d4c75e9f034414ebd8cfcdd140e7e)

Any Idea? Using CentOS 6.2, CDH4 JDK7_21, sqoop: Sqoop 1.4.1-cdh4.1.3 (git commit id 0ff32b245c1d4c75e9f034414ebd8cfcdd140e7e)

推荐答案

major.minor版本51.0表示JDK 1.7,该版本也确认您所说的内容。看来,JDK 1.7与Sqoop版本1.4.1-cdh4.1.3不兼容。根据此支持的CDH4 JDK要求,CDH 4.2和更高版本支持JDK 1.7。

The major.minor version 51.0 represents JDK 1.7 which also confirms what you stated. It appears that, the JDK 1.7 is not compatible with Sqoop version 1.4.1-cdh4.1.3. Per this supported JDK requirements for CDH4, JDK 1.7 is supported on CDH 4.2 and later versions.

使用< a href = http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.0/CDH4-Quick-Start/cdh4qs_topic_2_2.html rel = nofollow> Oracle JDK安装,然后运行sqoop。

Install and set the JAVA_HOME to JDK 1.6 using the Oracle JDK Installation and then run the sqoop.

这篇关于Sqoop导入失败,UnsupportedClassVersionError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆