Hadoop Platform as a Service in the Cloud

Netflix Technology Blog
14 min readintermediate
--
View Original

Overview

The article discusses Netflix's unique cloud-based Hadoop architecture, which leverages Amazon S3 as the primary data warehouse, enabling dynamic scalability and multiple Hadoop clusters for various workloads. It also introduces Genie, Netflix's in-house Hadoop Platform as a Service (PaaS) that streamlines job execution and resource management through RESTful APIs.

What You'll Learn

1

How to leverage Amazon S3 for data storage in a cloud-based Hadoop architecture

2

Why using multiple Hadoop clusters can optimize workload management

3

How to implement a RESTful API for job submission in Hadoop using Genie

4

When to use transient clusters for dynamic resource management in cloud environments

Prerequisites & Requirements

  • Understanding of Hadoop ecosystem components like HDFS, Hive, and Pig
  • Familiarity with RESTful APIs and cloud services like AWS(optional)

Key Questions Answered

How does Netflix manage its Hadoop data warehouse in the cloud?
Netflix utilizes Amazon S3 as the primary data warehouse, enabling high durability and availability. This allows for dynamic scaling of Hadoop clusters without the need for data replication across clusters, facilitating efficient access to large datasets and improving resource management.
What is Genie and how does it enhance Hadoop job management?
Genie is a Hadoop Platform as a Service developed by Netflix that provides a RESTful API for submitting and managing Hadoop, Hive, and Pig jobs without needing to provision new clusters. It abstracts backend configurations and allows for scalable job submissions across multiple clusters.
What are the advantages of using S3 over HDFS for data storage?
S3 offers 99.999999999% durability and 99.99% availability, along with features like bucket versioning and elastic storage capacity. Unlike HDFS, S3 allows Netflix to grow its data warehouse organically without pre-provisioning storage, although it may have slower read/write speeds.
How does Netflix handle dynamic resource management with Genie?
Netflix uses Genie to manage dynamic resource allocation by leveraging surplus reserved instances during low-demand periods. This allows them to spin up additional clusters as needed and easily manage job submissions without impacting ongoing processes.

Key Statistics & Figures

Data warehouse growth
From a few hundred terabytes to petabytes
This growth was achieved without pre-provisioning storage resources, showcasing the elasticity of using S3.
Cluster size for query and production
500+ nodes
Both the query and production clusters are sized similarly to handle large workloads efficiently.
Job submissions handled by Genie
Hundreds of concurrent job submissions
Genie supports a high volume of job submissions, demonstrating its capability to scale with demand.

Technologies & Tools

Storage
Amazon S3
Used as the primary data warehouse for Netflix's cloud-based Hadoop architecture.
Backend
Hadoop
Core framework for processing large datasets in Netflix's data architecture.
Paas
Genie
Provides a RESTful API for job submission and resource management in the Hadoop ecosystem.
Analytics
Hive
Used for ad hoc queries and analytics within the Hadoop framework.
Etl
Pig
Utilized for ETL processes and algorithms in the data pipeline.
Cloud Service
Amazon Elastic Mapreduce (emr)
Provides Hadoop infrastructure as a service for running Hadoop jobs.

Key Actionable Insights

1
Utilize Amazon S3 as your primary data storage solution for cloud-based big data applications to enhance durability and scalability.
By using S3, organizations can avoid the complexities of data replication and benefit from its high availability and versioning features, which are essential for managing large datasets effectively.
2
Implement a multi-cluster Hadoop architecture to optimize resource allocation and workload management.
This approach allows different teams to run ad hoc queries and production jobs simultaneously without data redundancy, improving efficiency and responsiveness to varying workloads.
3
Consider developing a RESTful API for job management in Hadoop environments to streamline operations and reduce overhead.
A service like Genie can abstract backend complexities, allowing teams to focus on job execution rather than infrastructure management, which is crucial for scaling operations.

Common Pitfalls

1
Over-reliance on a single type of storage can lead to performance bottlenecks.
Using only HDFS for storage can create issues with data accessibility and cluster management. By diversifying storage solutions, such as integrating S3, organizations can mitigate these risks.

Related Concepts

Big Data Architecture
Cloud Computing
Data Warehousing
Etl Processes