2016-10-13 5 views
1

저는 맹독자에게 상당히 익숙하며, 저는 아주 간단한 일을하려고합니다. 제목은 Docker 파일에서 임팔라 스크립트를 실행하고 싶습니다.Docker 파일에서 impala sql 스크립트를 실행하십시오.

오류 연결 :

FROM cloudera/quickstart:latest 
COPY /home/dodo/script/ /home/cloudera/script 
WORKDIR /home/cloudera/script 
RUN service impala-state-store start \ 
    && service impala-catalog start \ 
    && service impala-server start \ 
    && impala-shell -f script.sql --quiet -i localhost 

내가 임팔라 - 쉘 연결에 대해이 오류를 갖는 유지 이미지 구축 :처럼 여기 내 Dockerfile 보이는 TTransportException를, 로컬 호스트에 연결할 수 없습니다 : 21000

을 나는에 시도 동일한 스크립트를 컨테이너 내에서 동일한 명령으로 실행하면 작동합니다.

이 문제를 어떻게 해결할 수 있습니까? 어떤 호스트가 임팔라 껍질에 전달 되었습니까?

+0

아마도 21000 포트가 수신 대기 할 때까지 조금 기다려야할까요? – user2915097

+0

그런데'RUN'을'ENTRYPOINT'로 바꿔야 만합니다. – user2915097

+0

@ user2915097 포트를 기다렸다가 작동하지 않습니다. – dodo

답변

0

당신이

#!/bin/bash service impala-state-store start \ && service impala-catalog start \ && service impala-server start \ && impala-shell -f script.sql --quiet -i localhost

가 나는 빌드가 포함 된 파일 service.sh으로 다음 Dockerfile

FROM cloudera/quickstart:latest RUN mkdir /script COPY service.sh /script ENTRYPOINT ["/script/service.sh"]

내가 만든 몇 가지를 추가 할 필요가 보인다 그것

docker build -t impala .

와 나는 그것을

docker run impala

Started Impala State Store Server (statestored):[ OK ] Started Impala Catalog Server (catalogd) :[ OK ] Started Impala Server (impalad):[ OK ] Starting Impala Shell without Kerberos authentication Error: [Errno 2] No such file or directory: 'script.sql'

그래서 여전히 같은 .SQL 파일을 제공하는 등 몇 가지 작업을 필요로 보여줍니다 실행합니다. ENTRYPOINT가 컨테이너를 시작하는 명령을 실행해야 함을 알 수 있습니다.

+0

내 완성품을 쓰지 않았습니다. Dockerfile, 지금 질문을 편집했지만 내 문제는 파일을 실행하는 것이 아닙니다. 스크립트를 컨테이너에 올바르게 복사합니다. WORKDIR을 스크립트가 들어있는 디렉토리로 설정 한 다음 명령을 실행합니다. 임팔라와 관련된 문제가 더 많습니다. 아마도 일부 서비스가 누락되었습니다. – dodo