2016-07-08 2 views
0

파일을 가져 와서 텍스트를 추출하고 쉘 스크립트를 실행하여 차례로 하이브 스크립트를 실행하는 플로우가 있습니다. (필자는 파일에서 날짜를 가져 와서 -hivevar로 전달했습니다).쉘 스크립트 (Hive를 실행하는)를 실행할 때 ExecuteStreamCommand가 응답하지 않습니다.

#!/bin/bash 
endDate=$1 

CONNECT="jdbc:hive2://master2:10000/default" 

beeline -u "$CONNECT" -n root -hivevar endDate="$endDate" -f /pathToScript/Hive_scipt.hql 

하이브 스크립트가 완료하고 (위 코너에서 1 개 숙박을) 데이터가 내 테이블에 삽입되지만 ExecuteStreamCommand가 실행 상태로 유지 무기한 내가 nifi를 다시 시작해야합니다 .. (이 : 내 쉘 스크립트는 다음과 같이 보입니다 이것을 처리하는 더 좋은 방법이 있습니까?). 내가 쿼리의 크기를 줄일 경우 ExecuteStreamCommand 실 거예요 정지 (내 하이브 쿼리 노조의 숫자입니다)

  • :

    나는 몇 가지를 발견했습니다.

  • 작업이 중단되면 Resource Manager의 AM은 ~ 10 분 동안 계속 실행됩니다. 1 컨테이너로 하이브 CLI Tez 세션을 만들 때와 비슷합니다. 쿼리 크기를 줄이고 작업이 멈추지 않으면 AM 상태가 바로 종료됩니다. - 명령 줄을 통해 전체 쿼리 또는 스크립트를 수동으로 실행하면 문제가 없습니다.
  • 동작이 일관되지 않습니다. 때때로 그것은 걸리지 않을 것이다, 때때로 그것은 ... (대부분의 시간 ..).

어떤 아이디어라도? app.log 또는 응용 프로그램 로그에서 아무 것도 찾을 수 없습니다.

답변

0

명령 줄에서 실행하면 Tez과 같은 표준 출력 및/또는 표준 오류 모두에서 많은 양의 출력이 생성됩니까?/미스터 진행?

Bean은 --silent = true 옵션으로 (어떤 이유로 출력이 실제로 필요하지 않는 한) 또는 -S (사용되지는 않지만) "하이브"클라이언트로 시도하십시오. 결과물에 문제가 있다면이를 완화해야합니다.

관련 문제