Introduction to the hadoop ecosystem by Uwe Seiler

Preview:

DESCRIPTION

Apache Hadoop is one of the most popular solutions for today’s Big Data challenges. Hadoop offers a reliable and scalable platform for fail-safe storage of large amounts of data as well as the tools to process this data. This presentation will give an overview of the architecture of Hadoop and explain the possibilities for integration within existing enterprise systems. Finally, the main tools for processing data will be introduced which includes the scripting language layer Pig, the SQL-like query layer Hive as well as the column-based NoSQL layer HBase.

Citation preview

Introduction to the Hadoop ecosystem

About me

About us

Why Hadoop?

Why Hadoop?

Why Hadoop?

Why Hadoop?

Why Hadoop?

Why Hadoop?

Why Hadoop?

How to scale data?

w1 w2 w3

r1 r2 r3

But…

But…

What is Hadoop?

What is Hadoop?

What is Hadoop?

What is Hadoop?

The Hadoop App Store

HDFS MapRed HCat Pig Hive HBase Ambari Avro Cassandra

Chukwa

Intel

Sync

Flume Hana HyperT Impala Mahout Nutch Oozie Scoop

Scribe Tez Vertica Whirr ZooKee Cloudera Horton MapR EMC

IBM Talend TeraData Pivotal Informat Microsoft. Pentaho Jasper

Kognitio Tableau Splunk Platfora Rack Karma Actuate MicStrat

Data Storage

Data Storage

Hadoop Distributed File System

Hadoop Distributed File System

HDFS Architecture

Data Processing

Data Processing

MapReduce

Typical large-data problem

MapReduce Flow

𝐤𝟏 𝐯𝟏 𝐤𝟐 𝐯𝟐 𝐤𝟒 𝐯𝟒 𝐤𝟓 𝐯𝟓 𝐤𝟔 𝐯𝟔 𝐤𝟑 𝐯𝟑

a 𝟏 b 2 c 9 a 3 c 2 b 7 c 8

a 𝟏 b 2 c 3 c 6 a 3 c 2 b 7 c 8

a 1 3 b 𝟐 7 c 2 8 9

a 4 b 9 c 19

Jobs & Tasks

Combined Hadoop Architecture

Word Count Mapper in Java

public class WordCountMapper extends MapReduceBase implements

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, OutputCollector<Text,

IntWritable> output, Reporter reporter) throws IOException

{

String line = value.toString();

StringTokenizer tokenizer = new StringTokenizer(line);

while (tokenizer.hasMoreTokens())

{

word.set(tokenizer.nextToken());

output.collect(word, one);

}

}

}

Word Count Reducer in Java

public class WordCountReducer extends MapReduceBase

implements Reducer<Text, IntWritable, Text, IntWritable>

{

public void reduce(Text key, Iterator values, OutputCollector

output, Reporter reporter) throws IOException

{

int sum = 0;

while (values.hasNext())

{

IntWritable value = (IntWritable) values.next();

sum += value.get();

}

output.collect(key, new IntWritable(sum));

}

}

Scripting for Hadoop

Scripting for Hadoop

Apache Pig

••

Pig in the Hadoop ecosystem

Hadoop Distributed File System

Distributed Programming Framework

Metadata Management

Scripting

Pig Latin

users = LOAD 'users.txt' USING PigStorage(',') AS (name,

age);

pages = LOAD 'pages.txt' USING PigStorage(',') AS (user,

url);

filteredUsers = FILTER users BY age >= 18 and age <=50;

joinResult = JOIN filteredUsers BY name, pages by user;

grouped = GROUP joinResult BY url;

summed = FOREACH grouped GENERATE group,

COUNT(joinResult) as clicks;

sorted = ORDER summed BY clicks desc;

top10 = LIMIT sorted 10;

STORE top10 INTO 'top10sites';

Pig Execution Plan

Try that with Java…

SQL for Hadoop

SQL for Hadoop

Apache Hive

Hive in the Hadoop ecosystem

Hadoop Distributed File System

Distributed Programming Framework

Metadata Management

Scripting Query

Hive Architecture

Hive Example

CREATE TABLE users(name STRING, age INT);

CREATE TABLE pages(user STRING, url STRING);

LOAD DATA INPATH '/user/sandbox/users.txt' INTO

TABLE 'users';

LOAD DATA INPATH '/user/sandbox/pages.txt' INTO

TABLE 'pages';

SELECT pages.url, count(*) AS clicks FROM users JOIN

pages ON (users.name = pages.user)

WHERE users.age >= 18 AND users.age <= 50

GROUP BY pages.url

SORT BY clicks DESC

LIMIT 10;

Bringing it all together…

Online Advertising

Getting started…

Hortonworks Sandbox

Hadoop Training

••

••

••

The end…or the beginning?