This application exposes a simple web service that servers (GET) requests that will use Apache Spark to rougly calculate the value of π. This code is based on the Spark PI Example that is distributed with the Spark project. It is a tutorial application to show how to get started using Scala with the Radanalytics platform, and is intended to be deployed to Openshift.
In addition to demonstrating how to deploy a simple Scala microservice to Openshift, it also contains examples of how to unit test Spark jobs using the Spark Testing Base project.
It is a prerequesite that you have an Openshift cluster running and are logged in with the oc
command line tool.
-
Setup the project and import the Radanalytics resources
oc new-project oshinko oc create -f https://radanalytics.io/resources.yaml oc new-app oshinko-webui
-
Create an Apache Spark Cluster
- Go to the Oshinko WebUI you installed on Openshift. From the Oshinko console, choose 'Deploy' and create an Apache Spark cluster named 'spark'
-
Deploy the Application
oc new-app --template oshinko-scala-spark-build-dc \ -p APPLICATION_NAME=tutorial-sparkpi-scala-scalatra \ -p GIT_URI=https://github.com/reynoldsm88/tutorial-sparkpi-scala-scalatra \ -p APP_MAIN_CLASS=io.radanalytics.examples.scalatra.sparkpi.Main \ -p APP_FILE=tutorial-sparkpi-scala-scalatra-assembly-0.0.1-SNAPSHOT.jar \ -p SBT_ARGS="clean assembly" \ -p APP_ARGS="-Xms1024M, -Xmx2048M, -XX:MaxMetaspace=1024M" \ -p OSHINKO_CLUSTER_NAME="spark"
-
Expose the Route
oc expose svc/tutorial-sparkpi-scala-scalatra
-
Check that the service is running and can perform calculations
URL="http://$(oc get route tutorial-sparkpi-scala-scalatra | grep tutorial-sparkpi-scala-scalatra | awk '{print $2}')/sparkpi" curl $URL