如何使用jdbc/hive构建运行闪亮应用程序的dockerfile(需要rjava)?

n9vozmp4  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(427)

我需要一个dockerfile来运行一个闪亮的应用程序能够连接到使用jdbc的配置单元。包rjdbc依赖于包rjava,因此是java。现在,我测试了多种选择:
以rocker/verse为例,其中包含java,并手动添加shiny。
使用rocker/shiny,手动添加java。
两种方案都部分奏效,但并不完全奏效。配置单元连接的r代码如下:

require(RJDBC)
urlJDBC = "jdbc:hive2://...:8443/;ssl=true;sslTrustStore=./cacerts;trustStorePassword=changeit?hive.server2.transport.mode=http;hive.server2.thrift.http.path=gateway/default/hive"
driver = JDBC("org.apache.hive.jdbc.HiveDriver", "hive-jdbc-standalone.jar", identifier.quote="`")
con = dbConnect(driver, urlJDBC, "username", "password")

我还在dockerfile中添加了jdbcjar文件,行为:

ADD ... ./hive-jdbc-standalone.jar

然而,我没有成功使它运行。是否有人有一个blueproint dockerfile,它可以与shiny和hive/jdbc一起工作?那太好了

hc2pp10m

hc2pp10m1#

在几个小时的错误方向上解决了。
问题出在权限管理上。缺少对jar文件的读取权限。
新dockerfile非常简单:

FROM rocker/shiny

# Download and rename JAR file with JDBC HIVE driver.

WORKDIR /srv/shiny-server/apps/shinyhive
ADD <..jar-on-local-server..> ./hive-jdbc-standalone.jar

RUN apt-get update && apt-get install -y \
    openjdk-8-jdk liblzma-dev libbz2-dev libicu-dev libssl-dev \
    && R CMD javareconf

RUN R -e "install.packages('RJDBC', repos='http://cran.r-project.org')"

RUN chmod 777 -R .
COPY . .
COPY ./shiny-server.sh /usr/bin/shiny-server.sh

EXPOSE 3838

CMD ["/usr/bin/shiny-server.sh"]

相关问题