Storage and Analysis at Internet Scale

Ready to unlock the power of your data? With this comprehensive guide, you’ll learn how to build and maintain reliable, scalable, distributed systems with Apache Hadoop. This book is ideal for programmers looking to analyze datasets of any size, and for administrators who want to set up and run Hadoop clusters.

You’ll find illuminating case studies that demonstrate how Hadoop is used to solve specific problems. This third edition covers recent changes to Hadoop, including material on the new MapReduce API, as well as MapReduce 2 and its more flexible execution model (YARN).

  • Store large datasets with the Hadoop Distributed File System (HDFS)
  • Run distributed computations with MapReduce
  • Use Hadoop’s data and I/O building blocks for compression, data integrity, serialization (including Avro), and persistence
  • Discover common pitfalls and advanced features for writing real-world MapReduce programs
  • Design, build, and administer a dedicated Hadoop cluster—or run Hadoop in the cloud
  • Load data from relational databases into HDFS, using Sqoop
  • Perform large-scale data processing with the Pig query language
  • Analyze datasets with Hive, Hadoop’s data warehousing system
  • Take advantage of HBase for structured and semi-structured data, and ZooKeeper for building distributed systems

Tom White

Tom White has been an Apache Hadoop committer since February 2007, and is a member of the Apache Software Foundation. He works for Cloudera, a company set up to offer Hadoop support and training. Previously he was as an independent Hadoop consultant, working with companies to set up, use, and extend Hadoop. He has written numerous articles for O'Reilly, and IBM's developerWorks, and has spoken at several conferences, including at ApacheCon 2008 on Hadoop. Tom has a Bachelor's degree in Mathematics from the University of Cambridge and a Master's in Philosophy of Science from the University of Leeds, UK.

  1. Chapter 1 Meet Hadoop

    1. Data!

    2. Data Storage and Analysis

    3. Comparison with Other Systems

    4. A Brief History of Hadoop

    5. Apache Hadoop and the Hadoop Ecosystem

    6. Hadoop Releases

  2. Chapter 2 MapReduce

    1. A Weather Dataset

    2. Analyzing the Data with Unix Tools

    3. Analyzing the Data with Hadoop

    4. Scaling Out

    5. Hadoop Streaming

    6. Hadoop Pipes

  3. Chapter 3 The Hadoop Distributed Filesystem

    1. The Design of HDFS

    2. HDFS Concepts

    3. The Command-Line Interface

    4. Hadoop Filesystems

    5. The Java Interface

    6. Data Flow

    7. Data Ingest with Flume and Sqoop

    8. Parallel Copying with distcp

    9. Hadoop Archives

  4. Chapter 4 Hadoop I/O

    1. Data Integrity

    2. Compression

    3. Serialization

    4. Avro

    5. File-Based Data Structures

  5. Chapter 5 Developing a MapReduce Application

    1. The Configuration API

    2. Setting Up the Development Environment

    3. Writing a Unit Test with MRUnit

    4. Running Locally on Test Data

    5. Running on a Cluster

    6. Tuning a Job

    7. MapReduce Workflows

  6. Chapter 6 How MapReduce Works

    1. Anatomy of a MapReduce Job Run

    2. Failures

    3. Job Scheduling

    4. Shuffle and Sort

    5. Task Execution

  7. Chapter 7 MapReduce Types and Formats

    1. MapReduce Types

    2. Input Formats

    3. Output Formats

  8. Chapter 8 MapReduce Features

    1. Counters

    2. Sorting

    3. Joins

    4. Side Data Distribution

    5. MapReduce Library Classes

  9. Chapter 9 Setting Up a Hadoop Cluster

    1. Cluster Specification

    2. Cluster Setup and Installation

    3. SSH Configuration

    4. Hadoop Configuration

    5. YARN Configuration

    6. Security

    7. Benchmarking a Hadoop Cluster

    8. Hadoop in the Cloud

  10. Chapter 10 Administering Hadoop

    1. HDFS

    2. Monitoring

    3. Maintenance

  11. Chapter 11 Pig

    1. Installing and Running Pig

    2. An Example

    3. Comparison with Databases

    4. Pig Latin

    5. User-Defined Functions

    6. Data Processing Operators

    7. Pig in Practice

  12. Chapter 12 Hive

    1. Installing Hive

    2. An Example

    3. Running Hive

    4. Comparison with Traditional Databases

    5. HiveQL

    6. Tables

    7. Querying Data

    8. User-Defined Functions

  13. Chapter 13 HBase

    1. HBasics

    2. Concepts

    3. Installation

    4. Clients

    5. Example

    6. HBase Versus RDBMS

    7. Praxis

  14. Chapter 14 ZooKeeper

    1. Installing and Running ZooKeeper

    2. An Example

    3. The ZooKeeper Service

    4. Building Applications with ZooKeeper

    5. ZooKeeper in Production

  15. Chapter 15 Sqoop

    1. Getting Sqoop

    2. Sqoop Connectors

    3. A Sample Import

    4. Generated Code

    5. Imports: A Deeper Look

    6. Working with Imported Data

    7. Importing Large Objects

    8. Performing an Export

    9. Exports: A Deeper Look

  16. Chapter 16 Case Studies

    1. Hadoop Usage at

    2. Hadoop and Hive at Facebook

    3. Nutch Search Engine

    4. Log Processing at Rackspace

    5. Cascading

    6. TeraByte Sort on Apache Hadoop

    7. Using Pig and Wukong to Explore Billion-edge Network Graphs

  17. Appendix Installing Apache Hadoop

    1. Prerequisites

    2. Installation

    3. Configuration

  18. Appendix Cloudera’s Distribution Including Apache Hadoop

  19. Appendix Preparing the NCDC Weather Data

  20. Colophon