a comparison of join algorithms for log processing in mapreduce

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: havily

Post on 05-Jan-2016

101 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A Comparison of Join Algorithms for Log Processing in  MapReduce

A Comparison of Join Algorithms for Log Process-ing 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 LabSchool of Computer Science & EngineeringSeoul National University, Seoul, Korea

Page 2: A Comparison of Join Algorithms for Log Processing in  MapReduce

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

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

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 languages

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

Page 5: A Comparison of Join Algorithms for Log Processing in  MapReduce

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

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 B

a0 b0

a1 b1

a2 b2

… …

B C

b0 c0

b0 c1

b1 c2

… …

K V

b0 R:(a0, b0)

b0 L:(b0, c0)

b0 L:(b0, c1)

… …

K V

b1 R:(a1, b1)

b1 L:(b1, c2)

… …

A B C

a0 b0 c0

a0 b0 c1

a1 b1 c2

… … …

IDS Lab. Seminar – 6/21

Page 7: A Comparison of Join Algorithms for Log Processing in  MapReduce

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

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

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 V

b0 R:(a0, b0)

K V

1R:b0 R:(a0, b0)

IDS Lab. Seminar – 9/21

Page 10: A Comparison of Join Algorithms for Log Processing in  MapReduce

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

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

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

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

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

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

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

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

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

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

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

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