Hadoop Sqoop自由形式查询导致色调/Oozie中无法识别的参数

Hadoop Sqoop自由形式查询导致色调/Oozie中无法识别的参数,hadoop,sqoop,oozie,hue,Hadoop,Sqoop,Oozie,Hue,我正在尝试使用自由形式的查询运行sqoop命令,因为我需要执行聚合。它是通过色调界面提交的,作为一个Oozie工作流。以下是命令和查询的缩小版本。处理命令时,引号中的-query语句将导致查询的每个部分被解释为无法识别的参数,如命令后面的错误所示。此外,目标目录被误解了。是什么阻止了它的运行,以及可以采取什么措施来解决它?正在正确解析${env}和${shard}变量,如上次错误消息所示 谢谢大家! ===================== 导入-连接jdbc:mysql://irbasedw

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

谢谢大家!

=====================

导入-连接jdbc:mysql://irbasedw-${shard}.db.xxxx.net:3417/irbasedw_${shard}?dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true-用户名iretl-密码文件/irdw/${env}/lib/.passwordBaseDw-表agg_daily_activity_performance_stage-m1-查询从agg_daily_activity_performance_stage中选择SUMclick_count,其中\$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
我能让它工作。解决方案是将所有查询元素作为单独的参数提交。命令窗口中不应显示任何内容。相反,从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] 工作流按预期执行。

请查看此信息。可能有用。