1 1
ATC 2014 Philadelphia, PA
ShuffleWatcher ¡: ¡Shuffle-‑aware ¡Scheduling ¡ in ¡Mul5-‑tenant ¡MapReduce ¡Clusters ¡
Faraz ¡Ahmad†* ¡ Srimat ¡T. ¡Chakradhar‡ ¡ ¡ Anand ¡Raghunathan† ¡
- T. ¡N. ¡Vijaykumar† ¡
† ‡
* ¡
ShuffleWatcher : Shuffle-aware Scheduling in Mul5-tenant - - PowerPoint PPT Presentation
ShuffleWatcher : Shuffle-aware Scheduling in Mul5-tenant MapReduce Clusters Faraz Ahmad * Srimat T. Chakradhar Anand Raghunathan T. N.
1 1
† ‡
* ¡
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
tasks ¡from ¡other ¡jobs ¡ tasks ¡from ¡other ¡jobs ¡
9 9 9
reduce Shuffle load increase Shuffle load
10 10 10
Map execution rack server Intermediate data distribution
11 11 11
12 12 12
Original Map Execution Intermediate data distribution rack server Ideal map placement for Shuffle locality
13 13 13
14 14 14
Free workers Network-‑ Aware ¡Shuffle ¡ Scheduling ¡ (NASS) ¡ Shuffle-‑ Aware ¡Map ¡ Placement ¡ (SAMP) ¡ Shuffle-‑ Aware ¡ Reduce ¡ Placement ¡ (SARP) ¡ NetSat Network Saturated? task assignment
15 15 15
16 16 16
17 17 17
1.39 ¡ 1.14 ¡ 1.66 ¡ 1.40 ¡ 0.00 ¡ 0.25 ¡ 0.50 ¡ 0.75 ¡ 1.00 ¡ 1.25 ¡ 1.50 ¡ 1.75 ¡
18 18 18
0.73 ¡ 0.90 ¡ 0.61 ¡ 0.71 ¡ 0.00 ¡ 0.25 ¡ 0.50 ¡ 0.75 ¡ 1.00 ¡ 1.25 ¡
19 19 19
0.64 ¡ 0.85 ¡ 0.44 ¡ 0.65 ¡ 0.00 ¡ 0.25 ¡ 0.50 ¡ 0.75 ¡ 1.00 ¡ 1.25 ¡
20 20 20
21 21 21
22 22 22
23 23 23
24 24 24
25 25 25
26 26 26
Network Saturated ? Delay Shuffle-heavy Reduce tasks Schedule Map tasks through SAMP Pick a user based on fairness policy Prioritize Shuffle-heavy Reduce tasks through SARP Schedule Reduce tasks through SARP Schedule Map tasks through SAMP Schedule Reduce tasks through SARP Yes No
27 27 27
28 28 28
29 29 29
Job ¡ Category ¡ Benchmarks ¡(Frequency) ¡ Shuffle-‑ heavy ¡ Terasort(5%), ¡Ranked-‑inv-‑index(10%), ¡ Self-‑join(10%), ¡Word-‑sequence-‑ count(10%), ¡Adjacency-‑list(5%) ¡ Shuffle-‑ medium ¡ Inverted-‑index(10%), ¡Term-‑ vector(10%) ¡ Shuffle-‑ light ¡ Grep(15%), ¡Wordcount(10%), ¡ Classifica%on(5%), ¡Histo-‑movies(5%), ¡ Histo-‑ra%ngs(5%) ¡ Input ¡Job ¡ Sizes ¡ %jobs ¡ Input ¡Job ¡ Sizes ¡ %jobs ¡ <100MB ¡ 20% ¡ 100-‑200GB ¡ 10% ¡ 100MB-‑1G B ¡ 19% ¡ 200-‑500GB ¡ 7% ¡ 1-‑20GB ¡ 21% ¡ 500GB-‑1TB ¡ 8% ¡ 20-‑100GB ¡ 10% ¡ > ¡1TB ¡ 5% ¡
30 30 30
Job ¡Category ¡ Benchmarks ¡(Frequency) ¡ Shuffle-‑heavy ¡ Terasort(5%), ¡Ranked-‑inv-‑index(10%), ¡Self-‑join(10%), ¡Word-‑ sequence-‑count(10%), ¡Adjacency-‑list(5%) ¡ Shuffle-‑medium ¡ Inverted-‑index(10%), ¡Term-‑vector(10%) ¡ Shuffle-‑light ¡ Grep(15%), ¡Wordcount(10%), ¡Classifica%on(5%), ¡Histo-‑movies(5%), ¡ Histo-‑ra%ngs(5%) ¡ Input ¡Job ¡Sizes ¡ %jobs ¡ Input ¡Job ¡Sizes ¡ %jobs ¡ <100MB ¡ 20% ¡ 100-‑200GB ¡ 10% ¡ 100MB-‑1GB ¡ 19% ¡ 200-‑500GB ¡ 7% ¡ 1-‑20GB ¡ 21% ¡ 500GB-‑1TB ¡ 8% ¡ 20-‑100GB ¡ 10% ¡ > ¡1TB ¡ 5% ¡
31 31 31
0.00 ¡ 0.20 ¡ 0.40 ¡ 0.60 ¡ 0.80 ¡ 1.00 ¡
Reduce ¡ Map ¡
32 32 32
33 33 33
1.00 ¡ 1.10 ¡ 1.20 ¡ 1.30 ¡ 1.40 ¡ 1.50 ¡
34 34 34
0.00 ¡ 0.20 ¡ 0.40 ¡ 0.60 ¡ 0.80 ¡ 1.00 ¡ a ¡ b ¡ c ¡ a ¡ b ¡ c ¡ a ¡ b ¡ c ¡ a ¡ b ¡ c ¡ Normalized ¡Cross-‑rack ¡Traffic ¡w.r.t. ¡Fair ¡ Remote ¡Map ¡Traffic ¡ Cross-‑rack ¡Shuffle ¡
35 35 35
1.16 ¡ 1.31 ¡ 1.40 ¡ 1.71 ¡ 0.00 ¡ 0.25 ¡ 0.50 ¡ 0.75 ¡ 1.00 ¡ 1.25 ¡ 1.50 ¡ 1.75 ¡ 1 ¡ 9 ¡ 12 ¡ 18 ¡ Throughput ¡improvement ¡over ¡Fair ¡ Number ¡of ¡jobs ¡per ¡user ¡
36 36 36
1.31 ¡ 1.40 ¡ 1.22 ¡ 0.00 ¡ 0.25 ¡ 0.50 ¡ 0.75 ¡ 1.00 ¡ 1.25 ¡ 1.50 ¡ 1.75 ¡
37 37 37
38 38 38
39
¡-‑ ¡ ¡ ¡ ¡ ¡20,000,000 ¡ ¡ ¡40,000,000 ¡ ¡ ¡60,000,000 ¡ ¡ ¡80,000,000 ¡ ¡ ¡100,000,000 ¡ ¡ ¡120,000,000 ¡ ¡ Network ¡infrastructure ¡Cost ¡(USD) ¡ Number ¡of ¡Nodes ¡ 1:1/1:1 ¡ 5:1/10:1 ¡ 10:1/20:1 ¡
40 40 40
– E.g., ¡500Mbps ¡if ¡10 ¡nodes ¡per ¡rack ¡(50 ¡Mbps ¡per ¡node). ¡ – Nodes ¡can ¡share ¡cross-‑rack ¡link ¡bandwidth ¡
i. Receive ¡data ¡from ¡all ¡running ¡reduce ¡tasks ¡for ¡all ¡jobs ¡periodically. ¡ ii. Receive ¡data ¡from ¡NameNode ¡for ¡remote ¡map ¡and ¡output ¡write ¡traffic ¡ iii. Update ¡data ¡transfers ¡among ¡racks ¡(link ¡usages). ¡ iv. Compare ¡to ¡cross-‑rack ¡link ¡bandwidth ¡limit ¡ v. Return ¡true ¡if ¡link ¡usage ¡(for ¡n ¡intervals) ¡> ¡NWSatura%onThreshold ¡(0.8 ¡* ¡Satura%onLimit) ¡
– Rate ¡limiters ¡per ¡rack. ¡
41 41 41
42 42 42
– currentShuffleJobs ¡(for ¡NASS): ¡list ¡of ¡jobs ¡in ¡shuffle ¡phase ¡
when ¡%me-‑window ¡expires ¡for ¡the ¡job. ¡
43 43 43
44 44 44