Use Dockerfile to build image for runc and runsc.
Note: Large data files are stored in GitHub Releases and downloaded during Docker build. See LARGE_FILES.md for details.
If GitHub Releases download fails, manually place these files:
-
Download from release: https://github.com/Anjali05/platform-workloads/releases/tag/dataAnalytics-v1.0.0
-
Place files in these locations:
cloud-workloads/dataAnalytics/data/wiki.gz # 321MB compressed wiki data cloud-workloads/dataAnalytics/files/mahout-examples-0.13.0-job.jar # 77MB Mahout JAR -
Update Dockerfile to use local files:
# Replace the GitHub download section with: COPY data /data COPY files/mahout-examples-0.13.0-job.jar ${MAHOUT_HOME}/. RUN cd /data && gunzip wiki.gz
Start master:
docker run -itd --rm --cpuset-cpus=0-3 --memory=24g --name test mydataanalytics --master --master-ip=127.0.0.1Start slave:
docker exec test /root/docker-entrypoint.py --slave --master-ip=127.0.0.1Run workload:
docker exec test /root/benchmark.shResize the base image to 16GB, then boot the VM and run:
# Install Java + Hadoop 2.10.2 (mirrors commons/hadoop/2.10.2/Dockerfile)
bash fc/hadoop_setup.sh
# Download Mahout 14.1, copy benchmark scripts, wiki data (/data/wiki),
# and categories (/user/categories)
bash fc/mahout_setup.shCopy the wiki dataset out of the CloudSuite data-analytics dataset container and transfer it into the VM at /data/wiki. Then copy the runtime files:
cp fc/hosts /etc/hosts
cp fc/benchmark.sh /root/benchmark.sh
chmod +x /root/benchmark.shNote: IPv6 must be enabled on the host and microVM.
Copy fc/hosts to /etc/hosts in the microVM.
In Firecracker:
Start master:
/root/docker-entrypoint.py --master --master-ip=127.0.0.1Start slave:
/root/docker-entrypoint.py --slave --master-ip=127.0.0.1Start benchmark:
/root/benchmark.shAdd to benchmark:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATHNote: IPv6 must be enabled on the host and microVM.