r语言 - 如何构建一个使用 JDBC/Hive 运行 Shiny 应用程序的 Dockerfile(需要 rJava)



我需要一个Dockerfile来运行一个能够使用JDBC连接到Hive的Shiny应用程序。包RJDBC依赖于包rJava,因此是Java。现在,我测试了多个选项:

  • 采用具有Java的摇杆/诗句,并手动添加Shiny
  • 采用摇杆/闪亮,并手动添加Java

这两种选择都部分有效,但并不完全有效。Hive 连接的 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 中添加了 JDBC Jar 文件,其中包含以下行:

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

但是,我没有成功让它运行。有人有一个与Shiny和Hive/JDBC一起工作的blueproint DOCKERFILE吗?会很棒

在错误的方向上呆了几个小时后解决。

问题出在权利管理上。缺少对 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"]

相关内容

  • 没有找到相关文章

最新更新