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'
首先,Spark发行版应该已经包含在Zeppelin镜像中,所以您可能不需要安装pyspark(或者您需要使用单独的Spark镜像(。
要配置齐柏林飞船将Spark连接到Cassandra,您需要执行以下操作:
- 在运行的齐柏林飞船上,转到解释器菜单,选择Spark解释器并按编辑
- 将SCC的maven坐标添加到
spark.jars.packages
配置参数中(如果不在列表中,则添加该坐标。还将相同的坐标添加到"编辑"对话框末尾的依赖项列表中。对于Spark 3.0,您还需要使用SCC 3.0.0(当前为测试版( - 添加带有Cassandra实例地址的
spark.cassandra.connection.host
属性不要使用localhost,因为它会指向齐柏林飞船本身,而不是指向运行Cassandra的机器 - 如果需要,添加其他SCC属性,例如用户名&密码等
- 保存更改
这将生成包含所有配置的conf/interpreter.json
文件,您可以将其放入Docker映像中。另一种选择是使用库存的Zeppelin Docker镜像,并通过Zeppelin REST API进行配置。
第页。你们可以在我的博客中找到很多关于齐柏林飞船的博客文章。