微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 Dockerfile 中使用 sparklyr 安装 spark

如何解决无法在 Dockerfile 中使用 sparklyr 安装 spark

我们正在尝试构建我们自己的 docker 镜像,以便在 Spark 中使用 R 和 tidyverse。但是,我们在尝试安装 Spark 时在构建中遇到错误

这是我们的 Dockerfile:

# start with the most up-to-date tidyverse image as the base image
FROM rocker/tidyverse:latest

# install openjdk 8 (Java)
RUN apt-get update \
  && apt-get install -y openjdk-8-jdk

# Install sparklyr
RUN install2.r --error --deps TRUE sparklyr

# Install spark
RUN Rscript -e 'sparklyr::spark_install("2.4.3")'

RUN mv /root/spark /opt/ && \
    chown -R rstudio:rstudio /opt/spark/ && \
    ln -s /opt/spark/ /home/rstudio/

RUN install2.r --error --deps TRUE DBI
RUN install2.r --error --deps TRUE RPostgres
RUN install2.r --error --deps TRUE dbplyr

我们使用 Docker compose up 构建并创建容器。

构建时抛出错误

=> ERROR [4/8] RUN Rscript -e 'sparklyr::spark_install("2.3.0")'                                                              62.0s 
------
 > [4/8] RUN Rscript -e 'sparklyr::spark_install("2.3.0")':
#7 61.85 Error in download.file(installInfo$packageRemotePath,destfile = installInfo$packageLocalPath,:
#7 61.85   download from 'https://archive.apache.org/dist/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz' Failed
#7 61.85 Calls: <Anonymous>
#7 61.85 Execution halted
------
Failed to solve: rpc error: code = UnkNown desc = executor Failed running [/bin/sh -c Rscript -e 'sparklyr::spark_install("2.3.0")']: exit code: 1

我们也尝试将其运行为:

RUN R -e 'sparklyr::spark_install("2.4.3")'

代替:

RUN Rscript -e 'sparklyr::spark_install("2.4.3")'

但它仍然会引发错误。我们还尝试安装不同版本的 Spark 以查看是否可行,但仍然没有运气。有谁知道我为什么会收到此错误以及如何在 docker 中使用 sparklyr 正确安装 spark?谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?