如何将 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 连接的主要内容,如果未能解决你的问题,请参考以下文章

Zeppelin安装配置

无法在基于 apache/zeppelin:0.9.0 的 Docker 映像中安装软件包

Zeppelin(0.10.1版本)安装及创建hive解释器

如何在 Zeppelin 中切换 Spark 版本以使用 Spark 3.x

将文件从 docker 容器写入 AWS 上的主机实例

无法在 Spark 中将文件写入 Zeppelin 上的远程 hdfs