Docker对我来说是新事物,我什至没有一般技能,但是我正努力通过一些已安装的库来创建特定的Zeppelin镜像。
那是我的Dockerfile:
FROM apache/zeppelin:0.9.0
ENV SPARK_VERSION=2.4.6
USER root
RUN apt-get -y update && \
apt-get install sudo
ENV SPARK_HOME=/opt/conda/lib/python3.7/site-packages/pyspark
RUN installing some libraries...
我的问题是如何将图像与本地主机上的cassandra连接,因为现在它不起作用了。我在Jupyter Notebook上的笔记本可以正常工作。环境定义:
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.datastax.spark:spark-cassandra-connector_2.11:2.4.3,commons-configuration:commons-configuration:1.10,com.codahale.metrics:metrics-core:3.0.2 --conf spark.cassandra.connection.host=localhost pyspark-shell'
最佳答案
1,Zeppelin镜像中应该已经包含Spark发行版,因此您可能不需要安装pyspark(或者您需要在Spark中使用单独的镜像)。
要将Zeppelin配置为将Spark连接到Cassandra,您需要执行以下操作:
正在运行的Zeppelin上的
spark.jars.packages
配置参数中(如果不在列表中,则添加它。还要在“编辑”对话框的末尾将相同的坐标添加到依赖项列表中。对于Spark 3.0,您需要使用SCC 3.0.0以及(当前为beta)spark.cassandra.connection.host
属性。 不要使用localhost,因为它将指向Zeppelin本身,而不是Cassandra运行的计算机! 这将生成具有所有配置的
conf/interpreter.json
文件,您可以将其放入Docker镜像中。另一种选择是使用现有的Zeppelin Docker镜像,并通过Zeppelin REST API进行配置。附言您可以在我的博客中找到number of the blog posts about Zeppelin。
关于docker - 如何在主机服务器上将Zeppelin镜像与cassandra连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63521179/