我尝试使用以下命令将虚拟表(城市)导入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
答案 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用户。