我在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相关词典是完美的。 此致
答案 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