πŸ“ͺInstall on Spark History Server

Dataflint is implementing as a file system plugin to be loaded to Spark History Server

Spark History Server Installation Script

#!/bin/bash

cd $SPARK_HOME
DATAFLINT_VERSION="0.2.6"
# Step 1: Download the jar to the history server machine

wget -O /tmp/spark_2.12-$DATAFLINT_VERSION.jar https://repo1.maven.org/maven2/io/dataflint/spark_2.12/$DATAFLINT_VERSION/spark_2.12-$DATAFLINT_VERSION.jar

# Step 2: add dataflint jar to classpath
export SPARK_DAEMON_CLASSPATH=/tmp/spark_2.12-$DATAFLINT_VERSION.jar

# step 3: if history server already running, stop and start it again
./sbin/stop-history-server.sh
./sbin/start-history-server.sh

Alternative installation

Instead of environment variable, you can download the jar to the $SPARK_HOME/jars folder so it will be loaded automatically to spark history server

How it works

The jar includes a history server plugin that add the DataFlint UI when a spark UI app is being loaded from logs.

History Server does not support packages loading (Apache Ivy) like live spark app, so you need to download the jar and load it to the history server manually

Install on EMR history server

This method does not work on persistent EMR history server, and for the on-cluster the default AWS proxy currently doesn't work correctly so you need to do port-forward

Via bootstrap script

sudo su
DATAFLINT_VERSION="0.2.6"
if sudo grep isMaster /mnt/var/lib/info/instance.json | grep true;
then        
    sudo wget \
        -O /usr/lib/spark/jars/spark_2.12-$DATAFLINT_VERSION.jar \
        https://repo1.maven.org/maven2/io/dataflint/spark_2.12/$DATAFLINT_VERSION/spark_2.12-$DATAFLINT_VERSION.jar
fi

Via SSH

Connect to your EMR cluster via ssh and run the following commands:

sudo su
DATAFLINT_VERSION="0.2.6"
sudo wget \
-O /usr/lib/spark/jars/spark_2.12-$DATAFLINT_VERSION.jar \
https://repo1.maven.org/maven2/io/dataflint/spark_2.12/$DATAFLINT_VERSION/spark_2.12-$DATAFLINT_VERSION.jar

sudo systemctl stop spark-history-server.service
sudo systemctl start spark-history-server.service

From EMR terminated cluster

Go to your EMR terminated server, Applications tab and press "Spark History Server" to open the persistant history server

Press the "Download" button on the relevant application or applications

Extract the zip file to /tmp/spark-events, and then run the Install on Spark History Server locally on your machine

Running spark history server on your machine

In order to run the spark history server on your machine you need first to:

  1. Have java (version 8 or 11) installed on your machine, and set up JAVA_HOME

  2. Download spark from https://spark.apache.org/downloads.html and extract the downloaded zip somewhere on your machine

  3. Set up the SPARK_HOME environment variable to where you extracted Spark

Last updated