无法在SQOOP中创建JOB

时间:2014-07-16 18:00:00

标签: java hadoop sqoop sqoop2

我在SQOOP中运行了以下片段,最后在代码下面列出了错误。

bin / sqoop job --create myjob import --connect jdbc:mysql:// localhost / test -username root -password root --table patient -m 1 --target-dir / Sqoop / MRJob < /强>

  

administrator @ ubuntu:〜/ sqoop-1.4.4.bin__hadoop-1.0.0 $ bin / sqoop job    - 创建myjob导入--connect jdbc:mysql:// localhost / test -username root -password root --table patient -m 1 --target-dir / Sqoop / MRJob   警告:/ usr / lib / hcatalog不存在! HCatalog作业将失败。   请将$ HCAT_HOME设置为HCatalog安装的根目录。   警告:不推荐使用$ HADOOP_HOME。

     

14/07/16 23:23:36 ERROR tool.BaseSqoopTool:解析参数时出错   for job:14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别   参数:import 14/07/16 23:23:36 ERROR tool.BaseSqoopTool:   无法识别的论点: - connect 14/07/16 23:23:36错误   tool.BaseSqoopTool:无法识别的参数:jdbc:mysql:// localhost / test   14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:   -username 14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:root 14/07/16 23:23:36 ERROR tool.BaseSqoopTool:   无法识别的论点:-password 14/07/16 23:23:36错误   tool.BaseSqoopTool:无法识别的参数:root 14/07/16 23:23:36   ERROR tool.BaseSqoopTool:无法识别的参数: - 表14/07/16   23:23:36 ERROR tool.BaseSqoopTool:无法识别的论点:耐心   16/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:-m   14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:1   14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:   --target-dir 14/07/16 23:23:36 ERROR tool.BaseSqoopTool:无法识别的参数:/ Sqoop / MRJob

     

尝试--help用于使用说明。用法:sqoop工作[GENERIC-ARGS]   [JOB-ARGS] [ - [] [TOOL-ARGS]]

     

作业管理参数: - 创建一个新的   已保存的作业 - 删除已删除已保存的作业--exec                 运行已保存的作业--help
  打印使用说明 - 列表已保存   jobs --meta-connect指定JDBC连接字符串   该                                   metastore --show显示已保存作业的参数--verbose
  工作时打印更多信息

     

通用Hadoop命令行参数:(必须在任何特定于工具之前   参数)支持的通用选项是   -conf指定应用程序配置文件   -D使用给定属性的值   -fs指定namenode   -jt指定作业跟踪器   -files指定要复制到map reduce簇的逗号分隔文件   -libjars指定要包含在类路径中的逗号分隔的jar文件。   -archives指定要在计算机上取消存档的逗号分隔存档。

     

一般命令行语法是bin / hadoop命令[genericOptions]   [commandOptions]

有人可以帮我解决这个问题吗?

先谢谢你的帮助。

注意:我的SQL相关词典是完美的。 此致

3 个答案:

答案 0 :(得分:10)

您需要在sqoop命令中进行一些小改动。正确的语法是

bin/sqoop job --create myjob -- import --connect jdbc:mysql://localhost/test --username root --password root --table PATIENT -m 1 --target-dir /Sqoop/MRJob

[注意:“ - ”和导入前的空格。其次,在用户名和密码之前使用POSIX表示法“ - ”。第三,使用大写来指定表名]它应该工作。

标准很少:使用选项文件来存储凭据(用户名,密码和连接字符串),并将其作为参数传递给 - options-file 。希望这可以帮助。

答案 1 :(得分:1)

尝试写下以下命令。

gopal@ubuntu:~$ `sqoop job --create JobName -- import --connect jdbc:mysql://localhost/DatabaseName --table tablename -m1 --target-dir /OutPutDirectoryName;`

答案 2 :(得分:0)

最好在.bashrc中设置SQOOP_PATH并运行

user@hostname:~$ gedit .bashrc

在.bashrc文件中添加以下行

export SQOOP_HOME=/usr/lib/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

现在,您可以通过

运行sqoop作业
sqoop import --connect jdbc:mysql://localhost/test --username root --password root --table patient --m 1 --target-dir /Sqoop/MRJob