Tcloud Computing Hadoop Family and Ecosystem Service 2013.Q3

82
TCloud Computing, Inc. Hadoop Product Family and Ecosystem

Transcript of Tcloud Computing Hadoop Family and Ecosystem Service 2013.Q3

TCloud Computing, Inc.

Hadoop Product Family and Ecosystem

Agenda

• What is Big Data?

• Big Data Opportunities

• Hadoop

– Introduction to Hadoop

– Hadoop 2.0

– What’s next for Hadoop?

• Hadoop ecosystem

• Conclusion

What is Big Data?

A set of files A database A single file

Big data Expands on 4 fronts

Velocity

Volume

Variety

Veracity

MB GB TB PB

batch

periodic

near Real-Time

Real-Time

http://whatis.techtarget.com/definition/3Vs

Big Data Opportunities

http://www.sap.com/corporate-en/news.epx?PressID=21316

Big Data Revenue by Market Segment 2012

• 1

http://wikibon.org/wiki/v/Big_Data_Vendor_Revenue_and_Market_Forecast_2012-2017

Big Data Market Forecast 2012-2017

• 1

http://wikibon.org/wiki/v/Big_Data_Vendor_Revenue_and_Market_Forecast_2012-2017

Hadoop Solutions

The most common problems Hadoop can solve

Threat Analysis/Trade Surveillance

• Challenge:

– Detecting threats in the form of fraudulent activity or attacks

• Large data volumes involved

• Like looking for a needle in a haystack

• Solution with Hadoop:

– Parallel processing over huge datasets

– Pattern recognition to identify anomalies

• – i.e., threats

• Typical Industry:

– Security, Financial Services

Recommendation Engine

• Challenge:

– Using user data to predict which products to recommend

• Solution with Hadoop:

– Batch processing framework

• Allow execution in in parallel over large datasets

– Collaborative filtering

• Collecting ‘taste’ information from many users

• Utilizing information to predict what similar users like

• Typical Industry

– ISP, Advertising

Walmart Case

Revenue ?

Friday

Beer

Diapers

• 1

http://tech.naver.jp/blog/?p=2412

Hadoop!

• Apache Hadoop project

– inspired by Google's MapReduce and Google File System papers.

• Open sourced, flexible and available architecture for large scale computation and data processing on a network of commodity hardware

• Open Source Software + Hardware Commodity

– IT Costs Reduction

– inspired by

Hadoop Concepts

• Distribute the data as it is initially stored in the system

• Moving Computation is Cheaper than Moving Data

• Individual nodes can work on data local to those nodes

• Users can focus on developing applications.

Hadoop 2.0

• Hadoop 2.2.0 is expected to GA in Fall 2013

• HDFS Federation

• HDFS High Availability (HA)

• Hadoop YARN (MapReduce 2.0)

HDFS Federation - Limitation of Hadoop 1.0

• Scalability

– Storage scales horizontally - namespace doesn’t

• Performance

– File system operations throughput limited by a single node

• Poor isolation

– All the tenants share a single namespace

HDFS Federation

• Multiple independent NameNodes and Namespace Volumes in a cluster

– Namespace Volume = Namespace + Block Pool

• Block Storage as generic storage service

– Set of blocks for a Namespace Volume is called a Block Pool

– DNs store blocks for all the Namespace Volumes – no partitioning

HDFS Federation

Hadoop Hadoop 2.0

http://hortonworks.com/blog/an-introduction-to-hdfs-federation/

/home/ /app/Hive /app/HBase

HDFS High Availability (HA)

• Secondary Name Node is not Name Node

• http://www.youtube.com/watch?v=hEqQMLSXQlY

HDFS High Availability (HA)

https://issues.apache.org/jira/browse/HDFS-1623

Why do we need YARN

• Scalability

– Maximum Cluster size – 4,000 nodes

– Maximum concurrent tasks – 40,000

• Single point of failure

– Failure kills all queued and running jobs

• Lacks support for alternate paradigms

– Iterative applications implemented using MapReduce are 10x slower

– Example: K-Means, PageRank

Hadoop YARN

http://hortonworks.com/hadoop/yarn/

Role of YARN

• Resource Manager

– Per-cluster

– Global resource scheduler

– Hierarchical queues

• Node Manager

– Per-machine agent

– Manages the life-cycle of container

– Container resource monitoring

• Application Master

– Per-application

– Manages application scheduling and task execution

– E.g. MapReduce Application Master

Job Tracker

Resource Manager

Application Master

Hadoop YARN architectural

http://hortonworks.com/blog/apache-hadoop-yarn-background-and-an-overview/

• Container

– Basic unit of allocation

– Ex. Container A = 2GB, 1CPU

– Fine-grained resource allocation

– Replace the fixed map/reduce slots

What’s next for Hadoop?

• Real-time

– Apache Tez

• Part of Stinger

– Spark

• SQL in Hadoop

– Stinger

• An immediate aim of 100x performance increase for Hive is more ambitious than any other effort.

• Based on industry standard SQL, the Stinger Initiative improves HiveQL to deliver SQL compatibility.

– Shark

What’s next for Hadoop?

• Security: Data encryption

– hadoop-9331: Hadoop crypto codec framework and crypto codec implementations

• hadoop-9332: Crypto codec implementations for AES

• hadoop-9333: Hadoop crypto codec framework based on compression codec

• mapreduce-5025: Key Distribution and Management for supporting crypto codec in Map Reduce

• 2013/09/28 Hadoop in Taiwan 2013

– Hadoop Security: Now and future

– Session B, 16:00~16:40

The Hadoop Ecosystems

Growing Hadoop Ecosystem

• The term ‘Hadoop’ is taken to be the combination of HDFS and MapReduce

• There are numerous other projects surrounding Hadoop

– Typically referred to as the ‘Hadoop Ecosystem’

• Zookeeper

• Hive and Pig

• HBase

• Flume

• Other Ecosystem Projects

– Sqoop

– Oozie

– Mahout

The Ecosystem is the System

• Hadoop has become the kernel of the distributed operating system for Big Data

• No one uses the kernel alone

• A collection of projects at Apache

Relation Map

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

ZooKeeper – Coordination Framework

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

What is ZooKeeper

• A centralized service for maintaining

– Configuration information

– Providing distributed synchronization

• A set of tools to build distributed applications that can safely handle partial failures

• ZooKeeper was designed to store coordination data

– Status information

– Configuration

– Location information

Why use ZooKeeper?

• Manage configuration across nodes

• Implement reliable messaging

• Implement redundant services

• Synchronize process execution

ZooKeeper Architecture

– All servers store a copy of the data (in memory)

– A leader is elected at startup

– 2 roles – leader and follower

• Followers service clients, all updates go through leader

• Update responses are sent when a majority of servers have persisted the change

– HA support

HBase – Column NoSQL DB

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

Structured-data V.S. Raw-data

I – Inspired by

• Apache open source project

• Inspired from Google Big Table

• Non-relational, distributed database written in Java

• Coordinated by Zookeeper

Row & Column Oriented

HBase – Data Model

• Cells are “versioned”

• Table rows are sorted by row key

• Region – a row range [start-key:end-key]

When to use HBase

• Need random, low latency access to the data

• Application has a flexible schema where each row is slightly different

– Add columns on the fly

• Most of columns are NULL in each row

Flume / Sqoop – Data Integration Framework

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

What’s the problem for data collection

• Data collection is currently a priori and ad hoc

• A priori – decide what you want to collect ahead of time

• Ad hoc – each kind of data source goes through its own collection path

(and how can it help?)

• A distributed data collection service

• It efficiently collecting, aggregating, and moving large amounts of data

• Fault tolerant, many failover and recovery mechanism

• One-stop solution for data collection of all formats

An example flow

Sqoop

• Easy, parallel database import/export

• What you want do?

– Insert data from RDBMS to HDFS

– Export data from HDFS back into RDBMS

What is Sqoop

• A suite of tools that connect Hadoop and database systems

• Import tables from databases into HDFS for deep analysis

• Export MapReduce results back to a database for presentation to end-users

• Provides the ability to import from SQL databases straight into your Hive data warehouse

How Sqoop helps

• The Problem

– Structured data in traditional databases cannot be easily combined with complex data stored in HDFS

• Sqoop (SQL-to-Hadoop)

– Easy import of data from many databases to HDFS

– Generate code for use in MapReduce applications

Why Sqoop

• JDBC-based implementation

– Works with many popular database vendors

• Auto-generation of tedious user-side code

– Write MapReduce applications to work with your data, faster

• Integration with Hive

– Allows you to stay in a SQL-based environment

Pig / Hive – Analytical Language

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

Why Hive and Pig?

• Although MapReduce is very powerful, it can also be complex to master

• Many organizations have business or data analysts who are skilled at writing SQL queries, but not at writing Java code

• Many organizations have programmers who are skilled at writing code in scripting languages

• Hive and Pig are two projects which evolved separately to help such people analyze huge amounts of data via MapReduce

– Hive was initially developed at Facebook, Pig at Yahoo!

Hive – Developed by

• What is Hive?

– An SQL-like interface to Hadoop

• Data Warehouse infrastructure that provides data summarization and ad hoc querying on top of Hadoop

– MapRuduce for execution

– HDFS for storage

• Hive Query Language

– Basic-SQL : Select, From, Join, Group-By

– Equi-Join, Muti-Table Insert, Multi-Group-By

– Batch query

SELECT * FROM purchases WHERE price > 100 GROUP BY storeid

Hive/MR V.S. Hive/Tez

http://www.slideshare.net/adammuise/2013-jul-23thughivetuningdeepdive

Pig

• A high-level scripting language (Pig Latin)

• Process data one step at a time

• Simple to write MapReduce program

• Easy understand

• Easy debug A = load ‘a.txt’ as (id, name, age, ...)

B = load ‘b.txt’ as (id, address, ...)

C = JOIN A BY id, B BY id;STORE C into ‘c.txt’

– Initiated by

Hive vs. Pig

Hive Pig

Language HiveQL (SQL-like) Pig Latin, a scripting language

Schema Table definitions

that are stored in a

metastore

A schema is optionally defined

at runtime

Programmait Access JDBC, ODBC PigServer

• Input

• For the given sample input the map emits

• the reduce just sums up the values

Hello World Bye World

Hello Hadoop Goodbye Hadoop

< Hello, 1>

< World, 1>

< Bye, 1>

< World, 1>

< Hello, 1>

< Hadoop, 1>

< Goodbye, 1>

< Hadoop, 1>

< Bye, 1>

< Goodbye, 1>

< Hadoop, 2>

< Hello, 2>

< World, 2>

WordCount Example

WordCount Example In MapReduce public class WordCount {

public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {

private final static IntWritable one = new IntWritable(1);

private Text word = new Text();

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String line = value.toString();

StringTokenizer tokenizer = new StringTokenizer(line);

while (tokenizer.hasMoreTokens()) {

word.set(tokenizer.nextToken());

context.write(word, one);

}

}

}

public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {

public void reduce(Text key, Iterable<IntWritable> values, Context context)

throws IOException, InterruptedException {

int sum = 0;

for (IntWritable val : values) {

sum += val.get();

}

context.write(key, new IntWritable(sum));

}

}

public static void main(String[] args) throws Exception {

Configuration conf = new Configuration();

Job job = new Job(conf, "wordcount");

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

job.setMapperClass(Map.class);

job.setReducerClass(Reduce.class);

job.setInputFormatClass(TextInputFormat.class);

job.setOutputFormatClass(TextOutputFormat.class);

FileInputFormat.addInputPath(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

job.waitForCompletion(true);

}

}

WordCount Example By Pig

A = LOAD 'wordcount/input' USING PigStorage as (token:chararray);

B = GROUP A BY token;

C = FOREACH B GENERATE group, COUNT(A) as count;

DUMP C;

WordCount Example By Hive

CREATE TABLE wordcount (token STRING);

LOAD DATA LOCAL INPATH ’wordcount/input'

OVERWRITE INTO TABLE wordcount;

SELECT count(*) FROM wordcount GROUP BY token;

Spark / Shark - Analytical Language

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

Why

• MapReduce is too slow

• Aims to make data analytics fast — both fast to run and fast to write.

• When you have the request: iterative algorithms

What is

• In-memory distributed computing framework

• Create by UC Berkeley AMP Lab in 2010

• Target Problem that Hadoop MR is bad at

– Iterative algorithm (Machine Learning )

– Interactive data mining

• More general purpose than Hadoop MR

• Active contributions from ~15 companies

BDAS, the Berkeley Data Analytics Stack

https://amplab.cs.berkeley.edu/software/

What Different between Hadoop and Spark

Data Source

Map()

Data Source 2

Join()

Cache() Transform

http://spark.incubator.apache.org

HDFS

Map

Reduce

Map

Reduce

What is Shark

• A data analytic (warehouse) system that

– Port of Apache Hive to run on Spark

– Compatible with existing Hive data, metastores, and query(Hive, UDFs,etc)

– Similar speedup of up to 40x than hive

– Scale out and is fault-tolerant

– Support low-latency, interactive query through in-memory computing

Shark Architecture

Hive

Meta Store

HDFS/HBase

Spark

SQL

Parser

Query

Optimizer Physical Plan

Execution

Cache Mgr.

CLI Thrift/JDBC

Driver

Oozie – Job Workflow & Scheduling

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

What is ?

• A Java Web Application

• Oozie is a workflow scheduler for Hadoop

• Crond for Hadoop

Job 1

Job 3

Job 2

Job 4 Job 5

Why

• Why use Oozie instead of just cascading a jobs one after another

• Major flexibility

– Start, Stop, Suspend, and re-run jobs

• Oozie allows you to restart from a failure

– You can tell Oozie to restart a job from a specific node in the graph or to skip specific failed nodes

How it triggered

• Time

– Execute your workflow every 15 minutes

• Time and Data

– Materialize your workflow every hour, but only run them when the input data is ready.

00:15 00:30 00:45 01:00

01:00 02:00 03:00 04:00

Hadoop

Input Data Exists?

Oozie use criteria

• Need Launch, control, and monitor jobs from your Java Apps

– Java Client API/Command Line Interface

• Need control jobs from anywhere

– Web Service API

• Have jobs that you need to run every hour, day, week

• Need receive notification when a job done

– Email when a job is complete

Mahout – Data Mining

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

What is

• Machine-learning tool

• Distributed and scalable machine learning algorithms on the Hadoop platform

• Building intelligent applications easier and faster

Why

• Current state of ML libraries

– Lack Community

– Lack Documentation and Examples

– Lack Scalability

– Are Research oriented

Mahout – scale

• Scale to large datasets

– Hadoop MapReduce implementations that scales linearly with data

• Scalable to support your business case

– Mahout is distributed under a commercially friendly Apache Software license

• Scalable community

– Vibrant, responsive and diverse

Mahout – four use cases • Mahout machine learning algorithms

– Recommendation mining : takes users’ behavior and find items said specified user might like

– Clustering : takes e.g. text documents and groups them based on related document topics

– Classification : learns from existing categorized documents what specific category documents look like and is able to assign unlabeled documents to appropriate category

– Frequent item set mining : takes a set of item groups (e.g. terms in query session, shopping cart content) and identifies, which individual items typically appear together

Use case Example

• Predict what the user likes based on

– His/Her historical behavior

– Aggregate behavior of people similar to him

Conclusion

• Big Data Opportunities

– The market still growing

• Hadoop 2.0

– Federation

– HA

– YARN

• What’s next for Hadoop

– Real-time query

– Data encryption

• What other projects are included in the Hadoop ecosystem

– Different project for different purpose

– Choose right tools for your needs

Recap – Hadoop Ecosystem

MapReduce Runtime (Dist. Programming

Framework)

Hadoop Distributed File System (HDFS)

HBase (Column

NoSQL DB)

Sqoop/Flume (Data integration)

Oozie (Job Workflow & Scheduling)

Pig/Hive (Analytical Language)

Mahout (Data Mining)

YARN

Zo

oK

ee

pe

r (C

oo

rdin

atio

n)

Tez

(near real-time

processing)

Spark

(in-

memory)

Shark

Questions?

Thank you!