从 vertica 导入 sqoop 失败
Posted
技术标签:
【中文标题】从 vertica 导入 sqoop 失败【英文标题】:sqoop import from vertica failed 【发布时间】:2016-02-04 16:52:45 【问题描述】:我正在尝试使用 sqoop2 将数据集从 Vertica 导入 HDFS。
我在 sqoop 机器上运行以下查询以将数据从 Vertica v6.0.1-7 导入 hdfs
sqoop import -m 1 --driver com.vertica.jdbc.Driver --connect "jdbc:vertica://10.10.10.10:5433/MYDB" --password dbpassword --username dbusername --target-dir "/user/my/hdfs/dir" --verbose --query 'SELECT * FROM ORDER_V2 LIMIT 10;'
但我在这里遇到了一些错误,
16/02/03 10:33:17 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Query [SELECT * FROM ORDER_V2 LIMIT 10;] must contain '$CONDITIONS' in WHERE clause.
at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:300)
at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1833)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1645)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:96)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
考虑到两台机器上的用户名不同,任何人都知道怎么做。
【问题讨论】:
您阅读手册了吗? sqoop.apache.org/docs/1.4.1-incubating/… 我刚刚想通了。谢谢 【参考方案1】:添加vertica_5.1.4_jdk_5.jar到/var/lib/sqoop之后
添加WHERE $CONDITIONS
解决了这个问题
sqoop import -m 1 --driver com.vertica.jdbc.Driver --connect "jdbc:vertica://10.10.10.10:5433/MYDB" --password dbpassword --username dbusername --target-dir "/user/my/hdfs/dir" --verbose --query 'SELECT * FROM ORDER_V2 WHERE $CONDITIONS;'
【讨论】:
以上是关于从 vertica 导入 sqoop 失败的主要内容,如果未能解决你的问题,请参考以下文章
Sqoop - 错误工具.ImportTool:导入失败:尝试从 SQL Server 导入时无法转换 SQL 类型 2005