Learn By Example - Hadoop and MapReduce for Big Data problems



Taught by a 4 person team including 2 Stanford-educated, ex-Googlers and 2 ex-Flipkart Lead Analysts. This team has decades of practical experience in working with Java and with billions of rows of data. This course is a zoom-in, zoom-out, hands-on workout involving Hadoop, MapReduce and the art of thinking parallel. Let’s parse that. Zoom-in, Zoom-Out: This course is both broad and deep. It covers the individual components of Hadoop in great detail, and also gives you a higher level picture of how they interact with each other. Hands-on workout involving Hadoop, MapReduce : This course will get you hands-on with Hadoop very early on. You'll learn how to set up your own cluster using both VMs and the Cloud. All the major features of MapReduce are covered - including advanced topics like Total Sort and Secondary Sort. The art of thinking parallel: MapReduce completely changed the way people thought about processing Big Data. Breaking down any problem into parallelizable units is an art. The examples in this course will train you to "think parallel". What are the requirements? You'll need an IDE where you can write Java code or open the source code that's shared. IntelliJ and Eclipse are both great options. You'll need some background in Object-Oriented Programming, preferably in Java. All the source code is in Java and we dive right in without going into Objects, Classes etc. A bit of exposure to Linux/Unix shells would be helpful, but it won't be a blocker.


Lot's of cool stuff .. Using MapReduce to Recommend friends in a Social Networking site: Generate Top 10 friend recommendations using a Collaborative filtering algorithm. Build an Inverted Index for Search Engines: Use MapReduce to parallelize the humongous task of building an inverted index for a search engine. Generate Bigrams from text: Generate bigrams and compute their frequency distribution in a corpus of text. Build your Hadoop cluster: Install Hadoop in Standalone, Pseudo-Distributed and Fully Distributed modes. Set up a hadoop cluster using Linux VMs. Set up a cloud Hadoop cluster on AWS with Cloudera Manager. Understand HDFS, MapReduce and YARN and their interaction. Customize your MapReduce Jobs: Chain multiple MR jobs together. Write your own Customized Partitioner. Total Sort : Globally sort a large amount of data by sampling input files Secondary sorting Unit tests with MR Unit Integrate with Python using the Hadoop Streaming API .. and of course all the basics: MapReduce : Mapper, Reducer, Sort/Merge, Partitioning, Shuffle and Sort HDFS & YARN: Namenode, Datanode, Resource manager, Node manager, the anatomy of a MapReduce application, YARN Scheduling, Configuring HDFS and YARN to performance tune your cluster.

Goal of Course

Develop advanced MapReduce applications to process BigData. Master the art of "thinking parallel" - how to break up a task into Map/Reduce transformations. Self-sufficiently set up their own mini-Hadoop cluster whether it's a single node, a physical cluster or in the cloud. Use Hadoop + MapReduce to solve a wide variety of problems : from NLP to Inverted Indices to Recommendations. Understand HDFS, MapReduce and YARN and how they interact with each other. Understand the basics of performance tuning and managing your own cluster.


Why is Big Data a Big Deal

Installing Hadoop in a Local Environment

The MapReduce - Hello World

Run a MapReduce Job

Juicing your MapReduce - Combiners, Shuffle and Sort and The Streaming API

HDFS and Yarn

MapReduce Customizations For Finer Grained Control

The Inverted Index, Custom Data Types for Keys, Bigram Counts and Unit Tests

Input and Output Formats and Customized Partitioning

Recommendation Systems using Collaborative Filtering

Hadoop as a Database

Setting up a Hadoop Cluster