У меня есть изображение докера для свечи с именем spark-docker
и официальное изображение докера Кассандры cassandra
.Я хочу запустить искровое задание из spark-docker
, которое будет записывать данные в кассандре.
Dockerfile
для spark-docker
выглядит следующим образом:
FROM bde2020/spark-python-template:2.4.0-hadoop2.7
MAINTAINER Rafiul
RUN pip install --upgrade pip
RUN pip install pyspark cassandra-driver
Я используюследующая команда для этого.
docker run -ti --network=dockers_default spark-dcoker:latest /spark/bin/spark-submit --conf spark.cassandra.connection.host=cassandra --packages datastax:spark-cassandra-connector:2.4.0-s_2.11 /app/data_extractor.py -f /app/dataset.tar
Это извлечет данные из dataset.tar
и сохранит их в Кассандре.
Но я получаю следующую ошибку
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")})
В моем коде Python я сделал это:
from cassandra.cluster import Cluster
class CassandraSchemaGenerator:
def __init__(self, keyspace):
self.keyspace = keyspace
self.cluster = Cluster()
self.cluster_conn = self.cluster.connect()
Как я могу получить IP-адрес и номер порта, на котором работает cassandra, и вставить его в мой код Python, чтобы он мог подключиться кCassandra