从Docker文件运行impala sql脚本

对于docker工人来说,我是一个相当新的人物,我正在努力做(我认为)一件很简单的事情。 至于标题,我想从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 

build立图像我一直有这个错误关于impala-shell连接:

连接错误:TTransportException,无法连接到本地主机:21000

我试图运行相同的脚本与容器内的相同的命令,它的工作原理。

你有什么想法,我怎么能解决这个问题,主机传递到黑斑羚壳?

看来你需要添加一些东西

我创build了下面的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

然后我build立它

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