如何将 Zeppelin 映像与主机服务器上的 cassandra 连接
Posted
技术标签:
【中文标题】如何将 Zeppelin 映像与主机服务器上的 cassandra 连接【英文标题】:How to conect Zeppelin image with cassandra on host server 【发布时间】:2020-12-10 17:47:01 【问题描述】: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】:1st,Spark 发行版应该已经包含在 Zeppelin 镜像中,因此您可能不需要安装 pyspark(或者您需要使用单独的镜像与 Spark)。
要配置 Zeppelin 以将 Spark 连接到 Cassandra,您需要执行以下操作:
在运行的 Zeppelin 上转到解释器菜单,选择 Spark 解释器并按编辑 将 SCC 的 maven 坐标添加到spark.jars.packages
配置参数中(或者如果它不在列表中,则添加它。还将相同的坐标添加到编辑对话框末尾的依赖项列表中。对于 Spark 3.0,您需要使用SCC 3.0.0 以及(目前为测试版)
添加 spark.cassandra.connection.host
属性和您的 Cassandra 实例的地址。 不要使用 localhost,因为它会指向 Zeppelin 本身,而不是运行 Cassandra 的机器!
如有必要,添加其他SCC properties,例如用户名和密码等。
保存更改
这将生成包含所有配置的conf/interpreter.json
文件,您可以将其放入 Docker 映像中。另一种选择是使用现有的 Zeppelin Docker 镜像,并通过 Zeppelin REST API 进行配置。
附:您可以在我的博客中找到number of the blog posts about Zeppelin。
【讨论】:
以上是关于如何将 Zeppelin 映像与主机服务器上的 cassandra 连接的主要内容,如果未能解决你的问题,请参考以下文章
无法在基于 apache/zeppelin:0.9.0 的 Docker 映像中安装软件包
Zeppelin(0.10.1版本)安装及创建hive解释器