我正在sqoop上运行命令
sqoop import --connect jdbc:mysql://localhost/hadoopguide --table widgets
我的sqoop版本:Sqoop 1.4.4.2.0.6.1-101
Hadoop - Hadoop 2.2.0.2.0.6.0-101
两者均取自hortonworks分销.HADOOP_HOME,HCAT_HOME,SQOOP_HOME等所有路径都已正确设置.我可以通过在sqoop中运行list-database,list-tables命令从mysql数据库获取数据库列表,表列表.甚至能够从--query'select*from widgets'获取数据; 但是当我使用--table选项低于错误.
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.(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
小智.. 6
指定--bindir
编译的代码和.jar
文件的位置.
如果没有这些参数,Sqoop会将生成的Java源文件放在当前工作目录中,并将编译后的.class
文件和.jar
文件放入/tmp/sqoop-
.
指定--bindir
编译的代码和.jar
文件的位置.
如果没有这些参数,Sqoop会将生成的Java源文件放在当前工作目录中,并将编译后的.class
文件和.jar
文件放入/tmp/sqoop-<username>/compile
.
使用该--bindir
选项并指向当前的工作目录.
sqoop import --bindir ./ --connect jdbc:mysql://localhost/hadoopguide --table widgets