Distributed architectures for big data processing and analytics (2025/2026)

Distributed architectures for big data processing and analytics (2025/2026)

General Information

SSD: ING-INF/05

CFU: 8

Professor: Paolo Garza

Teaching Assistants: Simone Papicchio


Teaching material

Introduction

  • Introduction to the course content and exam rules (pdf) – This slide deck contains the exam rules, which are also provided in the course description (link)
  • Introduction to Big Data (pdf)
  • Big Data Architectures (pdf)

Hadoop and MapReduce

  • Introduction to Apache Hadoop and the MapReduce programming paradigm (pdf)
  • Hadoop implementation of MapReduce (pdf)
    • BigData@Polito environment + Jupyter – How to submit MapReduce jobs on BigData@Polito (slides)
  • MapReduce – Design patterns – Part 1 (pdf)
  • MapReduce and Hadoop – Advanced Topics: Multiple inputs, Multiple outputs, Distributed cache (pdf)
  • MapReduce – Design patterns – Part 2 (pdf)
  • MapReduce – Relational Algebra/SQL operators (pdf)

Spark

  • Introduction to Apache Spark (pdf)
    • How to submit Spark applications (pdf)
    • How to use Jupyter Notebooks for your Spark applications (pdf)
    • You can install PySpark and JupyterLab using Conda/Miniconda/pip (instructions here)
  • RDD-based programs
    • RDDs: creation, basic transformations, and actions (pdf)
    • Key-value RDDs: transformations and actions on key-value RDDs (pdf)
      • Inner join, left outer join, right outer join, full outer join, and “NOT IN” with PairRDDs: Examples – Notebook (JoinsRDD.zip)
    • DoubleRDDs (pdf)
    • Advanced Topics: Cache, accumulators, broadcast variables, custom partitioners, broadcast join (pdf)
  • Spark SQL and DataFrames
  • Data mining and Machine learning algorithms with Spark MLlib
  • GraphX/GraphFrames
    • Introduction to GraphX and GraphFrames (pdf)
    • Graph Algorithms with GraphFrames (pdf)
      • Simple example – Jupyter notebook (GraphFrameExamples.zip)
      • Select kernel GraphFrames (Yarn) to run it on jupyter.polito.it
      • Run “pyspark –packages graphframes:graphframes:0.8.1-spark3.0-s_2.12 –repositories https://repos.spark-packages.org” to run it locally on your PC – Use package graphframes:graphframes:0.8.0-spark2.4-s_2.11 if you locally installed Spark 2 instead of Spark 3
  • Streaming data analytics

Exercises

MapReduce

  • MapReduce Exercises (slides)
  • Linux or Mac: Basic project for MapReduce applications (based on Maven) (MapReduceBasicProject.zip) (pdf)
  • Windows: Basic project for MapReduce applications (based on Maven) (MapReduceBasicProjectWindows.zip)
    • How to configure the Windows environment to run MapReduce applications locally on your PC(ConfigureWindowsEnviroment.pdf)
    • You must also install JDK 1.8 and select it for the imported project inside the IDE. If you have already installed the JDK environment but the version is greater than JDK 1.8, you must also install JDK 1.8.
    • Winutils executable (winutils.zip)
  • If you use your PC to write and run your code locally, use the projects based on Maven (those projects can be run locally).
  • If you use the PC available in the LAB, import the projects with libraries as reported in the first lab (those projects cannot be run locally, but only on the cluster by exporting the project jar file).

Spark

Laboratory Material

No lab activities during the first week.

Team 1: Students from A to D – Tuesday from 11:30 to 13:00 (First lab activity – March 3, 2026) @ LABINF
Team 2: Students from E to M – Friday from 11:30 to 13:00 (First lab activity – March 6, 2026) @ LABINF
Team 3: Students from N to Z – Friday from 16:00 to 17:30 (First lab activity – March 6, 2026) @ LABINF

ScheduleProblem specification and input dataSolution (Maven-based for Java)
Team 1: March 3, 2026 – 11:30-13:00
Team 2: March 6, 2026 – 11:30-13:00
Team 3: March 6, 2026 – 16:00-17:30
Lab 1: Hadoop and MapReduce
Problem specification (pdf)
– Basic project with libraries and small example dataset (Lab1_BigData_with_libraries_vscode.zip)
– Basic project based on Maven – Use this version to run the MapReduce application locally on your own PC (DO NOT USE IT AT LABINF)
— Linux and macOS Maven-based project (Lab1.zip)
— Windows Maven-based project (Lab1_Windows.zip)
Bigger dataset: finefoods_text.txt (zip)
Solution: Bonus track Lab1_SolBonusMvn.zip

Previous exam examples

Additional material

Slides and screencasts about Java (kindly provided by Prof. Torchiano) (link)
Focus on the following subset of slides/lectures (for students who have never used Java):
— OO Paradigm and UML (The UML part is not mandatory)
— The Java Environment
— Java Basic Features
— Java Inheritance

Other material about Java (link)