Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2...

29
Hadoop – An Overview - Socrates CCDH

Transcript of Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2...

Page 1: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop – An Overview

- Socrates CCDH

Page 2: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

What is Big Data?

• Volume Not Gigabyte. Terabyte, Petabyte, Exabyte, Zettabyte

- Due to handheld gadgets ,and HD format images and videos- In total data, 90% of them collected in last 2 years.

• Variety Structured, Semi-structured, and un-structured data- Due to texting, mms, various audio and video formats, and file formats

• Velocity Rate at which data is produced- Due to proliferation of technology, social media websites, texting, mms etc

Page 3: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Challenges with Big Data

• Storage- How can I store such large data?

- What are the options available?

• Network Bandwidth- How can I transport the data to my application?

- How can I efficiently use the Corporate Network?

• Performance- How can I seek, retrieve, and work on the data?

- What will be the performance?

• Fault Tolerance- What if my database fails? Or What if I want to upgrade my DB?

- Can I continue to serve my customers? In other words, is my system fault tolerant?

Page 4: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

What is the Solution?

Hadoop

Page 5: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

What is Hadoop?

• Not a single technology, but an Eco-system

• Not a RDBMS, but a File System

• Developed in Java – supports Ruby, Pearl, and Python scripts. Supports C, C++

• Can be integrated with NoSQL DB – Not Only SQL (Hbase, MongoDB, Cassandra, Neo4J, Riak)

• Not a silver-bullet solution – does not solve all the problems in an Enterprise

Page 6: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Two Core Projects

1. HDFS – Hadoop Distributed File System

– A scalable, fault-tolerant file system

– Meant for storing of large files (small number of large files)

2. MR (MapReduce) Framework– A computational framework that works on top of

HDFS

Page 7: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Architecture & Processes

• Master - Slave Architecture

Components Master Slave

HDFS Name Node,Secondary Name Node

Data Node

Map Reduce Job Tracker Task Tracker

• Daemon Processes

1. Name Node2. Secondary Name Node3. Job Tracker

One process each

4. Data Node5. Task Tracker

Many processes

Page 8: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Rack-1 Switch Rack-2 Switch Rack-3 Switch

Network Switch

Rack-1 Rack-2 Rack-3

Data Node/ Task Tracker

Data Node/ Task Tracker

Name Node Sec Name Node

Job Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

MASTER

SLAVE

Hadoop Infrastructure - PROD Cluster

Page 9: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop Infrastructure

• Rack Servers as opposed to Blade Servers

• Commodity hardware

• Graceful addition or removal of nodes

• Fault Tolerant

• Can run on any OS(Unix, Mac, Windows)

Rack-1 Switch

Rack-1

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Data Node/ Task Tracker

Page 10: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

File

B1

B1B1B1

B2

B2B2B2

100 MB

64 MB 36 MB

Rack-2 Switch Rack-3 Switch Rack-4 Switch

B1

B1

B1

B2

B2B2

Network Switch

Rack-2 Rack-3 Rack-4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Rack-1 Switch

Rack-1

Name Node

Sec Name Node

Job Tracker

- - -

MASTER SLAVE

HDFS – File Copy

Page 11: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Rack-2 Switch Rack-3 Switch Rack-4 Switch

B1

B1

B1

B2

B2B2

Network Switch

Rack-2 Rack-3 Rack-4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Rack-1 Switch

Rack-1

Name Node

Job Tracker

- - -

HDFS – Fault Tolerance

Sec Name Node

Page 12: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Rack-2 Switch Rack-3 Switch Rack-4 Switch

B1

B1

B1

B2

B2B2

Network Switch

Rack-2 Rack-3 Rack-4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Rack-1 Switch

Rack-1

Name Node

Job Tracker

- - -

B1

HDFS – Fault Tolerance

1. Node 3 in Rack-3 goes down

2. Block B1 gets copied onto Node 1 in Rack-3 to maintain replication factor

Sec Name Node

Page 13: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Rack-2 Switch Rack-3 Switch Rack-4 Switch

B1

B1

B2

B2B2

Network Switch

Rack-2 Rack-3 Rack-4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 4

Node 1

Node 2

Node 3

Node 4

Rack-1 Switch

Rack-1

Name Node

Job Tracker

- - -

B1

HDFS – Fault Tolerance

B1 Node 3

1. Node 3 in Rack-3 goes down

2. Block B1 gets copied onto Node 1 in Rack-3 to maintain replication factor

3. Node 3 in Rack-3 comes-up after some time

4. Block B1 from Node 3 in Rack-3 gets deleted to maintain replication factor

Sec Name Node

Page 14: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

HDFS Summary

• Name Node is a Single Point of Failure (SPOF) in HDFS

• Name Node maintains metadata. They are, list of1. blocks in each data node – Helps replicate the blocks in the event of Data Node failure

2. files and directories in HDFS. hadoop fs –ls

3. # of blocks and its location for a given file (foo.txt-B1,B2; faa.txt-B3,B4,B5)

4. operations carried out in HDFS

• Secondary Name Node:1. NOT a backup name node

2. Copies namespace image and log data from Name Node to permanent storage

3. Helps bring-up the Name Node in case of failure

• Default block size: 64 MB

• Default replication factor: 3

• HDFS storage capacity: (Cluster Capacity/ Repl factor)

Page 15: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

• Data Node stores actual data

• Data Node sends periodical “Heartbeat signal” (block report, storage capacity) - say every few secs to Name Node

• Name Node contacts Data node as response to Heartbeat signal only

• Under-replication and Over-replication carried-out through Heartbeat signals.

HDFS Summary – Contd..

Page 16: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Traditional Application

• Application size is constant, but data size varies

• Data gets transmitted through network where process/program resides

• Network capacity remains same, but “Volume” keeps increasing (remember ‘3-V’s ??)

Page 17: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Map Reduce

Move the code to where data resides – Data Localization

Components Master Slave

Map Reduce Job Tracker Task Tracker

Rack-2 Switch Rack-3 Switch Rack-4 Switch

B1

B1

B1

B2

B2B2

Network Switch

Rack-2 Rack-3 Rack-4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Node 1

Node 2

Node 3

Node 4

Rack-1

Name Node

Sec Name Node

Job Tracker

- - -

MASTER SLAVE

T1

T1

Rack-1 Switch

Page 18: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Map Reduce• Map Reduce consists of two phases

- Map Phase

- Reduce Phase

• Mapper accepts input as key/value pair and emits result as key/value pair

• Map function is called for one record per time.

• Reducer task starts after all Map tasks are done

• Reducer gets executed on the Mapper output

• Mapper & Reducer may output zero or more key/value pair

• Speculative Execution

Page 19: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

How Mapper Works?(Word count problem)

Block 1 Input Split 1 Rec Reader 1 Mapper 1

Reads Referenced DataActual Data Reference to Data Performs Mapping

Block 2

Block 3

Input Split 2

Input Split 3

Rec Reader 2

Rec Reader 3

Mapper 2

Mapper 3

Interm K/V Pair

Deer:1, Bear:1, River:1

Car:1, Car:1, River:1

Deer:1, Car:1, Deer:1

1 Deer Bear River2 Car Car River3 Deer Car Deer

Block 1 Input Split 1 Rec Reader 1 Mapper 1

Block 2

Block 3

Input Split 2

Input Split 3

Rec Reader 2

Rec Reader 3

Mapper 2

Mapper 3

Interm K/V Pair

Deer:1, Bear:1, River:1

Car:{1,1} , River:1

Deer:{1,1}, Car:1

Combiner 1

Combines Mapper O/P

Combiner 2

Combiner 3

W/O

Co

mb

ine

rW

ith

Co

mb

iner

Input: Key-Value pairOutput: Zero, one, or more interm Key-Value pair

Page 20: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

How Reducer Works?

Bear: 1Car: 3

Deer: 3River: 2

Interm K/V Pair

Deer:1, Bear:1, River:1

Car:1, Car:1, River:1

Deer:1, Car:1 , Deer:1

Bear: 1Car: 1Car: 1Car: 1

Deer: 1Deer: 1Deer: 1River: 1River: 1

Shuffling

Reducer

Bear: 1Car: 3Deer: 3River: 2

Output

Bear: 1Car: 3

Deer: 3River: 2

Interm K/V Pair

Deer:1, Bear:1, River:1

Car:{1,1}, River:1

Deer:{1,1} Car:1

Bear: 1Car: 2Car: 1

Deer: 1Deer: 2River: 1River: 1

Reducer

Bear: 1Car: 3Deer: 3River: 2

Output

W/O

Co

mb

ine

rW

ith

Co

mb

iner

PartitioningSorting

PartitioningSorting

Input: Interm Key-Value pair from MapperOutput: One value per key

Page 21: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Map Reduce Summary

• Data Localization

• Speculative Execution

• Parallel Processing

• Batch Processing

• Sorted Output based on key

• Combiners and Reducers are optional

Page 22: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Challenges with Big Data

• Storage- How can I store such large data?

- What are the options available?

• Network Bandwidth- How can I transport the data to my application?

- How can I efficiently use the Corporate Network?

• Performance- How can I seek, retrieve, and work on the data?

- What will be the performance?

• Fault Tolerance- What if my database fails? Or What if I want to upgrade my DB?

- Can I continue to serve my customers? In other words, is my system fault tolerant?

1. Distributed storage2. Add more machine w/o affecting the

Data/ App3. Increase hard disk capacity

1. MapReduce: Perform parallel processing

2. Minimize seek rate by reading full block of data

1. Data localization: Ship code to the data (as opposed to traditional model)

1. Make redundant data copy2. Speculative Execution

Page 23: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop Ecosystem

Hive – Developed by Facebook

• Provides SQL like interface

• Commands are converted into MapReduce jobs

• Can be used by users familiar with SQL

• Does not support all SQL capabilities (say sub-query)

HDFS

HIVE

Map

Red

uce

Metastore

SELECT * FROM employee;

SELECT * FROM employee

WHERE id > 100

ORDER BY ASC

LIMIT 20;

Page 24: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop Ecosystem

Pig – Developed by Yahoo!

• High level platform for MapReduce

• Uses PigLatin language

• Commands are converted into MapReduce jobs

• Does not require Metastore like HIVE

HDFS

HIVE

Map

Red

uce

Metastore

results = FILTER records BY project == ‘en’;

sorted_results = ORDER results BY $1 desc;

STORE sorted_results INTO ‘myResults’;

PIG

Page 25: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop Ecosystem

HBase Scalable distributed DB for random read/write

Ambari Web-based tool for managing and monitoring Hadoop clusters. Also provides Dashboard

Projects Description

Sqoop SQL-to-Hadoop. Helps transferring data from RDBMS to HDFS

Flume Distributed service for moving large data to HDFS. (say, server logs to HDFS)

Avro Data serialization mechanismMahout Scalable Machine learning, data mining library

YARN Yet Another Resource Negotiator MapReduce (V2)

Zookeeper High-performance co-ordination service

Page 26: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Hadoop Ecosystem

Whirr Java API that allows Hadoop to run on EC2 and other cloud services

Projects Description

HUE UI Framework and SDK for visual Hadoop apps

Impala Interface that provides SQL Query execution. Implemented in C++, does not use MR, 10-100 times faster than Hive

OOZIE Workflow engine that executes Pig, Hive, Sqoop, or MapReduce jobs. Workflow Engine & Coordinator Engine

G(i)raph Iterative graph processing system currently used by FB for analyzing social graph formed by users

Page 27: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Ingest / PropagateFlume, Sqoop

Describe, DevelopHive, Pig

Compute, SearchMapReduce, Giraph

PersistFile System: HDFS, MapR DFS

Serialization: AvroDBMS: Cassandra, Riak, MongoDB, Hbase, Neo4J, CouchBase

Monitor, AdminAmbari, Oozie, Zookeeper

Analytics, Machine LearningMahout

Hadoop Ecosystem

Page 28: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Who is using Hadoop?

• Netflix

• Yahoo!

• Facebook

• BFIS

Page 29: Hadoop An Overview - Socrates · Hadoop Ecosystem Whirr Java API that allows Hadoop to run on EC2 and other cloud services Projects Description HUE UI Framework and SDK for visual

Thank you!

Questions?