Compare commits

..

3 Commits

Author SHA1 Message Date
Jack Yu cdd99b3280 Updated README.md 2024-04-30 11:33:03 -07:00
Jack Yu 8b4c305300 Added venv support 2024-04-30 11:32:28 -07:00
Jack Yu 27b7683be9 Added pyspark version 2024-04-29 17:52:17 -07:00
4 changed files with 54 additions and 5 deletions

View File

@ -9,13 +9,22 @@ UID := $(shell id -u)
mobileinsight.sif: mobileinsight.def mobileinsight.sif: mobileinsight.def
"$(APPTAINER)" build --build-arg="NUM_THREADS=$(NUM_THREADS)" "$@" "$<" "$(APPTAINER)" build --build-arg="NUM_THREADS=$(NUM_THREADS)" "$@" "$<"
run: mobileinsight.sif mobileinsight-spark.sif: with-spark.def mobileinsight.sif
"$(APPTAINER)" build "$@" "$<"
prepare:
@mkdir -p "$(OVERLAY_DIR)" @mkdir -p "$(OVERLAY_DIR)"
@lsmod | grep overlay > /dev/null || sudo modprobe overlay @lsmod | grep overlay > /dev/null || sudo modprobe overlay
run: mobileinsight.sif prepare
@$(APPTAINER) run --overlay "$(OVERLAY_DIR)" \ @$(APPTAINER) run --overlay "$(OVERLAY_DIR)" \
-B "/run/user/$(UID)" mobileinsight.sif -B "/run/user/$(UID)" mobileinsight.sif
clean: run-spark: mobileinsight-spark.sif prepare
rm -f mobileinsight.sif $(OVERLAY_DIR) @$(APPTAINER) run --overlay "$(OVERLAY_DIR)" \
-B "/run/user/$(UID)" mobileinsight-spark.sif
.PHONY: run clean clean:
rm -rf *.sif $(OVERLAY_DIR)
.PHONY: prepare run run-spark clean

View File

@ -29,6 +29,11 @@ $ ./mobileinsight.sif python3 "$PYTHON_ARGS"
# Start a bash shell inside the container # Start a bash shell inside the container
$ ./mobileinsight.sif bash $ ./mobileinsight.sif bash
# Only available in spark version
#
# Start a pyspark interpreter
$ ./mobileinsight-spark.sif pyspark
``` ```
Examples are stored in /opt/mobileinsight-examples. Examples are stored in /opt/mobileinsight-examples.
@ -36,4 +41,6 @@ Examples are stored in /opt/mobileinsight-examples.
Build Build
----- -----
Run `make mobileinsight.sif` to build the apptainer image. Run `make mobileinsight.sif` or `make mobileinsight-spark.sif` to build the
corresponding apptainer image. The spark version includes both `mobileinsight`
along with `pyspark` for distributed log processing.

View File

@ -19,6 +19,7 @@ From: ubuntu:22.04
git \ git \
python3 \ python3 \
python3-pip \ python3-pip \
python3-venv \
python3-wxgtk4.0 \ python3-wxgtk4.0 \
python3-matplotlib \ python3-matplotlib \
cmake \ cmake \

32
with-spark.def Normal file
View File

@ -0,0 +1,32 @@
Bootstrap: localimage
From: mobileinsight.sif
%arguments
SPARK_URL="https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz"
%environment
export SPARK_HOME="/opt/spark"
export PATH="/opt/spark/sbin:/opt/spark/bin:$PATH"
export PYSPARK_PYTHON="/usr/bin/python3"
export SPARK_LOCAL_IP="127.0.0.1"
%post
# Update and install dependencies
mkdir -p /build
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get upgrade -y
apt-get install -y \
openjdk-8-jre-headless \
scala
# Download Spark
SPARK_TGZ="/build/$(basename "{{ SPARK_URL }}")"
cd /build
wget "{{ SPARK_URL }}" -nv -O "$SPARK_TGZ"
tar -xf "$SPARK_TGZ"
mv "$(echo $SPARK_TGZ | sed 's/\.tgz$//')" /opt/spark
# Cleanup
apt-get autoclean -y
rm -rf /build