使用Hue进行Sqoop导入 - 使用内部查询

时间:2014-05-13 18:58:42

标签: sqoop hue

我正在尝试将数据从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执行相同的查询以及它是如何可行的,请告诉我。

提前致谢,

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

当通过Hue运行sqoop语句时,需要$ 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或其他表格时,我可以清理,优化和符合数据。