我正在尝试使用自由格式查询运行 sqoop 命令,因为我需要执行聚合。它作为 Oozie 工作流程通过 Hue 界面提交。以下是命令和查询的缩小版本。处理命令时,“--query”语句(用引号引起来)会导致查询的每个部分被解释为无法识别的参数,如命令后面的错误所示。此外,目标目录被误解。是什么阻止了它的运行,可以采取什么措施来解决它? ${env} 和 ${shard} 变量正在被正确解析,如最后一条错误消息所示。
谢谢你!
===========
导入 --connect jdbc:mysql://irbasedw-${shard}.db.xxxx.net:3417/irbasedw_${shard}?dontTrackOpenResources=true&defaultFetchSize=10000&useCursorFetch=true --用户名 iretl --密码文件 /irdw/ ${env}/lib/.passwordBaseDw --table agg_daily_activity_performance_stage -m 1 --query "从 agg_daily_activity_performance_stage 中选择 SUM(click_count) WHERE \$CONDITIONS GROUP BY 1" --target-dir /irdw/${env}/legacy/ agg/activity_performance/text/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]
工作流程按预期执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)