This class will introduce key concepts and state-of-the-art in big data systems.
We will cover both the
theory of big data systems (the underlying computational model and its constraints, data
organization, execution engines, schedulers, and programming models for batch, streaming, and
learning) as well as practice (via programming assignments that help you learn to use big data
systems).
On the theory front, after covering the basics of modern hardware and software infrastructures that
these systems leverage, we will explore the systems themselves from the ground up. Specifically,
topics we cover will include:
● Cluster architecture
● Big Data stacks: Hadoop, Spark
● Scheduling and Resource Management
● Machine learning
● Batch and stream analytics
● Graph processing
● Modern cloud (serverless) platforms for big data
There is no text book for the class. We will read and cover material from portions of research papers
for each topic. The reading list will be posted on the course web page and specific reading pointers
will be provided prior to each lecture.
On the practice front, we will do programming 4-5 assignments covering:
● Batch analytics in Hadoop and Spark
● Streaming and graph processing in Spark
● Machine learning and distributed training
Course will be graded based on programming assignments, two exams, and in-class participation.