Sqoop自由格式查询导致Hue / Oozie中无法识别的参数

时间:2014-09-10 16:35:19

标签: hadoop sqoop oozie hue

我正在尝试使用自由格式查询运行sqoop命令,因为我需要执行聚合。它是通过Hue界面提交的,作为Oozie工作流程。以下是命令和查询的缩小版本。处理命令时," - 查询"语句(括在引号中)导致查询的每个部分都被解释为无法识别的参数,如命令后面的错误所示。此外,目标目录被误解释。是什么阻止了它的运行,以及可以采取哪些措施来解决它? $ {env}和$ {shard}变量正在被正确解析,如上一条错误消息所示。

谢谢!

===========

import --connect jdbc:mysql:// irbasedw- $ {shard} .db.xxxx.net:3417 / irbasedw_ $ {shard}?dontTrackOpenResources = true& defaultFetchSize = 10000& useCursorFetch = true --username iretl - -password-file /irdw/${env}/lib/.passwordBaseDw --table agg_daily_activity_performance_stage -m 1 --query" SELECT SUM(click_count)FROM agg_daily_activity_performance_stage WHERE \ $ CONDITIONS GROUP BY 1" --target-dir / irdw / $ {env} / legacy / agg / activity_performance / text / shard _ $ {shard}

==========

3881 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Error parsing arguments for import:
3881 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: SUM(click_count)
3881 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: FROM
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: agg_daily_activity_performance_stage
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: WHERE
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: \$CONDITIONS
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: GROUP
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: BY
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: 1"
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: --target-dir
3882 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: /irdw/test/legacy/agg/activity_performance/text/shard_0

1 个答案:

答案 0 :(得分:1)

我能够让这个工作。解决方案是将所有查询元素作为单独的参数提交。什么不应该在"命令"窗口。相反,从" import"开始作为第一个参数,输入查询的每个部分作为单独的参数。每个元素的属性和值作为单独的参数输入。例如:

arg:  import
arg:  --connect
arg:  jdbc:mysql....
arg:  --username
arg:  [username]
arg:  --password-file
arg:  [password file]
arg:  --query
arg:  select .....
arg:  --target-dir
arg:  [target]

工作流程按预期执行。