diff --git a/lec/26-cassandra/Dockerfile b/lec/26-cassandra/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8a74de1d5fa7716e14787c65e95685667029fd3f --- /dev/null +++ b/lec/26-cassandra/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:22.04 +RUN apt-get update; apt-get install -y wget curl openjdk-17-jdk python3-pip iproute2 + +# Python stuff +RUN pip3 install cassandra-driver==3.28.0 grpcio==1.58.0 grpcio-tools==1.58.0 jupyterlab==4.3.6 + +# SPARK +RUN wget https://dlcdn.apache.org/spark/spark-3.5.5/spark-3.5.5-bin-hadoop3.tgz && \ + tar -xf spark-3.5.5-bin-hadoop3.tgz && \ + rm spark-3.5.5-bin-hadoop3.tgz + +# CASSANDRA +RUN wget https://archive.apache.org/dist/cassandra/5.0.0/apache-cassandra-5.0.0-bin.tar.gz; tar -xf apache-cassandra-5.0.0-bin.tar.gz; rm apache-cassandra-5.0.0-bin.tar.gz + +ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 +ENV PATH="${PATH}:/apache-cassandra-5.0.0/bin:/spark-3.4.1-bin-hadoop3.2/bin" + +COPY cassandra.sh /cassandra.sh +CMD ["sh", "/cassandra.sh"] diff --git a/lec/26-cassandra/cassandra.sh b/lec/26-cassandra/cassandra.sh new file mode 100644 index 0000000000000000000000000000000000000000..1f2e5650601140ccf43b8cdfed7544738637f326 --- /dev/null +++ b/lec/26-cassandra/cassandra.sh @@ -0,0 +1,12 @@ +echo "-Xms128M" >> /apache-cassandra-5.0.0/conf/jvm-server.options +echo "-Xmx128M" >> /apache-cassandra-5.0.0/conf/jvm-server.options + +# get the environment variable +PROJECT=${PROJECT} + +sed -i "s/^listen_address:.*/listen_address: "`hostname`"/" /apache-cassandra-5.0.0/conf/cassandra.yaml +sed -i "s/^rpc_address:.*/rpc_address: "`hostname`"/" /apache-cassandra-5.0.0/conf/cassandra.yaml +sed -i "s/- seeds:.*/- seeds: ${PROJECT}-db-1,${PROJECT}-db-2,${PROJECT}-db-3/" /apache-cassandra-5.0.0/conf/cassandra.yaml + +/apache-cassandra-5.0.0/bin/cassandra -R +sleep infinity diff --git a/lec/26-cassandra/docker-compose.yml b/lec/26-cassandra/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..d9ca4512b8e983fdd8ab1b76c3e0adb83c0142d6 --- /dev/null +++ b/lec/26-cassandra/docker-compose.yml @@ -0,0 +1,15 @@ +name: ${PROJECT} + +services: + db: + image: ${PROJECT}-base + hostname: db + volumes: + - "./src:/src" + deploy: + replicas: 3 + resources: + limits: + memory: 2.5G + environment: + - PROJECT=${PROJECT} diff --git a/p6/Dockerfile.cassandra b/p6/Dockerfile.cassandra index 74cedb1db84badb61c311f252cc24b9948defe48..a92d1a0f24bf7079b0cc0af7717ef2f1d35282e6 100644 --- a/p6/Dockerfile.cassandra +++ b/p6/Dockerfile.cassandra @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 +FROM ubuntu:24.04 RUN apt-get update; apt-get install -y wget curl openjdk-17-jdk python3-pip net-tools lsof vim unzip # Python stuff @@ -9,7 +9,9 @@ COPY requirements.txt /requirements.txt RUN pip3 install -r /requirements.txt # SPARK -RUN wget https://archive.apache.org/dist/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz && tar -xf spark-3.4.1-bin-hadoop3.tgz && rm spark-3.4.1-bin-hadoop3.tgz +RUN wget https://dlcdn.apache.org/spark/spark-3.5.5/spark-3.5.5-bin-hadoop3.tgz && \ + tar -xf spark-3.5.5-bin-hadoop3.tgz && \ + rm spark-3.5.5-bin-hadoop3.tgz # CASSANDRA RUN wget https://archive.apache.org/dist/cassandra/5.0.0/apache-cassandra-5.0.0-bin.tar.gz; tar -xf apache-cassandra-5.0.0-bin.tar.gz; rm apache-cassandra-5.0.0-bin.tar.gz