From 59c0b950151cac74f1766461cc85d54846094d9f Mon Sep 17 00:00:00 2001
From: TYLER CARAZA-HARTER <tharter@cs544-tharter.cs.wisc.edu>
Date: Thu, 20 Mar 2025 14:15:50 -0500
Subject: [PATCH] lec starter

---
 lec/26-cassandra/Dockerfile         | 19 +++++++++++++++++++
 lec/26-cassandra/cassandra.sh       | 12 ++++++++++++
 lec/26-cassandra/docker-compose.yml | 15 +++++++++++++++
 p6/Dockerfile.cassandra             |  6 ++++--
 4 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 lec/26-cassandra/Dockerfile
 create mode 100644 lec/26-cassandra/cassandra.sh
 create mode 100644 lec/26-cassandra/docker-compose.yml

diff --git a/lec/26-cassandra/Dockerfile b/lec/26-cassandra/Dockerfile
new file mode 100644
index 0000000..8a74de1
--- /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 0000000..1f2e565
--- /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 0000000..d9ca451
--- /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 74cedb1..a92d1a0 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
-- 
GitLab