我正在尝试在SSIS 2015中使用Hadoop配置单元任务运行配置单元查询。我尝试运行的查询是:
create table if not exists table_a
as
select * from (
    select
    code,
    md,
    name,
    region,
    dingestdate,
    max(dingestdate) over (partition by kode_maindealer) as dingestdate_latest
    from dev_stg.stg_ahmsdnssls_xls_master_data_region
) as test1
where dingestdate = dingestdate_latest此查询在Hue - Hive Editor和Hive CLI中运行正常,但在SSIS中返回错误。错误消息:
[Hadoop Hive Task] Information: Hadoop job job_1561011012251_25231 exit value is 64
[Hadoop Hive Task] Error: Hadoop job job_1561011012251_25231 exit value is not 0
Task Hadoop Hive Task failed有没有人在SSIS上遇到过这种情况?
发布于 2019-10-18 06:39:57
我已经通过将查询分成两部分解决了这个问题:
create table if not exists table_a (
code int,
md varchar(150),
name varchar(150),
region varchar(50),
dingestdate timestamp, 
dingestdate_latest timestamp
)
row format delimited fields terminated by '|' 
stored as parquet 
tblproperties("parquet.compression"="gzip")
;和
insert overwrite table table_a
select * from ( 
select 
code, 
md, 
name, 
region, 
dingestdate, 
max(dingestdate) over (partition by code) as dingestdate_latest 
from table1 ) as test1 where dingestdate = dingestdate_latest
;最后,查询在SSIS中运行,没有错误。
我也会在SSIS上尝试“执行进程任务”,看看它是否也能工作。
谢谢。
发布于 2019-10-18 00:52:18
我认为退出代码64表示存在语法错误。看起来安装的Hive实例与SSIS中Hadoop Hive任务支持的Hive实例版本不匹配。
作为解决方法,我建议使用命令行(执行进程任务)运行配置单元脚本。
相关帖子:
https://stackoverflow.com/questions/58424031
复制相似问题