Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Shark Update and Upcoming Changes @ Spark User ...

Reynold Xin
May 09, 2013
62

Shark Update and Upcoming Changes @ Spark User Meetup

Shark has seen several key changes in the past few months. One of the major ones is a new storage format to support efficiently reading data from Tachyon, which enables data sharing and isolation across instances of Shark. In addition, we're making several optimizations to both Shark and Spark that promise significant performance boosts.

Reynold Xin

May 09, 2013
Tweet

Transcript

  1. Release Versioning & Schedule Shark Spark Time 0.1 0.5 Apr

    2012 0.2 0.6 Oct 2012 0.2.1 0.6.1 Nov 2012
  2. Release Versioning & Schedule Shark Spark Time 0.1 0.5 Apr

    2012 0.2 0.6 Oct 2012 0.2.1 0.6.1 Nov 2012 0.3 ??? ???
  3. Release Versioning & Schedule Shark Spark Time 0.1 0.5 Apr

    2012 0.2 0.6 Oct 2012 0.2.1 0.6.1 Nov 2012 0.3 ??? ??? 0.7 0.7 May 2013 0.8 0.8 Summer 2013
  4. Shark before Tachyon Shark Spark block manager (memory) HDFS (disk)

    block 1 block 3 block 1 block 4 block 2 block 3 block 1 storage engine & execution engine same JVM process
  5. Shark before Tachyon Shark Spark block manager (memory) HDFS (disk)

    block 1 block 3 block 1 block 4 block 2 block 3 block 1 storage engine & execution engine same JVM process crashed
  6. Shark with Tachyon CREATE TABLE data TBLPROPERTIES(“shark.cache” = “tachyon”) AS

    SELECT a, b, c from data_on_disk WHERE month=“May” 1.  In-memory data sharing across multiple Shark instances (i.e. stronger isolation) 2.  Instant recovery of in-memory tables 3.  Reduced heap size => faster GC
  7. Efficient Tachyon Integration Tachyon provides a column-based API: Shark table

    columns are stored as files in Tachyon (RAMFS) Java NIO memory-mapped files (no memory copy) “Unsafe” for DirectByteBuffer reads (C style memory reads)
  8. Other Improvements in 0.7 Enhanced EC2/S3/EMR Support » CLI can directly

    execute queries defined in a S3 file (bin/shark -f s3://…) » Picks up AWS credentials from environmental variables automatically New Data Types: timestamp, binary Avro SerDes Maven / Debian package (ClearStory)
  9. Other Improvements in 0.7 Improved sql2rdd API (ClearStory & AMP)

    Improved LIMIT 0 handling » Avoid launching any tasks if LIMIT 0 » Some BI tools use LIMIT 0 to test whether a table exists Improved map join implementation (Yahoo!) Inserting data into in-memory tables Bug fixes (ClearStory)
  10. Improvements (0.8+) Fair scheduler for Shark server (Intel) Improved shuffle

    on 16+ cores (Intel) Performance improvements for high cardinality joins and aggregations (AMP) Expression byte code generation (Yahoo! & Intel) Remove cached tables/partitions (Yahoo! & AMP) In-memory data compression