Hue中Sqoop Editor使用--query的坑

概述

       本文描述了在Hue中Sqoop Editor使用--query的问题及解决办法。

问题

       一个可以在终端运行的带—query的Sqoop脚本,在HUE 4.*版本中使用Sqoop1 Editor运行时job killed。

Hue中Sqoop Editor使用--query的坑_第1张图片

排查

       查看Yarn日志发现一组报错,看样子 结尾的“\”不会被当作换行符,而是被认成了参数。

Hue中Sqoop Editor使用--query的坑_第2张图片

       删除所有”\”后执行依然报错,import后只有—connect被识别了,后续的参数都没有被识别, 由此判断不能换行。

Hue中Sqoop Editor使用--query的坑_第3张图片

       删掉所有换行再试依然报错,才意识到sql被空格分割了,被识别成了多个参数。

Hue中Sqoop Editor使用--query的坑_第4张图片

资料

经查Cloudera官方有类似问题的记录:https://issues.cloudera.org/browse/HUE-6717

社区里也有一些记录:

https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Sqoop-fails-with-quot-Error-parsing-arguments-for-import/td-p/31930

https://community.cloudera.com/t5/Data-Ingestion-Integration/Hue-Oozie-Sqoop-of-SQL-Server-with-schema-Unrecognized/td-p/56639

Hue中Sqoop Editor使用--query的坑_第5张图片

       简单来说,在这个Editor里执行的Sqoop命令会被Oozie用空格分隔,变成一个一个的参数。如果想在HUE里执行含有空格的Sqoop命令,不能使用Sqoop Editor,因为它没有提供传参的地方。但可以在Workflow里使用Sqoop里空着command,把语句都写到arguments里。

结论

       不能在Sqoop Editor里使用—query的语句,因为sql不可能没有空格……

       PS:官方竟然不认为这是bug,真的是太。。。

你可能感兴趣的:(Sqoop,Hue)