首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法导入表

无法导入表
EN

Stack Overflow用户
提问于 2014-02-06 10:12:24
回答 5查看 5.1K关注 0票数 3

我在sqoop上运行命令。

代码语言:javascript
运行
复制
sqoop import --connect jdbc:mysql://localhost/hadoopguide --table widgets

我的sqoop版本:Sqoop 1.4.4.2.0.6.1-101

Hadoop 2.2.0.2.0.6.0-101

都是从霍顿工厂的分店拿来的。所有的路径,如HADOOP_HOME,HCAT_HOME,SQOOP_HOME都是正确设置的。通过在sqoop中运行list-database、list -table命令,我可以从mysql数据库中获得数据库列表、表列表。甚至能够从-查询'select * from‘获得数据;但是当我使用-table选项时出错。

代码语言:javascript
运行
复制
14/02/06 14:02:17 WARN mapred.LocalJobRunner: job_local177721176_0001
java.lang.Exception: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class widgets not found
        at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:403)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class widgets not found
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1720)
        at org.apache.sqoop.mapreduce.db.DBConfiguration.getInputClass(DBConfiguration.java:394)
        at org.apache.sqoop.mapreduce.db.DataDrivenDBInputFormat.createDBRecordReader(DataDrivenDBInputFormat.java:233)
        at org.apache.sqoop.mapreduce.db.DBInputFormat.createRecordReader(DBInputFormat.java:236)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.<init>(MapTask.java:491)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
        at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:235)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: Class widgets not found
        at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1626)
        at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1718)
        ... 13 more
EN

回答 5

Stack Overflow用户

发布于 2014-05-08 04:56:01

指定编译后的代码和--bindir文件所在的位置。

如果没有这些参数,Sqoop将把生成的Java源文件放在当前工作目录中,并将编译后的.class文件和.jar文件放在/tmp/sqoop-<username>/compile中。

票数 6
EN

Stack Overflow用户

发布于 2015-05-20 17:04:57

使用--bindir选项并指向当前工作目录。

代码语言:javascript
运行
复制
sqoop import --bindir ./ --connect jdbc:mysql://localhost/hadoopguide --table widgets
票数 6
EN

Stack Overflow用户

发布于 2014-02-07 11:01:02

当我将.class文件从/tmp/ sqoop -hduser/编译/复制到hdfs /home/hduser/以及从运行sqoop的当前工作目录复制到hdfs/home/hduser/之后,问题就得到了解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21599785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档