Назад | Перейти на главную страницу

Как использовать Cassandra со Spark в образе Docker?

(Надеюсь, этот вопрос подходит для ServerFault, если нет, прокомментируйте, и я удалю его)

Я пытаюсь создать образ докера, в котором Cassandra и Spark будут установлены и настроены для совместной работы.

Я никогда не использовал Spark (и никогда не создавал Dockerfile), только Cassandra, так что это новая территория.

Я создал Dockerfile с помощью Spark, Cassandra и Kafka. Теперь, как мне настроить их внутри Dockerfile, чтобы все они работали вместе?

Соединитель Cassandra-Spark от Datastax... Я не знаю, что с этим делать.

Вот мой Dockerfile:

FROM centos:centos7

RUN yum -y update;
RUN yum -y clean all;

# Install basic tools
RUN yum install -y wget dialog curl sudo lsof vim axel telnet nano openssh-server openssh-clients bzip2 passwd tar bc git unzip deltarpm

#Install Java
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

# Install Python 3.6 - I used Anaconda2 instead to install it
#RUN yum install centos-release-scl -y
#RUN yum install rh-python36 -y
#RUN scl enable rh-python36 bash

#Create guest user. IMPORTANT: Change here UID 1000 to your host UID if you plan to share folders.
RUN useradd guest -u 1000
RUN echo guest | passwd guest --stdin

ENV HOME /home/guest
WORKDIR $HOME

USER guest

#Install Spark (Spark 2.4.0 - Nov 02, 2018, prebuilt for Hadoop 2.7 or higher)
RUN wget http://mirror.csclub.uwaterloo.ca/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
RUN tar xvf spark-2.4.0-bin-hadoop2.7.tgz
RUN mv spark-2.4.0-bin-hadoop2.7 spark

ENV SPARK_HOME $HOME/spark

#Install Kafka
RUN wget http://mirror.csclub.uwaterloo.ca/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
RUN tar xvzf kafka_2.12-2.1.0.tgz
RUN mv kafka_2.12-2.1.0 kafka

ENV PATH $HOME/spark/bin:$HOME/spark/sbin:$HOME/kafka/bin:$PATH

#Install Anaconda Python distribution
RUN wget https://repo.continuum.io/archive/Anaconda2-4.4.0-Linux-x86_64.sh
RUN bash Anaconda2-4.4.0-Linux-x86_64.sh -b
ENV PATH $HOME/anaconda2/bin:$PATH

RUN  conda install -c anaconda python

# RUN pip install --upgrade pip

#Install Kafka Python module
RUN pip install kafka-python

USER root

#Install Cassandra
ADD cassandra.repo /etc/yum.repos.d/datastax.repo
RUN yum install -y cassandra

#Environment variables for Spark and Java
ADD setenv.sh /home/guest/setenv.sh
RUN chown guest:guest setenv.sh
RUN echo . ./setenv.sh >> .bashrc

#Startup (start SSH, Cassandra, Zookeeper, Kafka producer)
ADD startup_script.sh /usr/bin/startup_script.sh
RUN chmod +x /usr/bin/startup_script.sh

Репозиторий GitLab для просмотра остальных файлов находится здесь: https://gitlab.com/HypeWolf/docker-cassandra-spark-kafka

Конечная цель - иметь возможность использовать все, что Cassandra и Spark могут предложить в одном контейнере, и позволить пользователю передавать файл конфигурации или значения среды для изменения определенных настроек.