Large-Scale Iterative Data Processing CS525 Big Data Analytics paper “HaLoop: Efficient Iterative Data Processing On Large Scale Clusters” by Yingyi Bu,

Slides:



Advertisements
Similar presentations
Overview of this week Debugging tips for ML algorithms
Advertisements

MapReduce.
Piccolo: Building fast distributed programs with partitioned tables Russell Power Jinyang Li New York University.
epiC: an Extensible and Scalable System for Processing Big Data
MapReduce Online Created by: Rajesh Gadipuuri Modified by: Ying Lu.
Parallel Computing MapReduce Examples Parallel Efficiency Assignment
SkewTune: Mitigating Skew in MapReduce Applications
DISTRIBUTED COMPUTING & MAP REDUCE CS16: Introduction to Data Structures & Algorithms Thursday, April 17,
UC Berkeley Spark Cluster Computing with Working Sets Matei Zaharia, Mosharaf Chowdhury, Michael Franklin, Scott Shenker, Ion Stoica.
Spark: Cluster Computing with Working Sets
Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael Franklin, Scott Shenker, Ion Stoica Spark Fast, Interactive,
Data-Intensive Computing with MapReduce/Pig Pramod Bhatotia MPI-SWS Distributed Systems – Winter Semester 2014.
APACHE GIRAPH ON YARN Chuan Lei and Mohammad Islam.
Shark Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker Hive on Spark.
Optimus: A Dynamic Rewriting Framework for Data-Parallel Execution Plans Qifa Ke, Michael Isard, Yuan Yu Microsoft Research Silicon Valley EuroSys 2013.
IMapReduce: A Distributed Computing Framework for Iterative Computation Yanfeng Zhang, Northeastern University, China Qixin Gao, Northeastern University,
Distributed Computations
Distributed computing using Dryad Michael Isard Microsoft Research Silicon Valley.
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz University of Maryland Tuesday, June 29, 2010 This work is licensed.
Parallel K-Means Clustering Based on MapReduce The Key Laboratory of Intelligent Information Processing, Chinese Academy of Sciences Weizhong Zhao, Huifang.
PARALLEL DBMS VS MAP REDUCE “MapReduce and parallel DBMSs: friends or foes?” Stonebraker, Daniel Abadi, David J Dewitt et al.
Design Patterns for Efficient Graph Algorithms in MapReduce Jimmy Lin and Michael Schatz University of Maryland MLG, January, 2014 Jaehwan Lee.
Ch 4. The Evolution of Analytic Scalability
Applying Twister to Scientific Applications CloudCom 2010 Indianapolis, Indiana, USA Nov 30 – Dec 3, 2010.
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
Ex-MATE: Data-Intensive Computing with Large Reduction Objects and Its Application to Graph Mining Wei Jiang and Gagan Agrawal.
Presented By HaeJoon Lee Yanyan Shen, Beng Chin Ooi, Bogdan Marius Tudor National University of Singapore Wei Lu Renmin University Cang Chen Zhejiang University.
Hadoop/MapReduce Computing Paradigm 1 Shirish Agale.
Introduction to Hadoop and HDFS
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
CSE 486/586 CSE 486/586 Distributed Systems Graph Processing Steve Ko Computer Sciences and Engineering University at Buffalo.
MapReduce M/R slides adapted from those of Jeff Dean’s.
Harp: Collective Communication on Hadoop Bingjing Zhang, Yang Ruan, Judy Qiu.
Grid Computing at Yahoo! Sameer Paranjpye Mahadev Konar Yahoo!
Computer Science and Engineering Parallelizing Defect Detection and Categorization Using FREERIDE Leonid Glimcher P. 1 ipdps’05 Scaling and Parallelizing.
Hung-chih Yang 1, Ali Dasdan 1 Ruey-Lung Hsiao 2, D. Stott Parker 2
MapReduce and Data Management Based on slides from Jimmy Lin’s lecture slides ( (licensed.
Resilient Distributed Datasets: A Fault- Tolerant Abstraction for In-Memory Cluster Computing Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave,
CS525: Big Data Analytics MapReduce Computing Paradigm & Apache Hadoop Open Source Fall 2013 Elke A. Rundensteiner 1.
Massive Semantic Web data compression with MapReduce Jacopo Urbani, Jason Maassen, Henri Bal Vrije Universiteit, Amsterdam HPDC ( High Performance Distributed.
A N I N - MEMORY F RAMEWORK FOR E XTENDED M AP R EDUCE 2011 Third IEEE International Conference on Coud Computing Technology and Science.
Parallel Applications And Tools For Cloud Computing Environments CloudCom 2010 Indianapolis, Indiana, USA Nov 30 – Dec 3, 2010.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
REX: RECURSIVE, DELTA-BASED DATA-CENTRIC COMPUTATION Yavuz MESTER Svilen R. Mihaylov, Zachary G. Ives, Sudipto Guha University of Pennsylvania.
Beyond Hadoop The leading open source system for processing big data continues to evolve, but new approaches with added features are on the rise. Ibrahim.
1 VLDB, Background What is important for the user.
Indexing The World Wide Web: The Journey So Far Abhishek Das, Ankit Jain 2011 Paper Presentation : Abhishek Rangnekar 1.
BIG DATA/ Hadoop Interview Questions.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
Implementation of Classifier Tool in Twister Magesh khanna Vadivelu Shivaraman Janakiraman.
EpiC: an Extensible and Scalable System for Processing Big Data Dawei Jiang, Gang Chen, Beng Chin Ooi, Kian Lee Tan, Sai Wu School of Computing, National.
Resilient Distributed Datasets A Fault-Tolerant Abstraction for In-Memory Cluster Computing Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave,
”Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters” Published In SIGMOD '07 By Yahoo! Senthil Nathan N IIT Bombay.
Hadoop.
Distributed Programming in “Big Data” Systems Pramod Bhatotia wp
Tutorial: Big Data Algorithms and Applications Under Hadoop
Running TPC-H On Pig Jie Li, Koichi Ishida, Muzhi Zhao, Ralf Diestelkaemper, Xuan Wang, Yin Lin CPS 216: Data Intensive Computing Systems Dec 9, 2011.
Spark Presentation.
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn.
SpatialHadoop: A MapReduce Framework for Spatial Data
MapReduce Computing Paradigm Basics Fall 2013 Elke A. Rundensteiner
Data-Intensive Scalable Science: Beyond MapReduce
HaLoop: Efficient Iterative Data Processing On Large Scale Clusters
KMeans Clustering on Hadoop Fall 2013 Elke A. Rundensteiner
Pregelix: Think Like a Vertex, Scale Like Spandex
Parallel Applications And Tools For Cloud Computing Environments
Group 15 Swathi Gurram Prajakta Purohit
CS639: Data Management for Data Science
COS 518: Distributed Systems Lecture 11 Mike Freedman
Lecture 29: Distributed Systems
Presentation transcript:

Large-Scale Iterative Data Processing CS525 Big Data Analytics paper “HaLoop: Efficient Iterative Data Processing On Large Scale Clusters” by Yingyi Bu, UC Irvine; Bill Howe, UW; Magda Balazinska, UW; and Michael Ernst, UW in VLDB’2010 VLDB 2010, Singapore

6/1/2016 Bill Howe, UW 2 Observation Observation: MapReduce has proven successful as a common runtime for non-recursive declarative languages HIVE (SQL-like language) Pig (Rel algebra with nested types) Observation: Loops and iteration everywhere : Graphs, clustering, mining Problem: MapReduce can’t express recursion/iteration Observation: Many roll their own loops: Iteration managed by hard-coded script outside MapReduce

6/1/2016 Bill Howe, UW 3 Twister – PageRank [Ekanayake HPDC 2010] while (!complete) { // start the pagerank map reduce process monitor = driver.runMapReduceBCast(new BytesValue(tmpCompressedDvd.getBytes())); monitor.monitorTillCompletion(); // get the result of process newCompressedDvd = ((PageRankCombiner) driver.getCurrentCombiner()).getResults(); // decompress the compressed pagerank values newDvd = decompress(newCompressedDvd); tmpDvd = decompress(tmpCompressedDvd); totalError = getError(tmpDvd, newDvd); // get the difference between new and old pagerank values if (totalError < tolerance) { complete = true; } tmpCompressedDvd = newCompressedDvd; } O(N) in the size of the graph run MR term. cond.

6/1/2016 Bill Howe, UW 4 Key idea When the loop output is large… transitive closure connected components PageRank (with a convergence test as the termination condition) …need a distributed fixpoint operator typically implemented as yet another MapReduce job -- on every iteration

6/1/2016 Bill Howe, UW 5 Fixpoint A fixpoint of a function f is a value x such that f(x) = x Fixpoint queries can be expressed with relational algebra plus a fixpoint operator Map - Reduce - Fixpoint Hypothesis: model for all recursive queries

6/1/2016 Bill Howe, UW 6 Key Vision Thought: Hypothesis: making MapReduce loop-aware affords optimization …and lays foundation for scalable implementations of recursive languages More precisely: With minimal extensions, we provide efficient common runtime for recursive languages: Map, Reduce, Fixpoint

6/1/2016 Bill Howe, UW 7 Three Examples With Iteration

6/1/2016 Bill Howe, UW 8 Example 1: PageRank (Web Link Analysis) urlrank url_srcurl_dest Rank Table R 0 Linkage Table L urlrank Rank Table R 3 RiRi L R i.rank = R i.rank/γ url COUNT(url_dest) R i.url = L.url_src π(url_dest, γ url_dest SUM(rank)) R i+1

6/1/2016 Bill Howe, UW 9 A MapReduce Implementation M M M M M r r RiRi L-split1 L-split0 M M r r i=i+1 Converged? Join & compute rank Aggregatefixpoint evaluation Client done r r

6/1/2016 Bill Howe, UW 10 What’s the problem? 1.L is loaded on each iteration 2.L is shuffled on each iteration 3.Fixpoint evaluated as a separate MapReduce job per iteration m m m RiRi L-split1 L-split0 M M r r L (Link Table) is loop invariant, but plus r r M M r r

6/1/2016 Bill Howe, UW 11 Example 2: Transitive Closure Friend Find all transitive friends of Eric {Eric, Elisa} {Eric, Tom Eric, Harry} {} R1R1 R0R0 {Eric, Eric} R2R2 R3R3 (semi-naïve evaluation)

6/1/2016 Bill Howe, UW 12 Example 2 in MapReduce M M M M M r r SiSi Friend1 Friend0 i=i+1 Anything new? Join Dupe-elim Client done r r (compute next generation of friends) (remove the ones we’ve already seen)

6/1/2016 Bill Howe, UW 13 What’s the problem? 1.Friend is loaded on each iteration 2.Friend is shuffled on each iteration Friend is loop invariant, but M M M M M r r SiSi Friend1 Friend0 Join Dupe-elim r r (compute next generation of friends) (remove the ones we’ve already seen) 1. 2.

6/1/2016 Bill Howe, UW 14 Example 3: k-means M M M P0 i=i+1 k i - k i+1 < threshold? Client done r r P1 P2 = k centroids at iteration i kiki kiki kiki kiki k i+1

6/1/2016 Bill Howe, UW 15 What’s the problem? M M M P0 i=i+1 k i - k i+1 < threshold? Client done r r P1 P2 = k centroids at iteration i kiki kiki kiki kiki k i+1 1.P is loaded on each iteration P is loop invariant, but 1.

6/1/2016 Bill Howe, UW 16 Optimizations Enabled Caching (and Indexing)

6/1/2016 Bill Howe, UW 17 Approach: Inter-iteration caching Mapper input cache (MI) Mapper output cache (MO) Reducer input cache (RI) Reducer output cache (RO) M M M r r … Loop body

6/1/2016 Bill Howe, UW 18 Experiments Amazon EC2 20, 50, 90 default small instances Datasets Billions of Triples (120GB) [ 1.5B nodes 1.6B edges] Freebase (12GB) [ 7M ndoes 154M edges] Livejournal social network (18GB) [ 4.8M nodes, 67M edges] Queries Transitive Closure PageRank k-means [VLDB 2010]

6/1/2016 Bill Howe, UW 19 RI: Reducer Input Cache Provides: Access to loop invariant data without map/shuffle Used By: Reducer function Assumes: 1. Mapper output for a given table constant across iterations 2. Static partitioning (implies: no new nodes) PageRank Avoid shuffling the network at every step Transitive Closure Avoid shuffling the graph at every step K-means No help …

6/1/2016 Bill Howe, UW 20 Reducer Input Cache Benefit Transitive Closure like PageRank Billion Triples Dataset (120GB) 90 small instances on EC2 (on Amazon Cloud EC2) Overall run time

6/1/2016 Bill Howe, UW 21 Reducer Input Cache Benefit Transitive Closure Billion Triples Dataset (120GB) Join step only (key step optimized)

6/1/2016 Bill Howe, UW 22 Join & compute rank M M M M M r r RiRi L-split1 L-split0 M M r r Aggregatefixpoint evaluation r r Total

6/1/2016 Bill Howe, UW 23 RO: Reducer Output Cache Provides: Distributed access to output of previous iterations Used By: Fixpoint evaluation Assumes: 1. Partitioning constant across iterations 2. Reducer output key functionally determines Reducer input key PageRank Allows distributed fixpoint evaluation Obviates extra MapReduce job Transitive Closure No help? K-means No help? …

6/1/ Reducer Output Cache Benefit Fixpoint evaluation (s) Iteration # Livejournal dataset 50 EC2 small instances

6/1/2016 Bill Howe, UW 25 MI: Mapper Input Cache Provides: Access to non-local mapper input on later iterations Used: During scheduling of map tasks Assumes: 1. Mapper input does not change PageRank Subsumed by use of Reducer Input Cache Transitive Closure Subsumed by use of Reducer Input Cache K-means Avoids non-local data reads on iterations > 0 …

6/1/2016 Bill Howe, UW 26 Mapper Input Cache Benefit 5% non-local data reads; ~5% improvement

6/1/2016 Bill Howe, UW 27 HaLoop Architecture

6/1/2016 Bill Howe, UW 28 Cache Infrastructure Details Programmer control Architecture for cache management Scheduling for inter-iteration locality Indexing values in cache

6/1/2016 Bill Howe, UW 29 Programming Interface: Iteration Support Job job = new Job(); job.AddMap(Map Rank, 1); job.AddReduce(Reduce Rank, 1); job.AddMap(Map Aggregate, 2); job.AddReduce(Reduce Aggregate, 2); job.AddInvariantTable(#1); job.SetInput(IterationInput); job.SetFixedPointThreshold(0.1); job.SetDistanceMeasure(ResultDistance); job.SetMaxNumOfIterations(10); job.SetReducerInputCache(true); job.SetReducerOutputCache(true); job.Submit(); define loop body Turn on caches Declare an input as invariant Specify loop body input, parameterized by iteration # Termination condition

6/1/2016 Bill Howe, UW 30 Conclusions Relatively simple changes to MapReduce/Hadoop can support arbitrary recursive programs TaskTracker (Cache management) Scheduler (Cache awareness) Programming model (multi-step loop bodies, cache control) Optimizations Caching loop invariant data realizes largest gain Eliminate extra MapReduce step for termination checks

6/1/2016 Bill Howe, UW 31 Scheduling Algorithm Input: Node node Global variable: HashMap > last, HashMaph > current 1: if (iteration ==0) { 2: Partition part = StandardMapReduceSchedule(node); 3: current.add(node, part); 4: }else{ 5: if (node.hasFullLoad()) { 6: Node substitution = findNearbyNode(node); 7: last.get(substitution).addAll(last.remove(node)); 8: return; 9: } 10:if (last.get(node).size()>0) { 11: Partition part = last.get(node).get(0); 12: schedule(part, node); 13: current.get(node).add(part); 14: list.remove(part); 15: } 16: } The same as MapReduce Find a substitution Iteration-local Schedule