hue下 sqoop使用query报错

最近因工做需求,须要用hue编排任务,利用sqoop导入数据。导入脚本语句以下sql

sqoop import --connect jdbc:oracle:thin:@ip:port/db --username user --password pwd --query "select col1,col2 from db.table where \$CONDITIONS" --target-dir /user/kjxydata/src/LT_READER_${date_time} --delete-target-dir -m 1 --null-string '\\N' --null-non-string '\\N' --as-textfile --fields-terminated-by "\t" --hive-drop-import-delims

但运行时错误。 在用hue写sqoop导入语句时,有几个坑。oracle

  • 一、在command窗口中不要加 sqoop,直接从import开始。
  • 二、command窗口中使用query是有问题的。对于query后的sql,因为hue调用oozie,oozie在解析命令时会将sql拆解成多个参数,而不是当成一个参数,致使运行时会没法解析命令。

针对第二个问题,目前茶到两种解决方案:ssh

  • 一、直接在hue中利用ssh运行脚本
  • 二、空出command命令框,而在参数框中打入命令

为保持全部sqoop形式命令一致,我的采用第二种方式。具体解决如图:oop

图例

,注意将query语句写在一个arg中。code

另外还有一点,注意select col1,col2 from db.table where \$CONDITIONS,在sqoop中若是用了query须要加where $CONDITIONS,若是是脚本中用记得加\,可是在参数窗口中不要加\xml

详情还能够参考这个cloudera的提问。xml之后的内容就比较明晰了。blog

相关文章
相关标签/搜索