Sqoop无法导入任何行

时间:2014-09-30 18:35:35

标签: sql hadoop sqoop

我尝试使用以下命令将虚拟表(城市)导入HDFS:

$ sqoop import --connect jdbc:oracle:thin:@10.0.2.15:1521/XE --username system --password root --table cities --columns country,city --split-by id --target-dir /sqoop/output1

但没有导入任何行。

由Sqoop生成的SQL语句是

SELECT t.* FROM cities t WHERE 1=0

这是奇怪的,因为1永远不会等于零。

我正在跑步:

Hadoop 2.4.1
Sqoop 1.4.5

2 个答案:

答案 0 :(得分:0)

Josef尝试删除拆分并将reducer(-m参数)设置为1.如果一切正常,则意味着您的拆分器坏了。我也遇到格式jdbc:oracle:thin:@10.0.2.15:1521/XE的连接字符串问题(认为它应该是jdbc:oracle:thin:@10.0.2.15:1521:XE或jdbc:oracle:thin:@ // 10.0.2.15:1521/XE - 请阅读此JDBC )。但对我来说,只有这种格式有效:

jdbc:oracle:thin:@(description=(address=(protocol=tcp)(host=10.0.2.15)(port=1521))(connect_data=(service_name=XXXXXX)))

答案 1 :(得分:0)

声明与"其中1 = 0"生成只是为了获取列的列表。实际选择稍后在MR作业中完成。

问题在于"城市"表格不属于SYSTEM用户。