a comparison of join algorithms for log processing in mapreduce sigmod 2010 spyros blanas, jignesh...

21
A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita, Yuanyuan Tian University of Wisconsin-Madison, IBM Almaden Research Center 2011-01-21 Summarized by Jaeseok Myung Intelligent Database Systems Lab School of Computer Science & Engineering Seoul National University, Seoul, Korea

Upload: loraine-smith

Post on 06-Jan-2018

224 views

Category:

Documents


2 download

DESCRIPTION

Copyright  2010 by CEBT Log Processing in MapReduce  There are several reasons that make MapReduce preferable over a parallel RDBMS for log processing Log processing can be very time consuming and therefore it is important to keep the analysis job going even in the event of failures – In most of RDBMSs, a query usually has to be restarted from scratch even if just one node in the cluster fails The Hadoop implementation of MapReduce is freely available as open-source and runs well on inexpensive commodity hardware – For non-critical log data that is analyzed and eventually discarded, cost can be an important factor  The equi-join between the log and the reference data can have a large impact on the performance of log processing Center for E-Business TechnologyIDS Lab. Seminar – 3/21

TRANSCRIPT

Page 1: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

A Comparison of Join Algorithms for Log Process-ing in MapReduce

SIGMOD 2010Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita, Yuanyuan

TianUniversity of Wisconsin-Madison, IBM Almaden Research Center

2011-01-21Summarized by Jaeseok Myung

Intelligent Database Systems LabSchool of Computer Science & EngineeringSeoul National University, Seoul, Korea

Page 2: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Log Processing in MapReduce There are several reasons that make MapReduce prefer-

able over a parallel RDBMS for log processing There is the sheer amount of data

– China Mobile gathers 5–8TB of phone call records per day– At Facebook, almost 6TB of new log data is collected every day,

with 1.7PB of log data accumulated over time The log records do not always follow the same schema

– Developers often want the flexibility to add and drop attributes and the interpretation of a log record may also change over time

– This makes the lack of a rigid schema in MapReduce a feature rather than a shortcoming

All the log records within a time period are typically ana-lyzed together, making simple scans preferable to index scans

Center for E-Business Technology IDS Lab. Seminar – 2/21

Page 3: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Log Processing in MapReduce There are several reasons that make MapReduce prefer-

able over a parallel RDBMS for log processing Log processing can be very time consuming and therefore it

is important to keep the analysis job going even in the event of failures– In most of RDBMSs, a query usually has to be restarted from

scratch even if just one node in the cluster fails The Hadoop implementation of MapReduce is freely avail-

able as open-source and runs well on inexpensive commod-ity hardware– For non-critical log data that is analyzed and eventually dis-

carded, cost can be an important factor The equi-join between the log and the reference data

can have a large impact on the performance of log pro-cessing

Center for E-Business Technology IDS Lab. Seminar – 3/21

Page 4: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Contribution We provide a detailed description of several equi-join

implementations for the MapReduce framework For each algorithm, we design various practical prepro-

cessing techniques to further improve the join perfor-mance at query time

We conduct an extensive experimental evaluation to compare the various join algorithms on a 100-node Hadoop cluster

Our results show that the tradeoffs on this new platform are quite different from those found in a parallel RDBMS, due to deliberate design choices that sacrifice perfor-mance for scalability in MapReduce. Our findings provide an important first step for query opti-

mization in declarative query languagesCenter for E-Business Technology IDS Lab. Seminar – 4/21

Page 5: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Join Algorithms in MapReduce We consider an equi-join between a log table L and a ref-

erence table R on a single column, L ⨝L.k=R.k R, with |L| ≫ |R|

Algorithms Repartition Join Broadcast Join Semi-Join Per-Split Semi-Join

Center for E-Business Technology IDS Lab. Seminar – 5/21

Page 6: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Repartition Join

Center for E-Business Technology

R(A,B) L(B,C)R

L

InputReduce input

Final output

Map Reduce

A Ba0 b0a1 b1a2 b2… …

B Cb0 c0b0 c1b1 c2… …

K Vb0 R:(a0, b0)b0 L:(b0, c0)b0 L:(b0, c1)… …

K Vb1 R:(a1, b1)b1 L:(b1, c2)… …

A B Ca0 b0 c0a0 b0 c1a1 b1 c2… … …

IDS Lab. Seminar – 6/21

Page 7: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Repartition Join – Pseudo Code

Center for E-Business Technology IDS Lab. Seminar – 7/21

Page 8: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Repartition Join Standard Repartition Join

Potential problem– all records have to be buffered.

May not fit in memory– The data is highly skewed– The key cardinality is small

Variants of the standard repartition join are used in Pig, Hive, and Jaql today.– They all suffer from the buffering problem

Center for E-Business Technology IDS Lab. Seminar – 8/21

Page 9: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Improved Repartition Join Improved Repartition Join

The output key is changed to a composite of the join key and the table tag– The table tags are generated in a way that ensure records from

R will be sorted ahead of those from L on a give join key The partitioning & grouping function is customized by a

hash function Records from the smaller table R are guaranteed to be

ahead of those from L for a given key– Only R records are buffered and L records are streamed to gen-

erate the join output

Center for E-Business Technology

K Vb0 R:(a0, b0)

K V1R:b0 R:(a0, b0)

IDS Lab. Seminar – 9/21

Page 10: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Improved Repartition Join

Center for E-Business Technology IDS Lab. Seminar – 10/21

Page 11: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Directed Join Preprocessing for Repartition Join (Directed Join)

Both L and R have already been partitioned on the join key– Pre-partitioning L on the join key– Then at query time, matching partitions from L and R can be directly

joined A map-only MapReduce job.

– During the init phase, Ri is retrieved from the DFS– To use a main memory hash table, if it’s not already in local storage

Center for E-Business Technology

/Rb0.tx

tb1.tx

t

/Lb0.tx

tb1.tx

t

IDS Lab. Seminar – 11/21

Page 12: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Broadcast Join Broadcast Join

Some applications, |R| << |L|– In Facebook, user table has hundreds of millions of records– A few million unique active users per hour

Instead of moving both R and L across the network, To broadcast the smaller table R to avoids the network

overhead A map-only job Each map task uses a main-memory hash table for either L

or R

Center for E-Business Technology IDS Lab. Seminar – 12/21

Page 13: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Broadcast Join Broadcast Join

If R < a split of L– To build the hash table on

R

If R > a split of L– To build the hash table on

a split of L Preprocessing for Broad-

cast Join– Increasing the replication

factor for R -> Most nodes in the clusterhave a local copy of R in advance

– To avoid retrieving Rfrom the DFS in its init() function

Center for E-Business Technology IDS Lab. Seminar – 13/21

Page 14: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Semi-Join To avoid sending

the records in R over the network that will not join with L

Preprocessing for Semi-Join First two

phases of semi-join can be moved to a preprocessing step

Center for E-Business Technology IDS Lab. Seminar – 14/21

Page 15: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Per-Split Semi-Join Per-Split Semi-Join

The problem of Semi-join : All records of ex-tracted R will not join Li

Li can be joined with Ri directly

Preprocessing for Per-split Semi-join Also benefit from

moving its first two phases

Center for E-Business Technology IDS Lab. Seminar – 15/21

Page 16: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Experimental Evaluation System Specification

All experiments run on a 100-node cluster Single 2.4GHz Intel Core 2 Duo processor 4GB of DRAM and two SATA disks Red Hat Enterprise Server 5.2 running Linux 2.6.18

Network Specification The 100 nodes were spread across two racks Each node can execute two map and two reduce tasks con-

currently Each rack had its own gigabit Ethernet switch The rack level bandwidth is 32Gb/s Under full load, 35MB/s cross-rack node-to-node bandwidth

Center for E-Business Technology IDS Lab. Seminar – 16/21

Page 17: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Experimental Evaluation Datasets

Center for E-Business Technology

Event Log (L) User Info (R)Join column

size 10 bytes 5 bytes

Record size 100bytes (average) 100 bytes (exactly)

Total size 500GB 10MB~100GB

• Join result is a 10 bytes join key• n-to-1 join (one or more L referencing exactly one R)• The fraction of R that was referenced by L to be 0.1%, 1%, or 10% (because many users are inactive)• All the records in L always appear in the result

IDS Lab. Seminar – 17/21

Page 18: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Experimental Evaluation Standard Improved

As R got smaller, there were more records in L with the same join key– Out of memory

Broadcast Rapidly degraded as

R got bigger Semi-join

Extra scan of L re-quired

Center for E-Business Technology

▣ No preprocess-ing IDS Lab. Seminar – 18/21

Page 19: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Experimental Evaluation Baseline

Improved repartition join Broadcast join degraded

the fastest, followed by di-rect-200 and semi-join

In general, preprocessing lowered the

time by almost 60% (about 700->300)

Preprocessing cost Semi-join : 5 min. Per-Split : 30 min. Direct-5000 : 60 min.

▣ preprocessingIDS Lab. Seminar – 19/21

Page 20: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Discussion Choosing the

Right Strategy To determine

what is the right join strat-egy for a given circumstance

To provide an important first step for query optimization

Center for E-Business Technology IDS Lab. Seminar – 20/21

Page 21: A Comparison of Join Algorithms for Log Processing in MapReduce SIGMOD 2010 Spyros Blanas, Jignesh M. Patel, Vuk Ercegovac, Jun Rao, Eugene J. Shekita,

Copyright 2010 by CEBT

Conclusion Joining log data with reference data in MapReduce has

emerged as an important part Analytic operations for enterprise customers Web 2.0 companies

To design a series of join algorithms on top of MapRe-duce Without requiring any modification to the actual framework To propose many details for efficient implementation

– Two additional function: Init(), close()– Practical preprocessing techniques

Future work Multi-way joins Indexing methods to speedup join queries Optimization module (selecting appropriate join algorithms)

Center for E-Business Technology IDS Lab. Seminar – 21/21