Data Analyst Training for Apache Hadoop

Course Overview

This four-day hands-on training course delivers the key concepts and expertise participants need to ingest and process data on a Hadoop cluster using the most up-to-date tools and techniques. Employing Hadoop ecosystem projects such as Spark, Hive, Flume, Sqoop, and Impala, this training course is the best preparation for the real-world challenges faced by Hadoop developers. Participants learn to identify which tool is the right one to use in a given situation, and will gain hands-on experience in developing using those tools. Through instructor-led discussion and interactive, hands-on exercises, participants will learn Apache Spark and how it integrates with the entire Hadoop ecosystem, learning:

How data is distributed, stored, and processed in a Hadoop cluster

How to use Sqoop and Flume to ingest data

How to process distributed data with Apache Spark

How to model structured data as tables in Impala and Hive

How to choose the best data storage format for different data usage patterns

Best practices for data storage


Course Details

Introduction to Hadoop and the Hadoop Ecosystem

Problems with Traditional

Large-scale Systems

Hadoop

The Hadoop EcoSystem

Hadoop Architecture and HDFS

Distributed Processing on a Cluster

Storage: HDFS Architecture

Storage: Using HDFS

Resource Management: YARN Architecture

Resource Management: Working with YARN

Importing Relational Data with Apache Sqoop

Sqoop Overview

Basic Imports and Exports

Limiting Results

Improving Sqoop’s Performance

Sqoop 2

Introduction to Impala and Hive

Introduction to Impala and Hive

Why Use Impala and Hive?

Comparing Hive to Traditional Databases

Hive Use Cases

Modeling and Managing Data with Impala and Hive

Data Storage Overview

Creating Databases and Tables

Loading Data into Tables

HCatalog

Impala Metadata Caching

Data Formats

Selecting a File Format

Hadoop Tool Support for File Formats

Avro Schemas

Using Avro with Hive and Sqoop

Avro Schema Evolution

Compression

Data Partitioning

Partitioning Overview

Partitioning in Impala and Hive

Capturing Data with Apache Flume

What is Apache Flume?

Basic Flume Architecture

Flume Sources

Flume Sinks

Flume Channels

Flume Configuration

Spark Basics

What is Apache Spark?

Using the Spark Shell

RDDs (Resilient Distributed Datasets)

Functional Programming in Spark

Working with RDDs in Spark

A Closer Look at RDDs

Key-Value Pair RDDs

MapReduce

Other Pair RDD Operations

Writing and Deploying Spark Applications

Spark Applications vs. Spark Shell

Creating the SparkContext

Building a Spark Application (Scala and Java)

Running a Spark Application

The Spark Application Web UI

Configuring Spark Properties

Logging

Parallel Programming with Spark

Review: Spark on a Cluster

RDD Partitions

Partitioning of File-based RDDs

HDFS and Data Locality

Executing Parallel Operations

Stages and Tasks

Spark Caching and Persistence

RDD Lineage

Caching Overview

Distributed Persistence

Common Patterns in Spark Data Processing

Common Spark Use Cases

Iterative Algorithms in Spark

Graph Processing and Analysis

Machine Learning

Example: k-means

Preview: Spark

Spark SQL and the SQL Context

Creating DataFrames

Transforming and Querying DataFrames

Saving DataFrames

Comparing Spark SQL with Impala


Prerequisites

This course is designed for developers and engineers who have programming experience. Apache Spark examples and hands-on exercises are presented in Scala and Python, so the ability to program in one of those languages is required. Basic familiarity with the Linux command line is assumed. Basic knowledge of SQL is helpful. Prior knowledge of Hadoop is not required.