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

Sparklyr 无法从 Dockerfile 中的 apache 下载 Spark

如何解决Sparklyr 无法从 Dockerfile 中的 apache 下载 Spark

我正在尝试创建一个 dockerfile,该文件从 Rocker/tidyverse 构建图像并包含来自 sparklyr 的 Spark。以前,在这文章Unable to install spark with sparklyr in Dockerfile 中,我试图弄清楚为什么 spark 不能从我的 dockerfile 下载。玩了 5 天后,我想我找到了原因,但不知道如何解决

这是我的 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 devtools
RUN Rscript -e 'install.packages("devtools")'

# Install sparklyr
RUN Rscript -e 'devtools::install_version("sparklyr",version = "1.5.2",dependencies = TRUE)'

# Install spark
RUN Rscript -e 'sparklyr::spark_install(version = "3.0.0",hadoop_version = "3.2")'

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

RUN apt-get install unixodbc unixodbc-dev --install-suggests
RUN apt-get install odbc-postgresql

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

下载到这一行之前的所有内容都没有问题:

RUN Rscript -e 'sparklyr::spark_install(version = "3.0.0",hadoop_version = "3.2")'

然后给了我错误

Step 5/11 : RUN Rscript -e 'sparklyr::spark_install(version = "3.0.0",hadoop_version = "3.2")'
 ---> Running in 739775db8f12
Error in download.file(installInfo$packageRemotePath,destfile = installInfo$packageLocalPath,: 
  download from 'https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz' Failed
Calls: <Anonymous>
Execution halted
ERROR: Service 'rocker_sparklyr' Failed to build : The command '/bin/sh -c Rscript -e 'sparklyr::spark_install(version = "3.0.0",hadoop_version = "3.2")'' returned a non-zero code: 1

经过一番研究,我认为这是一个超时错误在这种情况下,我提前运行了:

RUN Rscript -e 'options(timeout=600)'

这并没有增加再次出错的时间。我通过 Rstudio 将所有内容安装到我的个人机器上,并且安装没有任何问题。我认为这个问题是 docker 特有的,因为它无法从 https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz

下载

我发现关于这个问题的文档很少,我非常依赖这篇文章解决这个问题。在此先感谢任何了解这方面知识的人与我们联系。

解决方法

自己下载版本然后用这个功能安装

sparklyr::spark_install_tar(tarfile ="~/spark/spark-3.0.1-bin-hadoop3.2.tgz")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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”。这是什么意思?