我正在尝试运行sqoop作业。我正在使用sqoop版本sqoop 1.4.6-cdh5.8.0,但它不适用于此版本
它与sqoop1.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
2条答案
按热度按时间bqf10yzr1#
假设您已经做了基本的检查(比如在作业中手动放置参数并执行它),我会说语法看起来是正确的。
在查看文档时,提到可以覆盖属性。不幸的是,它们只显示添加属性的示例,而不显示重写属性的示例。
通过搜索,我找到了这个公开的问题,这让我相信有一个bug阻止您正确地重写参数。
不幸的是,我没有找到解决这个问题的方法,有些方法可能有助于解决这个问题:
在不同级别上参数化
使用语法(如果它是第一个/最后一个override元素,会有帮助吗?如果您尝试重写并添加一个用户,如果您尝试重写query参数而不是table参数,会有帮助吗…)
hmtdttj42#
这似乎是sqoop-1.4.6-cdh5.8.0和sqoop-1.4.6-cdh5.9.0中的一个bug
但是,正如您所提到的,它在1.4.5版本中工作正常。
以下解决方案对我有效:
1) 从下载'sqoop-1.4.5-cdh5.4.0.jar'http://repo.spring.io/libs-release/org/apache/sqoop/sqoop/1.4.5-cdh5.4.0/
2) 将“sqoop-1.4.6-cdh5.8.0.jar”替换为“sqoop-1.4.5-cdh5.4.0.jar”,并修改符号链接“sqoop.jar”以指向“sqoop-1.4.5-cdh5.4.0.jar”
3) 虽然我不支持降级,但这仍然很有魅力。