如何在主机服务器上用cassandra连接Zeppelin图像

问题描述

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...

我的问题是如何将我的映像与localhost上的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' 

解决方法

首先,Zeppelin映像中应该已经包含Spark发行版,因此您可能不需要安装pyspark(或者您需要在Spark中使用单独的映像)。

要配置Zeppelin将Spark连接到Cassandra,您需要执行以下操作:

  • 在正在运行的Zeppelin上,转到“解释器”菜单,选择“ Spark解释器”,然后按“编辑”
  • 将SCC的Maven坐标添加到spark.jars.packages配置参数中(如果不在列表中,则添加它。还要在“编辑”对话框的末尾将相同的坐标添加到依赖项列表中。对于Spark 3.0,您需要同时使用SCC 3.0.0(当前为beta)
  • 使用您的Cassandra实例的地址添加spark.cassandra.connection.host属性。 请勿使用 localhost ,因为它将指向Zeppelin本身,而不是您的Cassandra运行所在的计算机
  • 如有必要,添加其他SCC properties,例如用户名和密码等。
  • 保存更改

这将使用您的所有配置生成conf/interpreter.json文件,您可以将其放入Docker映像中。另一种选择是使用现有的Zeppelin Docker映像,并通过Zeppelin REST API进行配置。

P.S。您可以在我的博客中找到一个number of the blog posts about Zeppelin

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...