sparkyr无法在dockerfile中从apache下载spark

du7egjpx  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(323)

我试图创建一个dockerfile,从rocker/tidyverse构建一个图像,并包括SparkyR的spark。之前,在这篇文章中:无法在dockerfile中安装spark和sparkyr,我试图找出spark为什么不从我的dockerfile下载。在玩了5天之后,我想我已经找到了原因,但不知道如何修复它。
这是我的文件:


# 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
我发现很少有关于这个问题的文档,我非常依赖这篇文章来解决这个问题。提前感谢任何有这方面知识的人伸出援手。

kx1ctssn

kx1ctssn1#

自己下载版本,然后使用此功能安装

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

相关问题