The goal of the Spark Administration and Monitoring Workshop is to give you a practical, complete and hands-on introduction to Apache Spark and the tools to manage, monitor, troubleshoot and fine-tune Spark infrastructure.
NOTE: The workshop uses a tailor-made Docker image but it is also possible to use a commercial distribution for Spark like Cloudera's CDH (possibly Hortonworks Data Platform (HDP) or MapR Sandbox).
The workshop uses an intense learn-by-doing approach in which the modules start with just enough knowledge to get you going and quickly move on to applying the concepts in assignments. There are a lot of practical exercises.
The workshop comes with many practical sessions that should meet (and possibly exceed) expectations of administrators, operators, devops, and other technical roles like system architects or technical leads (perhaps also software developers for whom Spark and Scala (Application Development) Workshop might be a better fit).
CAUTION: The workshop is very hands-on and practical, i.e. not for faint-hearted. Seriously! After just a couple of days your mind, eyes, and hands will all be trained to recognise the patterns how to set up and operate Spark infrastructure in your Big Data projects.
CAUTION I have already trained people who expressed their concern that there were too many exercises. Your dear drill sergeant, Jacek.
5 days
- Aspiring Spark administrators, operators, devops
- Perhaps system architects or technical leads
- Anatomy of Spark Data Processing
SparkContext
- SparkConf
- Transformations and Actions
- Units of Physical Execution: Jobs, Stages, and Tasks
- RDD Lineage
- DAG View of RDDs
- Logical Execution Plan
- Spark Execution Engine
- DAGScheduler
- TaskScheduler
- Scheduler Backends
- Executor Backends
- Partitions and Partitioning
- Shuffle
- Wide and Narrow Dependencies
- Caching and Persistence
- Checkpointing
- Elements of Spark Runtime Environment
- The Driver
- Executors
- TaskRunners
- Deploy Modes
- Spark Clusters
- Master and Workers
- RPC Environment (RpcEnv)
- BlockManagers
- Spark Tools
spark-shell
spark-submit
- web UI
spark-class
- Monitoring Spark Applications using web UI
- The Different Tabs in web UI
- Exercise: Monitoring using web UI
- Executing Spark Jobs to Enable Different Statistics and Statuses
- Spark on Hadoop YARN cluster
- Exercise: Setting up Hadoop YARN
- Accessing Resource Manager's web UI
- Exercise: Submitting Applications using
spark-submit
--master yarn
yarn-site.xml
yarn application -list
yarn application -status
yarn application -kill
- Runtime Properties - Meaning and Application
- Troubleshooting
- log files
- YarnShuffleService -- ExternalShuffleService on YARN
- Multi-tenant YARN Cluster Setup and Spark
- Overview of YARN Schedulers (e.g. Capacity Scheduler)
spark-submit --queue
- Clustering Spark using Spark Standalone
- Exercise: Setting up Spark Standalone
- Using standalone Master's web UI
- Exercise: Submitting Applications using spark-submit
--master spark://...
--deploy-mode
withclient
andcluster
- Clustering Spark using Spark Standalone
- Tuning Spark Infrastructure
- Exercise: Configuring CPU and Memory for Master and Executors
- Exercise: Observing Shuffling using
groupByKey
-like operations. - Scheduling Modes: FIFO and FAIR
- Exercise: Configuring Pools in FAIR Scheduling Mode
- Monitoring Spark using
SparkListeners
LiveListenerBus
StatsReportListener
- Event Logging using
EventLoggingListener
and History Server - Exercise: Event Logging using
EventLoggingListener
- Exercise: Developing Custom SparkListener
- Dynamic Allocation (of Executors)
- External Shuffle Service
- Spark Metrics System
- (optional) Using Spark Streaming and Kafka
- (optional) Clustering Spark using Apache Mesos
- Exercise: Setting up Mesos cluster
- Exercise: Submitting Applications using
spark-submit
--master mesos://...
- Training classes are best for groups up to 8 participants.
- Participants have decent computers, preferably with Linux or Mac OS operating systems
- There are issues with running Spark on Windows (mostly with Spark SQL / Hive).
- Participants have to download the following packages to their computers before the class:
- spark-1.6.1-bin-hadoop2.6.tgz
- Optional downloads (have them ready):
- kafka_2.11-0.10.0.0.tgz
- H2 Database Engine - download zip file with Version 1.4.191 for All Platforms
- apache-cassandra-3.6-bin.tar.gz
- Cassandra Spark Connector by executing the following command:
$SPARK_HOME/bin/spark-shell --packages datastax:spark-cassandra-connector:1.6.0-M2-s_2.11
- (optional) PostgreSQL 9.5.2 (or later) and JDBC42 Postgresql Driver 9.4-1208 (or later)
- Participants are requested to
git clone
this project and follow README.