我如何 Dockeries 包含 spark 依赖项的 python 脚本?
Posted
技术标签:
【中文标题】我如何 Dockeries 包含 spark 依赖项的 python 脚本?【英文标题】:How can I Dockeries a python script which contains spark dependencies? 【发布时间】:2018-02-26 09:21:33 【问题描述】:我有一个 Python 文件,我尝试在其中导入 Spark 库。 当我使用 Docker 文件构建它时,它给了我错误,因为未设置“JAVA_HOME”。 我试图通过 Docker 文件安装 Java,但它也给出了错误。 下面是我尝试执行的 Dockerfile。
FROM python:3.6.4
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:webupd8team/java -y && \
apt-get update && \
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
apt-get install -y oracle-java8-installer && \
apt-get clean
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
ADD Samplespark.py /
COPY Samplespark.py /opt/ml/Samplespark.py
RUN pip install pandas
RUN pip install numpy
RUN pip install pyspark
RUN pip install sklearn
RUN pip install sagemaker_pyspark
RUN pip install sagemaker
CMD [ "python", "./Samplespark.py" ]
ENTRYPOINT ["python","/opt/ml/Samplespark.py"]
请帮我在 Docker 中安装 PySpark 的 Java 依赖项。
【问题讨论】:
java安装成功了吗?添加安装java的步骤后出现什么错误?我会如何调试它。首先我将启动容器,然后在容器内运行 Samplespark.py。 我认为echo oracle-java7-installer
应该是echo oracle-java8-installer
。
嗨@ASR 和@ashwinids,我在替换建议的文本之后和之前遇到了错误。 W: Failed to fetch http://ppa.launchpad.net/webupd8team/java/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
【参考方案1】:
你有 Debian 操作系统,而不是 ubuntu 操作系统。这些 ppa 用于 ubuntu 操作系统。根据this 的说法,由于许可问题,文章 oracle java8 在 Debian 中不可用。
您有以下选择-
1.使用预装oracle java8的Ubuntu docker镜像one
2. 关注tutorial,了解如何在 Debian Jessie 上安装 Oracle java8
3.安装open_jdksudo apt-get install openjdk-8-jre
【讨论】:
感谢@ashwinids,我尝试使用#1,它解决了Java 问题,但我收到声明RUN pip install pyspark
的错误,我将如何在其中安装pySpark 依赖项?错误显示为KILLED
,没有任何消息。
我认为该进程由于 OOM(内存不足错误)而被终止。尝试增加容器的内存。既然你原来的问题已经解决了,请采纳答案以上是关于我如何 Dockeries 包含 spark 依赖项的 python 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
用Intellij idea 编写Scala程序Spark2.0.0 依赖jar包如何解决
小记--------sparkSQL - spark基础知识