Cloud native risk analytics application stack leveraging
- Risk Calc Engine built using Akka Cluster as detailed here
- Cloud Native Object Store in Apache Hadoop Ozone
- Risk Aggregation and Analytics Engine using Apache Spark on Ozone
- Analytics Notebooks using Apache Zeppelin
all running on K8s equipped with Prometheus for metrics and monitoring.
Tech | Version |
---|---|
macOS | Mojave v10.14.3 |
Minikube | 1.0.0 (VirtualBox 5.2.22) |
Kubernetes | v1.14.0 |
Docker | CE 18.09.2 |
Helm | v2.13.1 |
Prometheus | 2.6 (w/ prometheus-operator) |
Skaffold | v0.26.0 |
Apache Hadoop Ozone | ozone-0.4 (rev 8d1c2184283ab292b44022c55668cba00d885181) |
Apache Spark | customized fork based off of 3.0.0-SNAPSHOT (rev a15f17ce277e21d4a1e6b6018a2faea1549d5506) |
Apache Zeppelin | customized fork based off of 0.9.0-SNAPSHOT (rev 97c845a6f39e60d93a553d9b438bb11fb38e0497) |
see scripts/setup/install-utils-mac.sh
-
Build the following project distributions and Docker images from source:
a. Apache Hadoop Ozone 0.4 [steps]
[OPTIONAL]
b. Apache Spark 3.0 [steps] | [prebuilt image - amolthacker/spark:3.0.0]
c. Apache Zeppelin 0.9 [steps] | [prebuilt image - amolthacker/zeppelin:0.9.0-snapshot]
d.
spark-ozone
image [steps] | [amolthacker/spark-ozone:3.0.0] -
Install the built
hadoop-ozone
pom and jars in local maven repo$ ./scripts/common/setup-ozlib-mvn.sh
-
Build the
compute-engine
code and Docker image$ ./rebuild-app.sh
-
Spin up a Minikube cluster (GKE soon) and deploy
Hadoop Ozone
and thecompute-engine
app in K8s$ ./redeploy-minikube.sh
The script automates the following steps:
a. Spins up
minikube K8s
clusterb. Deploys
Helm
c. Deploys
Prometheus
andIstio
d. Deploys
Hadoop Ozone
and initializes Ozone S3 bucketvaluations
e. Deploys the
compute-engine
appf. Deploys
Zeppelin
As the script executes, one should see the following:
-
Once the K8s infrastructure is up, one can forward service ports for access through local browser
$ sudo kubefwd svc -n default
One can now access the services as follows:
Service URL Ozone Manager http://om-public:9874 Ozone S3 Bucket Explorer http://s3g-public:9878/valuations?browser=true Zeppelin http://zeppelin-server/#/ and K8s Dashboard
$ minikube dashboard
-
One can submit
risk compute jobs
and have thecomput-engine
calculate risk metrics and persist them inOzone
$ ./scripts/submit-compute-batch Usage: ./scripts/common/submit-compute-batch -t, --k8s-type <mkube|gke|eks|aks> : K8s Type -n, --num-jobs <num_jobs> : No.of Valuation Jobs -s, --compute-svc <compute_svc_address> : Compute Service DNS/PIP -h, --help : Help
eg:
$ ./scripts/common/submit-compute-batch -t mkube -n 10 -s 192.168.99.100:30309
-
Launch
Zeppelin
in the browser and import notebooknotebook/hwxpe.json
-
Run the paragraphs for analytics on the computed risk metrics using
Spark on Ozone
-
Thanks to Anu Engineer, Marton Elek, Bharat Viswanadham for guidance