我正在尝试运行一个sqoop作业。我正在使用sqoop版本 Sqoop 1.4.6-cdh5.8.0 而且它不适用于此版本
使用Sqoop 1.4.5-cdh5.4.0可以正常工作。
sqoop job --create E8 -- import --connect jdbc:mysql://localhost/test -- username root --password cloudera --table NAME --hive-import -m1
sqoop job --exec E8 -- --table dummy1
是否有任何语法问题。如果有人可以提供帮助。
Warning: /usr/lib/sqoop/../accumulo does not exist! Accumulo
imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
16/12/23 04:48:10 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-
cdh5.8.0
Enter password:
16/12/23 04:48:19 INFO manager.MySQLManager: Preparing to use a
MySQL streaming resultset.
16/12/23 04:48:19 INFO tool.CodeGenTool: Beginning code generation
16/12/23 04:48:20 INFO manager.SqlManager:
Executing SQL statement: SELECT t.* FROM `NAME` AS t LIMIT 1
16/12/23 04:48:20 ERROR manager.SqlManager: Error executing
statement:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table
'test.NAME' doesn't exist
答案 0 :(得分:3)
假设您已经完成了基本检查(比如手动将参数放入作业并执行),我会说语法看起来是正确的。
在查看the doc时,提到可以覆盖属性。不幸的是,他们只显示了一个添加属性的示例,并且没有显示重写属性。
搜索引导我this open issue,这让我相信有一个错误会阻止你正确地覆盖参数。
不幸的是,我没有看到解决方案,有些事情可能有助于解决问题:
答案 1 :(得分:2)
这似乎是sqoop-1.4.6-cdh5.8.0和sqoop-1.4.6-cdh5.9.0中的错误
然而,正如您所提到的,这与1.4.5版本一起正常工作。
以下解决方案对我有用:
1)从http://repo.spring.io/libs-release/org/apache/sqoop/sqoop/1.4.5-cdh5.4.0/下载'sqoop-1.4.5-cdh5.4.0.jar'
2)将'sqoop-1.4.6-cdh5.8.0.jar'替换为'sqoop-1.4.5-cdh5.4.0.jar'并修改符号链接'sqoop.jar'以指向'sqoop-1.4 0.5-cdh5.4.0.jar'
3)虽然我不支持降级,但仍然可以作为魅力。