
Explore building a real-time streaming pipeline using Kafka for data streaming, Spark plus Scala for processing, and Cassandra for storage, with Ubuntu setup and end-to-end execution.
Consult the course documents to access the command list used throughout the course, available in the resources accompanying the video lecture and to assist during software installations and pipeline creation.
Rent a ubuntu machine on digital ocean, sign up, create a project, and set up a droplet with a password. Launch the ubuntu machine when ready and terminate when done.
Download and install PuTTY, then connect to your Ubuntu machine on DigitalOcean using the root username and the IPv4 address, entering the password to log in.
Install Java on Ubuntu first, run sudo apt-get update, verify with java -version, then proceed with installing Kafka, Hadoop, Spark, and Cassandra for an end-to-end streaming pipeline.
Install and configure Apache Kafka with Zookeeper to enable real-time streaming pipelines; create directories, download and unzip Kafka, update config with IPv4 address, then start Zookeeper and Kafka to test.
Install hadoop on Ubuntu by downloading the hadoop tar archive, moving it to /usr/local/hadoop, updating .bashrc with the hadoop bin path, sourcing the changes, and verifying installation.
Install Spark 2.4.8 with Scala 2.11, ensure compatibility with the Cassandra Connector, update the bashrc with Spark path, source changes, and launch Spark shell.
Install Apache Cassandra, the NoSQL database, on Ubuntu by adding the repository, installing apt-transport-https, importing the GPG key, updating repositories, and enabling the service, then connect to Cassandra via SQL command.
Create a Cassandra keyspace and a table with json fields from the Game of Thrones dataset—character name, actor name, house name, nickname—for future spark streaming.
Demonstrate setting up Kafka producer and consumer across two Ubuntu sessions with a shared topic, and review topic deletion steps and code for spark-driven ingestion.
Explore Spark streaming code that reads from the topic my topic, creates a streaming dataframe, and uses foreachBatch to write real-time data to Cassandra, delivering the end-to-end pipeline.
Execute a real-time streaming pipeline with Kafka, Spark, and Cassandra by launching multi-node services, running Spark streaming code, and validating data flow into Cassandra.
Destroy the cloud droplet at the end of the project to avoid real-money costs, and learn how to safely terminate an Ubuntu instance on DigitalOcean or other clouds.
The course is designed to provide a comprehensive understanding of real-time big data processing using Kafka, Spark, and Cassandra. In today's world, data is produced at an unprecedented rate, and the ability to process and analyze this data in real-time is critical for making informed decisions. This course focuses on the fundamental concepts and architecture of Kafka, Spark, and Cassandra, and how they work together to create a robust big data processing pipeline.
Students will learn how to set up Kafka clusters and work with Kafka producers and consumers. Students will also learn about Kafka Streams, a client library for building real-time streaming applications that process data directly within Kafka.
Throughout the course, students will gain hands-on experience through practical exercises and projects that simulate real-world scenarios. By the end of the course, students will have a understanding of how to use Kafka, Spark, and Cassandra to build real-time big data processing systems.
Course Objectives:
Understand the fundamental concepts of real-time big data processing
Learn the architecture setup of Kafka, Spark, and Cassandra
Understand how Kafka, Spark, and Cassandra work together to create a real-time big data processing pipeline
Gain hands-on experience with Kafka, Spark, and Cassandra through practical exercises and projects
Learn how to build a real-time big data processing pipeline from scratch
This course is intended for software engineers, data engineers, and data analysts who have a basic understanding of programming concepts and are familiar with SQL.