【问题标题】:Sqoop Import using Hue - using inner querySqoop Import using Hue - 使用内部查询
【发布时间】:2014-05-13 18:58:42
【问题描述】:

我正在尝试从 apache cloudera 中的 mysql db 将数据 sqoop 到 hive 表中。

下面是我正在执行的 sqoop 查询: sqoop import --connect jdbc:postgresql://localhost/test --username admin --password admin --incremental append --check-column sale_id --last-value 0 --query 'SELECT s.sale_id,c.cust_id ,c.state,s.qty FROM customer c JOIN sales s on c.cust_id = s.cust_id WHERE $CONDITIONS' --split-by s.sale_id --hive-import --hive-table sales --target-dir /user/cloudera/sales_products --hive-delims-replacement '/t'

当我从命令提示符/控制台执行查询时,它可以正常工作。但是,当我尝试通过 HUE UI 作业设计器执行相同操作时,出现以下错误: 解析导入参数时出错

我认为这是因为 $CONDITIONS 参数。

能否请您告诉我是否可以使用 Hue 执行相同的查询以及它是如何可行的。

提前致谢,

【问题讨论】:

    标签: sqoop hue


    【解决方案1】:

    Hue 将通过 Oozie Sqoop Action 提交此脚本。它有一种特殊的方式来指定参数。

    Hue 还附带了一个内置的 Sqoop 示例,您可以尝试通过导入进行修改。

    【讨论】:

      【解决方案2】:

      通过Hue运行sqoop语句时需要Where $CONDITIONS,至少没有它我没有成功。

      我使用the method I describe in the answer to this question 将数据从 SQL Server 加载到外部 Hive 表中,这些表位于 HDFS 文件夹中。这是我用来从 Impala 创建表的 DDL,但它也可以在 Hive 编辑器中使用。

      CREATE TABLE HiveDB_NameSpace.ExternalHiveTableName (
          ColumnName1 STRING
          ColumnName2 STRING,
          ColumnName3 STRING,
          ColumnName4 STRING,
          ColumnName5 TIMESTAMP,
          ColumnName6 INT
          ColumnName7 STRING
      ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '/user/foldername/dbname/tablename';
      

      这对于登陆 100 多张桌子非常有效。然后,我可以在将数据插入内部 Hive、Kudu 或其他表时清理、优化和整合数据。

      【讨论】:

        猜你喜欢
        • 2022-01-27
        • 1970-01-01
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        • 2014-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多