Hadoop sqoop导入表示可以找到类

Hadoop sqoop导入表示可以找到类,hadoop,sqoop,Hadoop,Sqoop,我在macbook上安装了Sqoop1,并编写了ant软件包。然后,我将HADOOP_HOME和HADOOP_MAPRED_HOME设置为/usr/local/HADOOP中现有的HADOOP HOME 当我运行import命令时 bin/sqoop import --options-file /path/sqoop_params.txt --table recipe 其中sqoop_params.txt包含用户名、密码和postgres url 上面说 java.lang.Exception

我在macbook上安装了Sqoop1,并编写了ant软件包。然后,我将HADOOP_HOME和HADOOP_MAPRED_HOME设置为/usr/local/HADOOP中现有的HADOOP HOME

当我运行import命令时

bin/sqoop import --options-file /path/sqoop_params.txt --table recipe
其中sqoop_params.txt包含用户名、密码和postgres url

上面说

java.lang.Exception: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class recipe not found
    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
为什么sqoop会将表名误认为是java类

Sqoop生成MapReduce可以使用的代码。要查看生成的代码,可以使用查看生成的Java文件。它应该与您通常导入的表具有相同的名称。可以使用-class name更改名称

使用LocalJobRunner时,生成的类有时不会成为类路径的一部分。可以使用-libjars将jar传递给MapReduce作业

例如:

生成jar:sqoop codegen-connect jdbc:mysql://example.com/sqoop -用户名sqoop-密码sqoop-表tbl

在输出中查找以下行:Writing jar file:/tmp/sqoop abe/compile/4182409b0f559d7259a32a950627e1aa/tbl.jar

在导入命令中使用上述jar:sqoop import-fs local-jt local-libjars/tmp/sqoop abe/compile/4182409b0f559d7259a32a950627e1aa/tbl.jar-连接jdbc:mysql://example.com/sqoop -用户名sqoop-密码sqoop-表tbl

有关使用本地跑步器的更多信息,请查看此

除非必须,否则我不会使用本地mapreduce。检查您的mapreduce配置,确保mapreduce.framework.name未设置为本地。有关这方面的更多信息,请查看

Sqoop生成MapReduce可以使用的代码。要查看生成的代码,可以使用查看生成的Java文件。它应该与您通常导入的表具有相同的名称。可以使用-class name更改名称

使用LocalJobRunner时,生成的类有时不会成为类路径的一部分。可以使用-libjars将jar传递给MapReduce作业

例如:

生成jar:sqoop codegen-connect jdbc:mysql://example.com/sqoop -用户名sqoop-密码sqoop-表tbl

在输出中查找以下行:Writing jar file:/tmp/sqoop abe/compile/4182409b0f559d7259a32a950627e1aa/tbl.jar

在导入命令中使用上述jar:sqoop import-fs local-jt local-libjars/tmp/sqoop abe/compile/4182409b0f559d7259a32a950627e1aa/tbl.jar-连接jdbc:mysql://example.com/sqoop -用户名sqoop-密码sqoop-表tbl

有关使用本地跑步器的更多信息,请查看此

除非必须,否则我不会使用本地mapreduce。检查您的mapreduce配置,确保mapreduce.framework.name未设置为本地。有关这方面的更多信息,请查看


解决这个问题的另一个更简单的方法是在scoop上指定bindir选项,它告诉我们在哪里保存生成的类

--bindir ./ 

解决这个问题的另一个更简单的方法是在scoop上指定bindir选项,它告诉我们在哪里保存生成的类

--bindir ./ 

我遇到了同样的错误。请找到以下解决方案:-

使用下面的命令

在-bindir选项下,给出$SQOOP_HOME/lib的路径


-bindir通知sqoop从指定的位置拾取jar文件

我遇到了同样的错误。请找到以下解决方案:-

使用下面的命令

在-bindir选项下,给出$SQOOP_HOME/lib的路径


-bindir通知sqoop从指定的位置拾取jar文件

Sqoop您正在使用的版本和引用的文档使用-options文件命令。Sqoop您正在使用的版本和引用的文档使用-options文件命令。