Apache Spark: a Unified Engine for Big Data Processing

Total Page:16

File Type:pdf, Size:1020Kb

Apache Spark: a Unified Engine for Big Data Processing contributed articles DOI:10.1145/2934664 for interactive SQL queries and Pregel11 This open source computing framework for iterative graph algorithms. In the open source Apache Hadoop stack, unifies streaming, batch, and interactive big systems like Storm1 and Impala9 are data workloads to unlock new applications. also specialized. Even in the relational database world, the trend has been to BY MATEI ZAHARIA, REYNOLD S. XIN, PATRICK WENDELL, move away from “one-size-fits-all” sys- TATHAGATA DAS, MICHAEL ARMBRUST, ANKUR DAVE, tems.18 Unfortunately, most big data XIANGRUI MENG, JOSH ROSEN, SHIVARAM VENKATARAMAN, applications need to combine many MICHAEL J. FRANKLIN, ALI GHODSI, JOSEPH GONZALEZ, different processing types. The very SCOTT SHENKER, AND ION STOICA nature of “big data” is that it is diverse and messy; a typical pipeline will need MapReduce-like code for data load- ing, SQL-like queries, and iterative machine learning. Specialized engines Apache Spark: can thus create both complexity and inefficiency; users must stitch together disparate systems, and some applica- tions simply cannot be expressed effi- ciently in any engine. A Unified In 2009, our group at the Univer- sity of California, Berkeley, started the Apache Spark project to design a unified engine for distributed data Engine for processing. Spark has a programming model similar to MapReduce but ex- tends it with a data-sharing abstrac- tion called “Resilient Distributed Da- Big Data tasets,” or RDDs.25 Using this simple extension, Spark can capture a wide range of processing workloads that previously needed separate engines, Processing including SQL, streaming, machine learning, and graph processing2,26,6 (see Figure 1). These implementations use the same optimizations as special- ized engines (such as column-oriented processing and incremental updates) and achieve similar performance but THE GROWTH OF data volumes in industry and research run as libraries over a common en- poses tremendous opportunities, as well as tremendous gine, making them easy and efficient to compose. Rather than being specific computational challenges. As data sizes have outpaced the capabilities of single machines, users have needed key insights new systems to scale out computations to multiple ! A simple programming model can capture streaming, batch, and interactive nodes. As a result, there has been an explosion of workloads and enable new applications new cluster programming models targeting diverse that combine them. ! Apache Spark applications range from 1,4,7,10 computing workloads. At first, these models were finance to scientific data processing and combine libraries for SQL, machine relatively specialized, with new models developed for learning, and graphs. new workloads; for example, MapReduce4 supported ! In six years, Apache Spark has grown to 1,000 contributors and 13 batch processing, but Google also developed Dremel thousands of deployments. 56 COMMUNICATIONS OF THE ACM | NOVEMBER 2016 | VOL. 59 | NO. 11 Analyses performed using Spark of brain activity in a larval zebrafish: (left) matrix factorization to characterize functionally similar regions (as depicted by different colors) and (right) embedding dynamics of whole-brain activity into lower-dimensional trajectories. Source: Jeremy Freeman and Misha Ahrens, Janelia Research Campus, Howard Hughes Medical Institute, Ashburn, VA. to these workloads, we claim this result gine, Spark can run diverse functions applications that combine their func- is more general; when augmented with over the same data, often in memory. tions (such as video messaging and data sharing, MapReduce can emu- Finally, Spark enables new applica- Waze) that would not have been pos- late any distributed computation, so tions (such as interactive queries on a sible on any one device. it should also be possible to run many graph and streaming machine learn- Since its release in 2010, Spark other types of workloads.24 ing) that were not possible with previ- has grown to be the most active open Spark’s generality has several im- ous systems. One powerful analogy for source project or big data processing, portant benefits. First, applications the value of unification is to compare with more than 1,000 contributors. The are easier to develop because they use a smartphones to the separate portable project is in use in more than 1,000 or- unified API. Second, it is more efficient devices that existed before them (such ganizations, ranging from technology to combine processing tasks; whereas as cameras, cellphones, and GPS gad- companies to banking, retail, biotech- prior systems required writing the gets). In unifying the functions of these nology, and astronomy. The largest data to storage to pass it to another en- devices, smartphones enabled new publicly announced deployment has NOVEMBER 2016 | VOL. 59 | NO. 11 | COMMUNICATIONS OF THE ACM 57 contributed articles Figure 1. Apache Spark software stack, with specialized processing libraries implemented returns a result to the program (here, over the core engine. the number of elements in the RDD) instead of defining a new RDD. Spark evaluates RDDs lazily, al- lowing it to find an efficient plan for Streaming SQL ML Graph the user’s computation. In particular, transformations return a new RDD ob- ject representing the result of a compu- tation but do not immediately compute it. When an action is called, Spark looks at the whole graph of transformations used to create an execution plan. For ex- ample, if there were multiple filter or map operations in a row, Spark can fuse them into one pass, or, if it knows that data is partitioned, it can avoid moving it over the network for groupBy.5 Users can thus build up programs modularly without losing performance. Finally, RDDs provide explicit sup- port for data sharing among compu- tations. By default, RDDs are “ephem- eral” in that they get recomputed each time they are used in an action (such as count). However, users can also more than 8,000 nodes.22 As Spark has across a cluster that can be manipu- persist selected RDDs in memory or grown, we have sought to keep building lated in parallel. Users create RDDs by for rapid reuse. (If the data does not on its strength as a unified engine. We applying operations called “transfor- fit in memory, Spark will also spill it (and others) have continued to build an mations” (such as map, filter, and to disk.) For example, a user searching integrated standard library over Spark, groupBy) to their data. through a large set of log files in HDFS with functions from data import to ma- Spark exposes RDDs through a func- to debug a problem might load just the chine learning. Users find this ability tional programming API in Scala, Java, error messages into memory across the powerful; in surveys, we find the major- Python, and R, where users can simply cluster by calling ity of users combine multiple of Spark’s pass local functions to run on the clus- libraries in their applications. ter. For example, the following Scala errors.persist() As parallel data processing becomes code creates an RDD representing the common, the composability of process- error messages in a log file, by search- After this, the user can run a variety of ing functions will be one of the most ing for lines that start with ERROR, and queries on the in-memory data: important concerns for both usability then prints the total number of errors: and performance. Much of data analy- // Count errors mentioning MySQL sis is exploratory, with users wishing to lines = spark.textFile(“hdfs://...”) errors.filter(s => s.contains(“MySQL”)) combine library functions quickly into errors = lines.filter( .count() a working pipeline. However, for “big s => s.startsWith(“ERROR”)) // Fetch back the time fields of errors that data” in particular, copying data be- println(“Total errors: “ + errors.count()) // mention PHP, assuming time is field #3: tween different systems is anathema to errors.filter(s => s.contains(“PHP”)) performance. Users thus need abstrac- The first line defines an RDD backed .map(line => line.split(‘\t’)(3)) tions that are general and composable. by a file in the Hadoop Distributed File . c o l l e c t ( ) In this article, we introduce the Spark System (HDFS) as a collection of lines of programming model and explain why it text. The second line calls the filter This data sharing is the main differ- is highly general. We also discuss how transformation to derive a new RDD ence between Spark and previous com- we leveraged this generality to build from lines. Its argument is a Scala puting models like MapReduce; other- other processing tasks over it. Finally, function literal or closure.a Finally, the wise, the individual operations (such we summarize Spark’s most common last line calls count, another type of as map and groupBy) are similar. Data applications and describe ongoing de- RDD operation called an “action” that sharing provides large speedups, often velopment work in the project. as much as 100×, for interactive que- ries and iterative algorithms.23 It is also Programming Model a The closures passed to Spark can call into any the key to Spark’s generality, as we dis- existing Scala or Python library or even refer- The key programming abstraction in ence variables in the outer program. Spark cuss later. Spark is RDDs, which are fault-toler- sends read-only copies of these variables to Fault tolerance. Apart from provid- ant collections of objects partitioned worker nodes. ing data sharing and a variety of paral- 58 COMMUNICATIONS OF THE ACM | NOVEMBER 2016 | VOL. 59 | NO. 11 contributed articles lel operations, RDDs also automatical- RDDs usually store only temporary SQL and DataFrames. One of the ly recover from failures. Traditionally, data within an application, though most common data processing para- distributed computing systems have some applications (such as the Spark digms is relational queries.
Recommended publications
  • Discretized Streams: Fault-Tolerant Streaming Computation at Scale
    Discretized Streams: Fault-Tolerant Streaming Computation at Scale" Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, Ion Stoica University of California, Berkeley Published in SOSP ‘13 Slide 1/30 Motivation" • Faults and stragglers inevitable in large clusters running “big data” applications. • Streaming applications must recover from these quickly. • Current distributed streaming systems, including Storm, TimeStream, MapReduce Online provide fault recovery in an expensive manner. – Involves hot replication which requires 2x hardware or upstream backup which has long recovery time. Slide 2/30 Previous Methods" • Hot replication – two copies of each node, 2x hardware. – straggler will slow down both replicas. • Upstream backup – nodes buffer sent messages and replay them to new node. – stragglers are treated as failures resulting in long recovery step. • Conclusion : need for a system which overcomes these challenges Slide 3/30 • Voila ! D-Streams Slide 4/30 Computation Model" • Streaming computations treated as a series of deterministic batch computations on small time intervals. • Data received in each interval is stored reliably across the cluster to form input datatsets • At the end of each interval dataset is subjected to deterministic parallel operations and two things can happen – new dataset representing program output which is pushed out to stable storage – intermediate state stored as resilient distributed datasets (RDDs) Slide 5/30 D-Stream processing model" Slide 6/30 What are D-Streams ?" • sequence of immutable, partitioned datasets (RDDs) that can be acted on by deterministic transformations • transformations yield new D-Streams, and may create intermediate state in the form of RDDs • Example :- – pageViews = readStream("http://...", "1s") – ones = pageViews.map(event => (event.url, 1)) – counts = ones.runningReduce((a, b) => a + b) Slide 7/30 High-level overview of Spark Streaming system" Slide 8/30 Recovery" • D-Streams & RDDs track their lineage, that is, the graph of deterministic operations used to build them.
    [Show full text]
  • The Design and Implementation of Declarative Networks
    The Design and Implementation of Declarative Networks by Boon Thau Loo B.S. (University of California, Berkeley) 1999 M.S. (Stanford University) 2000 A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the GRADUATE DIVISION of the UNIVERSITY OF CALIFORNIA, BERKELEY Committee in charge: Professor Joseph M. Hellerstein, Chair Professor Ion Stoica Professor John Chuang Fall 2006 The dissertation of Boon Thau Loo is approved: Professor Joseph M. Hellerstein, Chair Date Professor Ion Stoica Date Professor John Chuang Date University of California, Berkeley Fall 2006 The Design and Implementation of Declarative Networks Copyright c 2006 by Boon Thau Loo Abstract The Design and Implementation of Declarative Networks by Boon Thau Loo Doctor of Philosophy in Computer Science University of California, Berkeley Professor Joseph M. Hellerstein, Chair In this dissertation, we present the design and implementation of declarative networks. Declarative networking proposes the use of a declarative query language for specifying and implementing network protocols, and employs a dataflow framework at runtime for com- munication and maintenance of network state. The primary goal of declarative networking is to greatly simplify the process of specifying, implementing, deploying and evolving a network design. In addition, declarative networking serves as an important step towards an extensible, evolvable network architecture that can support flexible, secure and efficient deployment of new network protocols. Our main contributions are as follows. First, we formally define the Network Data- log (NDlog) language based on extensions to the Datalog recursive query language, and propose NDlog as a Domain Specific Language for programming network protocols.
    [Show full text]
  • A Ditya a Kella
    A D I T Y A A K E L L A [email protected] Computer Science Department http://www.cs.cmu.edu/∼aditya Carnegie Mellon University Phone: 412-818-3779 5000 Forbes Avenue Fax: 412-268-5576 (Attn: Aditya Akella) Pittsburgh, PA 15232 Education PhD in Computer Science May 2005 Carnegie Mellon University, Pittsburgh, PA (expected) Dissertation: “An Integrated Approach to Optimizing Internet Performance” Advisor: Prof. Srinivasan Seshan Bachelor of Technology in Computer Science and Engineering May 2000 Indian Institute of Technology (IIT), Madras, India Honors and Awards IBM PhD Fellowship 2003-04 & 2004-05 Graduated third among all IIT Madras undergraduates 2000 Institute Merit Prize, IIT Madras 1996-97 19th rank, All India Joint Entrance Examination for the IITs 1996 Gold medals, Regional Mathematics Olympiad, India 1993-94 & 1994-95 National Talent Search Examination (NTSE) Scholarship, India 1993-94 Research Interests Computer Systems and Internetworking PhD Dissertation An Integrated Approach to Optimizing Internet Performance In my thesis research, I adopted a systematic approach to understand how to optimize the perfor- mance of well-connected Internet end-points, such as universities, large enterprises and data centers. I showed that constrained bottlenecks inside and between carrier networks in the Internet could limit the performance of such end-points. I observed that a clever end point-based strategy, called Mul- tihoming Route Control, can help end-points route around these bottlenecks, and thereby improve performance. Furthermore, I showed that the Internet's topology, routing and trends in its growth may essentially worsen the wide-area congestion in the future. To this end, I proposed changes to the Internet's topology in order to guarantee good future performance.
    [Show full text]
  • Alluxio: a Virtual Distributed File System by Haoyuan Li A
    Alluxio: A Virtual Distributed File System by Haoyuan Li A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Ion Stoica, Co-chair Professor Scott Shenker, Co-chair Professor John Chuang Spring 2018 Alluxio: A Virtual Distributed File System Copyright 2018 by Haoyuan Li 1 Abstract Alluxio: A Virtual Distributed File System by Haoyuan Li Doctor of Philosophy in Computer Science University of California, Berkeley Professor Ion Stoica, Co-chair Professor Scott Shenker, Co-chair The world is entering the data revolution era. Along with the latest advancements of the Inter- net, Artificial Intelligence (AI), mobile devices, autonomous driving, and Internet of Things (IoT), the amount of data we are generating, collecting, storing, managing, and analyzing is growing ex- ponentially. To store and process these data has exposed tremendous challenges and opportunities. Over the past two decades, we have seen significant innovation in the data stack. For exam- ple, in the computation layer, the ecosystem started from the MapReduce framework, and grew to many different general and specialized systems such as Apache Spark for general data processing, Apache Storm, Apache Samza for stream processing, Apache Mahout for machine learning, Ten- sorflow, Caffe for deep learning, Presto, Apache Drill for SQL workloads. There are more than a hundred popular frameworks for various workloads and the number is growing. Similarly, the storage layer of the ecosystem grew from the Apache Hadoop Distributed File System (HDFS) to a variety of choices as well, such as file systems, object stores, blob stores, key-value systems, and NoSQL databases to realize different tradeoffs in cost, speed and semantics.
    [Show full text]
  • Donut: a Robust Distributed Hash Table Based on Chord
    Donut: A Robust Distributed Hash Table based on Chord Amit Levy, Jeff Prouty, Rylan Hawkins CSE 490H Scalable Systems: Design, Implementation and Use of Large Scale Clusters University of Washington Seattle, WA Donut is an implementation of an available, replicated distributed hash table built on top of Chord. The design was built to support storage of common file sizes in a closed cluster of systems. This paper discusses the two layers of the implementation and a discussion of future development. First, we discuss the basics of Chord as an overlay network and our implementation details, second, Donut as a hash table providing availability and replication and thirdly how further development towards a distributed file system may proceed. Chord Introduction Chord is an overlay network that maps logical addresses to physical nodes in a Peer- to-Peer system. Chord associates a ranges of keys with a particular node using a variant of consistent hashing. While traditional consistent hashing schemes require nodes to maintain state of the the system as a whole, Chord only requires that nodes know of a fixed number of “finger” nodes, allowing both massive scalability while maintaining efficient lookup time (O(log n)). Terms Chord Chord works by arranging keys in a ring, such that when we reach the highest value in the key-space, the following key is zero. Nodes take on a particular key in this ring. Successor Node n is called the successor of a key k if and only if n is the closest node after or equal to k on the ring. Predecessor Node n is called the predecessor of a key k if and only n is the closest node before k in the ring.
    [Show full text]
  • UC Berkeley UC Berkeley Electronic Theses and Dissertations
    UC Berkeley UC Berkeley Electronic Theses and Dissertations Title Scalable Systems for Large Scale Dynamic Connected Data Processing Permalink https://escholarship.org/uc/item/9029r41v Author Padmanabha Iyer, Anand Publication Date 2019 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California Scalable Systems for Large Scale Dynamic Connected Data Processing by Anand Padmanabha Iyer A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Ion Stoica, Chair Professor Scott Shenker Professor Michael J. Franklin Professor Joshua Bloom Fall 2019 Scalable Systems for Large Scale Dynamic Connected Data Processing Copyright 2019 by Anand Padmanabha Iyer 1 Abstract Scalable Systems for Large Scale Dynamic Connected Data Processing by Anand Padmanabha Iyer Doctor of Philosophy in Computer Science University of California, Berkeley Professor Ion Stoica, Chair As the proliferation of sensors rapidly make the Internet-of-Things (IoT) a reality, the devices and sensors in this ecosystem—such as smartphones, video cameras, home automation systems, and autonomous vehicles—constantly map out the real-world producing unprecedented amounts of dynamic, connected data that captures complex and diverse relations. Unfortunately, existing big data processing and machine learning frameworks are ill-suited for analyzing such dynamic connected data and face several challenges when employed for this purpose. This dissertation focuses on the design and implementation of scalable systems for dynamic connected data processing. We discuss simple abstractions that make it easy to operate on such data, efficient data structures for state management, and computation models that reduce redundant work.
    [Show full text]
  • A Networking Abstraction for Distributed Data-Parallel Applications
    Coflow: A Networking Abstraction for Distributed Data-Parallel Applications by N M Mosharaf Kabir Chowdhury A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Ion Stoica, Chair Professor Sylvia Ratnasamy Professor John Chuang Fall 2015 Coflow: A Networking Abstraction for Distributed Data-Parallel Applications Copyright © 2015 by N M Mosharaf Kabir Chowdhury 1 Abstract Coflow: A Networking Abstraction for Distributed Data-Parallel Applications by N M Mosharaf Kabir Chowdhury Doctor of Philosophy in Computer Science University of California, Berkeley Professor Ion Stoica, Chair Over the past decade, the confluence of an unprecedented growth in data volumes and the rapid rise of cloud computing has fundamentally transformed systems software and corresponding in- frastructure. To deal with massive datasets, more and more applications today are scaling out to large datacenters. These distributed data-parallel applications run on tens to thousands of ma- chines in parallel to exploit I/O parallelism, and they enable a wide variety of use cases, including interactive analysis, SQL queries, machine learning, and graph processing. Communication between the distributed computation tasks of these applications often result in massive data transfers over the network. Consequently, concentrated efforts in both industry and academia have gone into building high-capacity, low-latency datacenter networks at scale. At the same time, researchers and practitioners have proposed a wide variety of solutions to minimize flow completion times or to ensure per-flow fairness based on the point-to-point flow abstraction that forms the basis of the TCP/IP stack.
    [Show full text]
  • Heterogeneity and Load Balance in Distributed Hash Tables
    Heterogeneity and Load Balance in Distributed Hash Tables P. Brighten Godfrey and Ion Stoica Computer Science Division, University of California, Berkeley {pbg,istoica}@cs.berkeley.edu Abstract— Existing solutions to balance load in DHTs incur imbalance to a constant factor. To handle heterogeneity, each a high overhead either in terms of routing state or in terms of node picks a number of virtual servers proportional to its load movement generated by nodes arriving or departing the capacity. Unfortunately, virtual servers incur a significant cost: system. In this paper, we propose a set of general techniques and a node with k virtual servers must maintain k sets of overlay use them to develop a protocol based on Chord, called Y0, that achieves load balancing with minimal overhead under the typical links. Typically k = Θ(log n), which leads to an asymptotic assumption that the load is uniformly distributed in the identifier increase in overhead. space. In particular, we prove that Y0 can achieve near-optimal The second class of solutions uses just a single ID per load balancing, while moving little load to maintain the balance node [26], [22], [20]. However, all such solutions must re- and increasing the size of the routing tables by at most a constant factor. assign IDs to maintain the load balance as nodes arrive and Using extensive simulations based on real-world and synthetic depart the system [26]. This can result in a high overhead capacity distributions, we show that Y0 reduces the load imbal- because it involves transferring objects and updating overlay ance of Chord from O(log n) to a less than 3.6 without increasing links.
    [Show full text]
  • Tachyon-Further-Improve-Sparks
    Tachyon: A Reliable Memory Centric Storage for Big Data Analytics Haoyuan (HY) Li, Ali Ghodsi, Matei Zaharia, Scott Shenker, Ion Stoica UC Berkeley Outline • Overview • Research • Open Source • Future Outline • Overview • Research • Open Source • Future Memory is King • RAM throughput increasing exponen9ally • Disk throughput increasing slowly Memory-locality key to interac9ve response 9me Realized by many… • Frameworks already leverage memory 5 Problem solved? 6 An Example: - • Fast in-memory data processing framework – Keep one in-memory copy inside JVM – Track lineage of operaons used to derive data – Upon failure, use lineage to recompute data Lineage Tracking map join reduce filter map Issue 1 Different jobs share data: Slow writes to disk storage engine & Spark Task Spark Task execution engine same process Spark block 1 mem Spark block 3 mem (slow writes) block manager block 3 block manager block 1 block 1 block 2 HDFS block 3 block 4 disk 8 Issue 1 Different frameworks share data: Slow writes to disk storage engine & Spark Task Hadoop MR execution engine same process Spark block 1 mem YARN (slow writes) block manager block 3 block 1 block 2 HDFS block 3 Block 4 disk 9 Issue 2 execution engine & Spark Task storage engine same process block 1 Spark memory block 3 block manager block 1 block 2 HDFS block 3 block 4 disk 10 Issue 2 execution engine & crash storage engine same process block 1 Spark memory block 3 block manager block 1 block 2 HDFS block 3 block 4 disk 11 Issue 2 Process crash: lose all cache execution engine & storage engine
    [Show full text]
  • Big Data Analysis with Apache Spark
    Big Data Analysis with Apache Spark {tag} {/tag} International Journal of Computer Applications Foundation of Computer Science (FCS), NY, USA Volume 175 - Number 5 Year of Publication: 2017 Authors: Pallavi Singh, Saurabh Anand, Sagar B. M. 10.5120/ijca2017915251 {bibtex}2017915251.bib{/bibtex} Abstract Manipulating big data distributed over a cluster is one of the big challenges which most of the current big data oriented companies face. This is evident by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework which caters to provide solution for big data management. This paper, present a discussion on how technically Apache Spark help us in Big Data Analysis and Management. The paper aims to provide the conclusion stating apache Spark is more beneficial by almost 50 percent while working on big data. As when data size was increased to 5*106 the time taken was drastically reduced by around 50 percent compared to when queried Cassandra without Spark. Cassandra is used as Data Source for conducting our experiment. For this, a experiment is conducted comparing spark with normal Cassandra DataSet or ResultSet. Gradually increased the number of records in Cassandra table and time taken to fetch the records from Cassandra using Spark and traditional Java ResultSet was compared. For the initial stages, when data size was less than 10 percent, Spark showed almost an average response time which was almost equal to the time taken without the use of Spark. As the data size exceeded beyond 10 percent of 1 / 2 Big Data Analysis with Apache Spark records Spark response time dropped by almost 50 percent as compared to querying Cassandra without Spark .Final record was analyzed at 5*106 records.
    [Show full text]
  • Table of Contents
    NSDI ’15: 12th USENIX Symposium on Networked Systems Design and Implementation May 4–6, 2015 Oakland, CA Message from the Program Co-Chairs .......................................................... vii Monday, May 4, 2015 Datacenters Queues Don’t Matter When You Can JUMP Them! ............................................... .1 Matthew P. Grosvenor, Malte Schwarzkopf, Ionel Gog, Robert N. M. Watson, Andrew W. Moore, Steven Hand, and Jon Crowcroft, University of Cambridge Explicit Path Control in Commodity Data Centers: Design and Applications .......................... .15 Shuihai Hu and Kai Chen, The Hong Kong University of Science and Technology; Haitao Wu, Microsoft; Wei Bai, The Hong Kong University of Science and Technology; Chang Lan, University of California, Berkeley; Hao Wang, The Hong Kong University of Science and Technology; Hongze Zhao, Duke University; Chuanxiong Guo, Microsoft Increasing Datacenter Network Utilisation with GRIN ............................................ .29 Alexandru Agache, Razvan Deaconescu, and Costin Raiciu, University Politehnica of Bucharest Designing Distributed Systems Using Approximate Synchrony in Data Center Networks ................ .43 Dan R. K. Ports, Jialin Li, Vincent Liu, Naveen Kr. Sharma, and Arvind Krishnamurthy, University of Washington SDN Kinetic: Verifiable Dynamic Network Control. .59 Hyojoon Kim, Georgia Institute of Technology; Joshua Reich, AT&T Labs–Research; Arpit Gupta, Muhammad Shahbaz, and Nick Feamster, Princeton University; Russ Clark, Georgia Institute of Technology
    [Show full text]
  • Cluster Computing with Working Sets
    Spark: Cluster Computing with Working Sets Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, Ion Stoica University of California, Berkeley Abstract MapReduce/Dryad job, each job must reload the data from disk, incurring a significant performance penalty. MapReduce and its variants have been highly successful in implementing large-scale data-intensive applications • Interactive analytics: Hadoop is often used to run on commodity clusters. However, most of these systems ad-hoc exploratory queries on large datasets, through are built around an acyclic data flow model that is not SQL interfaces such as Pig [21] and Hive [1]. Ideally, suitable for other popular applications. This paper fo- a user would be able to load a dataset of interest into cuses on one such class of applications: those that reuse memory across a number of machines and query it re- a working set of data across multiple parallel operations. peatedly. However, with Hadoop, each query incurs This includes many iterative machine learning algorithms, significant latency (tens of seconds) because it runs as as well as interactive data analysis tools. We propose a a separate MapReduce job and reads data from disk. new framework called Spark that supports these applica- This paper presents a new cluster computing frame- tions while retaining the scalability and fault tolerance of work called Spark, which supports applications with MapReduce. To achieve these goals, Spark introduces an working sets while providing similar scalability and fault abstraction called resilient distributed datasets (RDDs). tolerance properties to MapReduce. An RDD is a read-only collection of objects partitioned The main abstraction in Spark is that of a resilient dis- across a set of machines that can be rebuilt if a partition tributed dataset (RDD), which represents a read-only col- is lost.
    [Show full text]