从Docker文件运行impala sql脚本

时间:2016-10-13 14:45:14

标签: docker cloudera dockerfile impala

我对码头工作者来说很陌生,我试图(我认为)这是一件非常简单的事情。至于标题,我想从Docker文件运行impala脚本。这里我的Dockerfile看起来像:

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

构建映像我一直有关于impala-shell连接的错误:

连接错误:TTransportException,无法连接到localhost:21000

我尝试在容器内使用相同的命令运行相同的脚本并且它可以正常工作。

你知道我怎么能解决这个问题,哪个主机传递给impala-shell?

1 个答案:

答案 0 :(得分:0)

似乎你需要添加一些东西

我创建了以下Dockerfile

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

包含

的文件service.sh

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

然后我建立它

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需要启动启动容器的命令 `