Задание Hadoop Hive в SSIS возвращает код ошибки 64 - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь выполнить запрос Hive с помощью Hadoop Hive Task в SSIS 2015. Я попытался выполнить следующий запрос:

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?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Я решил проблему, разделив запрос на 2 части:

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, чтобы проверить, работает ли она.

Спасибо.

0 голосов
/ 17 октября 2019

Я думаю, что код выхода 64 означает, что у вас есть синтаксическая ошибка. Похоже, что существует несоответствие версий между установленным экземпляром Hive и тем, который поддерживается задачей Hadoop Hive в SSIS.

В качестве обходного пути я предложил запускать сценарии кустов с помощью командной строки (Execute Process Task).

Похожие сообщения:

...