SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Cloudera Impala:
A Modern SQL Engine for Apache Hadoop
Mark Grover
Software Engineer, Cloudera
February 27, 2013
What is Impala?
●   General-purpose SQL engine
●   Real-time queries in Apache Hadoop
●   Beta version released since October 2012
●   General availability (GA) release slated for April 2013
●   Open source under Apache license
Overview
●   User View of Impala
●   Architecture of Impala
●   Comparing Impala with Dremel
●   Comparing Impala with Hive
●   Impala Roadmap
Impala Overview: Goals
●   General-purpose SQL query engine:
     ●   should work both for analytical and transactional workloads
     ●   will support queries that take from milliseconds to hours
●   Runs directly within Hadoop:
     ●   reads widely used Hadoop file formats
     ●   talks to widely used Hadoop storage managers
     ●   runs on same nodes that run Hadoop processes
●   High performance:
     ●   C++ instead of Java
     ●   runtime code generation
     ●   completely new execution engine that doesn't build on MapReduce
User View of Impala: Overview
●   Runs as a distributed service in cluster: one Impala daemon on each
    node with data
●   User submits query via ODBC/JDBC to any of the daemons
●   Query is distributed to all nodes with relevant data
●   If any node fails, the query fails
●   Impala uses Hive's metadata interface, connects to Hive's metastore
●   Supported file formats:
     ●   uncompressed/lzo-compressed text files
     ●   sequence files and RCFile with snappy/gzip compression
     ●   GA: Avro data files
     ●   GA: columnar format (more on that later)
User View of Impala: SQL
●   SQL support:
     ●   patterned after Hive's version of SQL
     ●   essentially SQL-92, minus correlated subqueries
     ●   limited to Select, Project, Join, Union, Subqueries, Aggregation and
         Insert
     ●   only equi-joins; no non-equi joins, no cross products
     ●   Order By only with Limit
     ●   GA: DDL support (CREATE, ALTER)
●   Functional limitations:
     ●   no custom UDFs, file formats, SerDes
     ●   no beyond SQL (buckets, samples, transforms, arrays, structs, maps,
         xpath, json)
     ●   only hash joins; joined table has to fit in memory:
           ● beta: of single node

           ● GA: aggregate memory of all (executing) nodes
User View of Impala: Apache HBase
●   HBase functionality:
     ●   uses Hive's mapping of HBase table into metastore table
     ●   predicates on rowkey columns are mapped into start/stop
         row
     ●   predicates on other columns are mapped into
         SingleColumnValueFilters
●   HBase functional limitations:
     ●   no nested-loop joins
     ●   all data stored as text
Impala Architecture
●   Two binaries: impalad and statestored
●   Impala daemon (impalad)
     ●   handles client requests and all internal requests related to
         query execution
     ●   exports Thrift services for these two roles
●   State store daemon (statestored)
     ●   provides name service and metadata distribution
     ●   also exports a Thrift service
Impala Architecture
●   Query execution phases
     ●   request arrives via odbc/jdbc
     ●   planner turns request into collections of plan fragments
     ●   coordinator initiates execution on remote impalad's
     ●   during execution
           ● intermediate results are streamed between executors

           ● query results are streamed back to client

           ● subject to limitations imposed to blocking operators

             (top-n, aggregation)
Impala Architecture: Planner
●   2-phase planning process:
     ●   single-node plan: left-deep tree of plan operators
     ●   plan partitioning: partition single-node plan to maximize scan locality,
         minimize data movement
●   Plan operators: Scan, HashJoin, HashAggregation, Union, TopN,
    Exchange
●   Distributed aggregation: pre-aggregation in all nodes, merge
    aggregation in single node.
    GA: hash-partitioned aggregation: re-partition aggregation
    input on grouping columns in order to reduce per-node
    memory requirement
●   Join order = FROM clause order
    GA target: rudimentary cost-based optimizer
Impala Architecture: Planner
●   Example: query with join and aggregation
    SELECT state, SUM(revenue)
    FROM HdfsTbl h JOIN HbaseTbl b ON (...)
    GROUP BY 1 ORDER BY 2 desc LIMIT 10

       TopN
                                                  Agg
                          TopN
       Agg                                       Hash
       Hash                Agg                   Join
       Join                                HDFS                   HBase
                           Exch                         Exch
                                           Scan                    Scan
    HDFS      HBase     at coordinator   at DataNodes          at region servers
    Scan       Scan
Impala Architecture: Query Execution
Request arrives via odbc/jdbc

      SQL App                               Hive
                                                      HDFS NN   Statestore
       ODBC                             Metastore
                          SQL
                        request

     Query Planner                 Query Planner           Query Planner
    Query Coordinator             Query Coordinator      Query Coordinator
     Query Executor               Query Executor          Query Executor
   HDFS DN      HBase             HDFS DN     HBase      HDFS DN    HBase
Impala Architecture: Query Execution
Planner turns request into collections of plan fragments
Coordinator initiates execution on remote impalad's
      SQL App                     Hive
                                            HDFS NN   Statestore
       ODBC                   Metastore




     Query Planner       Query Planner           Query Planner
    Query Coordinator   Query Coordinator      Query Coordinator
     Query Executor      Query Executor         Query Executor
    HDFS DN     HBase   HDFS DN     HBase      HDFS DN    HBase
Impala Architecture: Query Execution
Intermediate results are streamed between impalad's Query
results are streamed back to client

     SQL App                          Hive
                                                HDFS NN   Statestore
      ODBC                        Metastore

                   query
                  results

     Query Planner           Query Planner           Query Planner
   Query Coordinator        Query Coordinator      Query Coordinator
    Query Executor           Query Executor         Query Executor
   HDFS DN     HBase        HDFS DN     HBase      HDFS DN    HBase
Impala Architecture
●   Metadata handling:
     ●   utilizes Hive's metastore
     ●   caches metadata: no synchronous metastore API calls
         during query execution
     ●   beta: impalad's read metadata from metastore at startup
     ●   Post-GA: metadata distribution through statestore
     ●   Post-GA: HCatalog
Impala Architecture
●   Execution engine
     ●   written in C++
     ●   runtime code generation for "big loops"
     ●   internal in-memory tuple format plus fixed-width data at
         fixed offsets
     ●   uses intrinsics/special cpu instructions for text parsing,
         crc32 computation, etc.
Impala Execution Engine
●   More on runtime code generation
     ●   example of "big loop": insert batch of rows into hash table
     ●   known at query compile time: # of tuples in a batch, tuple
         layout, column types, etc.
     ●   generate at compile time: unrolled loop that inlines all
         function calls, contains no dead code, minimizes branches
     ●   code generated using llvm
Impala's Statestore
●   Central system state repository
     ●   name service (membership)
     ●   Post-GA: metadata
     ●   Post-GA: other scheduling-relevant or diagnostic state
●   Soft-state
     ●   all data can be reconstructed from the rest of the system
     ●   cluster continues to function when statestore fails, but per-node state
         becomes increasingly stale
●   Sends periodic heartbeats
     ●   pushes new data
     ●   checks for liveness
Statestore: Why not ZooKeeper?
●   ZK is not a good pub-sub system
     ●   Watch API is awkward and requires a lot of client logic
     ●   multiple round-trips required to get data for changes to
         node's children
     ●   push model is more natural for our use case
●   Don't need all the guarantees ZK provides:
     ●   serializability
     ●   persistence
     ●   prefer to avoid complexity where possible
●   ZK is bad at the things we care about and good at the
    things we don't
Comparing Impala to Dremel
●   What is Dremel?
     ●   columnar storage for data with nested structures
     ●   distributed scalable aggregation on top of that
●   Columnar storage in Hadoop: joint project between Cloudera
    and Twitter
     ●   new columnar format: Parquet; derived from Doug Cutting's Trevni
     ●   stores data in appropriate native/binary types
     ●   can also store nested structures similar to Dremel's ColumnIO
●   Distributed aggregation: Impala
●   Impala plus Parquet: a superset of the published version of
    Dremel (which didn't support joins)
More about Parquet
●   What is it:
     ●   container format for all popular serialization formats: Avro, Thrift,
         Protocol Buffers
     ●   successor to Trevni
     ●   jointly developed between Cloudera and Twitter
     ●   open source; hosted on github
●   Features
     ●   rowgroup format: file contains multiple horiz. slices
     ●   supports storing each column in separate file
     ●   supports fully shredded nested data; repetition and definition levels
         similar to Dremel's ColumnIO
     ●   column values stored in native types (bool, int<x>, float, double, byte
         array)
     ●   support for index pages for fast lookup
     ●   extensible value encodings
Comparing Impala to Hive
●   Hive: MapReduce as an execution engine
     ●   High latency, low throughput queries
     ●   Fault-tolerance model based on MapReduce's on-disk
         checkpointing; materializes all intermediate results
     ●   Java runtime allows for easy late-binding of functionality:
         file formats and UDFs.
     ●   Extensive layering imposes high runtime overhead
●   Impala:
     ●   direct, process-to-process data exchange
     ●   no fault tolerance
     ●   an execution engine designed for low runtime overhead
Comparing Impala to Hive
●   Impala's performance advantage over Hive: no hard
    numbers, but
     ●   Impala can get full disk throughput (~100MB/sec/disk);
         I/O-bound workloads often faster by 3-4x
     ●   queries that require multiple map-reduce phases in Hive
         see a higher speedup
     ●   queries that run against in-memory data see a higher
         speedup (observed up to 100x)
Impala Roadmap: GA – April 2013
●   New data formats:
     ●   Avro
     ●   Parquet
●   Improved query execution: partitioned joins
●   Further performance improvements
●   Guidelines for production deployment:
     ●   load balancing across impalad's
     ●   resource isolation within MR cluster
Impala Roadmap: 2013
●   Additional SQL:
     ●   UDFs
     ●   SQL authorization and DDL
     ●   ORDER BY without LIMIT
     ●   window functions
     ●   support for structured data types
●   Improved HBase support:
     ●   composite keys, complex types in columns,
         index nested-loop joins,
         INSERT/UPDATE/DELETE
Impala Roadmap: 2013
●   Runtime optimizations:
     ●   straggler handling
     ●   join order optimization
     ●   improved cache management
     ●   data collocation for improved join performance
●   Better metadata handling:
     ●   automatic metadata distribution through statestore
●   Resource management:
     ●   goal: run exploratory and production workloads in same
         cluster, against same data, w/o impacting production jobs
Try it out!
●   Beta version available since 10/24/12
●   Latest version is 0.6
●   We have packages for:
●   RHEL 6.2/5.7
●   Ubuntu 10.04 and 12.04
●   SLES 11
●   Debian 6
●   We are targeting GA for April 2013
●   Questions/comments? impala-user@cloudera.org
●   My email address: mgrover@cloudera.com
●   My twitter handle: mark_grover

Contenu connexe

Tendances

Scaling Hadoop at LinkedIn
Scaling Hadoop at LinkedInScaling Hadoop at LinkedIn
Scaling Hadoop at LinkedIn
DataWorks Summit
 
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
DataWorks Summit
 
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Databricks
 

Tendances (20)

Scaling Hadoop at LinkedIn
Scaling Hadoop at LinkedInScaling Hadoop at LinkedIn
Scaling Hadoop at LinkedIn
 
What's New in Apache Hive
What's New in Apache HiveWhat's New in Apache Hive
What's New in Apache Hive
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark Streaming
 
Amazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best PracticesAmazon EMR Deep Dive & Best Practices
Amazon EMR Deep Dive & Best Practices
 
PySpark Best Practices
PySpark Best PracticesPySpark Best Practices
PySpark Best Practices
 
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
 
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation Buffers
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation BuffersHBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation Buffers
HBase HUG Presentation: Avoiding Full GCs with MemStore-Local Allocation Buffers
 
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
Reduce Storage Costs by 5x Using The New HDFS Tiered Storage Feature
 
Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path Forward
 
OracleStore: A Highly Performant RawStore Implementation for Hive Metastore
OracleStore: A Highly Performant RawStore Implementation for Hive MetastoreOracleStore: A Highly Performant RawStore Implementation for Hive Metastore
OracleStore: A Highly Performant RawStore Implementation for Hive Metastore
 
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
Designing ETL Pipelines with Structured Streaming and Delta Lake—How to Archi...
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security Architecture
 
Unified Stream and Batch Processing with Apache Flink
Unified Stream and Batch Processing with Apache FlinkUnified Stream and Batch Processing with Apache Flink
Unified Stream and Batch Processing with Apache Flink
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
 
Best Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWSBest Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWS
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingIntroduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processing
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark Jobs
 
Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing Apache Tez: Accelerating Hadoop Query Processing
Apache Tez: Accelerating Hadoop Query Processing
 
The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...
The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...
The Columnar Era: Leveraging Parquet, Arrow and Kudu for High-Performance Ana...
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 

En vedette

Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)
Yukinori Suda
 
In-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great TasteIn-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great Taste
DataWorks Summit
 

En vedette (20)

The Impala Cookbook
The Impala CookbookThe Impala Cookbook
The Impala Cookbook
 
Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)Performance evaluation of cloudera impala (with Comparison to Hive)
Performance evaluation of cloudera impala (with Comparison to Hive)
 
Securing the Hadoop Ecosystem
Securing the Hadoop EcosystemSecuring the Hadoop Ecosystem
Securing the Hadoop Ecosystem
 
DPG 2014: "Context Sensitive and Time Dependent Relevance of Wikipedia Articles"
DPG 2014: "Context Sensitive and Time Dependent Relevance of Wikipedia Articles"DPG 2014: "Context Sensitive and Time Dependent Relevance of Wikipedia Articles"
DPG 2014: "Context Sensitive and Time Dependent Relevance of Wikipedia Articles"
 
Hadoop Puzzlers
Hadoop PuzzlersHadoop Puzzlers
Hadoop Puzzlers
 
Cloudera Impala: A modern SQL Query Engine for Hadoop
Cloudera Impala: A modern SQL Query Engine for HadoopCloudera Impala: A modern SQL Query Engine for Hadoop
Cloudera Impala: A modern SQL Query Engine for Hadoop
 
Application Architectures with Hadoop | Data Day Texas 2015
Application Architectures with Hadoop | Data Day Texas 2015Application Architectures with Hadoop | Data Day Texas 2015
Application Architectures with Hadoop | Data Day Texas 2015
 
Taming Operations in the Hadoop Ecosystem
Taming Operations in the Hadoop EcosystemTaming Operations in the Hadoop Ecosystem
Taming Operations in the Hadoop Ecosystem
 
Introducing the TPCx-HS Benchmark for Big Data
Introducing the TPCx-HS Benchmark for Big DataIntroducing the TPCx-HS Benchmark for Big Data
Introducing the TPCx-HS Benchmark for Big Data
 
Spark-on-Yarn: The Road Ahead-(Marcelo Vanzin, Cloudera)
Spark-on-Yarn: The Road Ahead-(Marcelo Vanzin, Cloudera)Spark-on-Yarn: The Road Ahead-(Marcelo Vanzin, Cloudera)
Spark-on-Yarn: The Road Ahead-(Marcelo Vanzin, Cloudera)
 
Cloudera Impala Internals
Cloudera Impala InternalsCloudera Impala Internals
Cloudera Impala Internals
 
In-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great TasteIn-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great Taste
 
Data Modeling for Data Science: Simplify Your Workload with Complex Types in ...
Data Modeling for Data Science: Simplify Your Workload with Complex Types in ...Data Modeling for Data Science: Simplify Your Workload with Complex Types in ...
Data Modeling for Data Science: Simplify Your Workload with Complex Types in ...
 
Debugging (Docker) containers in production
Debugging (Docker) containers in productionDebugging (Docker) containers in production
Debugging (Docker) containers in production
 
Nested Types in Impala
Nested Types in ImpalaNested Types in Impala
Nested Types in Impala
 
Improving Hadoop Cluster Performance via Linux Configuration
Improving Hadoop Cluster Performance via Linux ConfigurationImproving Hadoop Cluster Performance via Linux Configuration
Improving Hadoop Cluster Performance via Linux Configuration
 
Building a Modern Analytic Database with Cloudera 5.8
Building a Modern Analytic Database with Cloudera 5.8Building a Modern Analytic Database with Cloudera 5.8
Building a Modern Analytic Database with Cloudera 5.8
 
Data Science at Scale Using Apache Spark and Apache Hadoop
Data Science at Scale Using Apache Spark and Apache HadoopData Science at Scale Using Apache Spark and Apache Hadoop
Data Science at Scale Using Apache Spark and Apache Hadoop
 
Why Apache Spark is the Heir to MapReduce in the Hadoop Ecosystem
Why Apache Spark is the Heir to MapReduce in the Hadoop EcosystemWhy Apache Spark is the Heir to MapReduce in the Hadoop Ecosystem
Why Apache Spark is the Heir to MapReduce in the Hadoop Ecosystem
 
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
Advanced Apache Spark Meetup Project Tungsten Nov 12 2015
 

Similaire à Cloudera Impala: A Modern SQL Engine for Apache Hadoop

Jan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
Jan 2013 HUG: Impala - Real-time Queries for Apache HadoopJan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
Jan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
Yahoo Developer Network
 
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
Modern Data Stack France
 
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdfimpalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
ssusere05ec21
 

Similaire à Cloudera Impala: A Modern SQL Engine for Apache Hadoop (20)

Jan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
Jan 2013 HUG: Impala - Real-time Queries for Apache HadoopJan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
Jan 2013 HUG: Impala - Real-time Queries for Apache Hadoop
 
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
Marcel Kornacker: Impala tech talk Tue Feb 26th 2013
 
An Introduction to Impala – Low Latency Queries for Apache Hadoop
An Introduction to Impala – Low Latency Queries for Apache HadoopAn Introduction to Impala – Low Latency Queries for Apache Hadoop
An Introduction to Impala – Low Latency Queries for Apache Hadoop
 
Impala presentation
Impala presentationImpala presentation
Impala presentation
 
Cloudera Impala: A Modern SQL Engine for Hadoop
Cloudera Impala: A Modern SQL Engine for HadoopCloudera Impala: A Modern SQL Engine for Hadoop
Cloudera Impala: A Modern SQL Engine for Hadoop
 
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdfimpalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
impalapresentation-130130105033-phpapp02 (1)_221220_235919.pdf
 
Impala Architecture presentation
Impala Architecture presentationImpala Architecture presentation
Impala Architecture presentation
 
Etu Solution Day 2014 Track-D: 掌握Impala和Spark
Etu Solution Day 2014 Track-D: 掌握Impala和SparkEtu Solution Day 2014 Track-D: 掌握Impala和Spark
Etu Solution Day 2014 Track-D: 掌握Impala和Spark
 
Introduction to Impala
Introduction to ImpalaIntroduction to Impala
Introduction to Impala
 
SQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for ImpalaSQL Engines for Hadoop - The case for Impala
SQL Engines for Hadoop - The case for Impala
 
Apache Spark on HDinsight Training
Apache Spark on HDinsight TrainingApache Spark on HDinsight Training
Apache Spark on HDinsight Training
 
Impala presentation ahad rana
Impala presentation ahad ranaImpala presentation ahad rana
Impala presentation ahad rana
 
Cloudera Impala - San Diego Big Data Meetup August 13th 2014
Cloudera Impala - San Diego Big Data Meetup August 13th 2014Cloudera Impala - San Diego Big Data Meetup August 13th 2014
Cloudera Impala - San Diego Big Data Meetup August 13th 2014
 
Impala for PhillyDB Meetup
Impala for PhillyDB MeetupImpala for PhillyDB Meetup
Impala for PhillyDB Meetup
 
Architecting the Future of Big Data & Search - Eric Baldeschwieler
Architecting the Future of Big Data & Search - Eric BaldeschwielerArchitecting the Future of Big Data & Search - Eric Baldeschwieler
Architecting the Future of Big Data & Search - Eric Baldeschwieler
 
Apache Hive for modern DBAs
Apache Hive for modern DBAsApache Hive for modern DBAs
Apache Hive for modern DBAs
 
Fabian Hueske – Cascading on Flink
Fabian Hueske – Cascading on FlinkFabian Hueske – Cascading on Flink
Fabian Hueske – Cascading on Flink
 
HBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring BudgetHBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
 
Hbase: an introduction
Hbase: an introductionHbase: an introduction
Hbase: an introduction
 
Oct 2012 HUG: Project Panthera: Better Analytics with SQL, MapReduce, and HBase
Oct 2012 HUG: Project Panthera: Better Analytics with SQL, MapReduce, and HBaseOct 2012 HUG: Project Panthera: Better Analytics with SQL, MapReduce, and HBase
Oct 2012 HUG: Project Panthera: Better Analytics with SQL, MapReduce, and HBase
 

Plus de Cloudera, Inc.

Plus de Cloudera, Inc. (20)

Partner Briefing_January 25 (FINAL).pptx
Partner Briefing_January 25 (FINAL).pptxPartner Briefing_January 25 (FINAL).pptx
Partner Briefing_January 25 (FINAL).pptx
 
Cloudera Data Impact Awards 2021 - Finalists
Cloudera Data Impact Awards 2021 - Finalists Cloudera Data Impact Awards 2021 - Finalists
Cloudera Data Impact Awards 2021 - Finalists
 
2020 Cloudera Data Impact Awards Finalists
2020 Cloudera Data Impact Awards Finalists2020 Cloudera Data Impact Awards Finalists
2020 Cloudera Data Impact Awards Finalists
 
Edc event vienna presentation 1 oct 2019
Edc event vienna presentation 1 oct 2019Edc event vienna presentation 1 oct 2019
Edc event vienna presentation 1 oct 2019
 
Machine Learning with Limited Labeled Data 4/3/19
Machine Learning with Limited Labeled Data 4/3/19Machine Learning with Limited Labeled Data 4/3/19
Machine Learning with Limited Labeled Data 4/3/19
 
Data Driven With the Cloudera Modern Data Warehouse 3.19.19
Data Driven With the Cloudera Modern Data Warehouse 3.19.19Data Driven With the Cloudera Modern Data Warehouse 3.19.19
Data Driven With the Cloudera Modern Data Warehouse 3.19.19
 
Introducing Cloudera DataFlow (CDF) 2.13.19
Introducing Cloudera DataFlow (CDF) 2.13.19Introducing Cloudera DataFlow (CDF) 2.13.19
Introducing Cloudera DataFlow (CDF) 2.13.19
 
Introducing Cloudera Data Science Workbench for HDP 2.12.19
Introducing Cloudera Data Science Workbench for HDP 2.12.19Introducing Cloudera Data Science Workbench for HDP 2.12.19
Introducing Cloudera Data Science Workbench for HDP 2.12.19
 
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
 
Leveraging the cloud for analytics and machine learning 1.29.19
Leveraging the cloud for analytics and machine learning 1.29.19Leveraging the cloud for analytics and machine learning 1.29.19
Leveraging the cloud for analytics and machine learning 1.29.19
 
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
 
Leveraging the Cloud for Big Data Analytics 12.11.18
Leveraging the Cloud for Big Data Analytics 12.11.18Leveraging the Cloud for Big Data Analytics 12.11.18
Leveraging the Cloud for Big Data Analytics 12.11.18
 
Modern Data Warehouse Fundamentals Part 3
Modern Data Warehouse Fundamentals Part 3Modern Data Warehouse Fundamentals Part 3
Modern Data Warehouse Fundamentals Part 3
 
Modern Data Warehouse Fundamentals Part 2
Modern Data Warehouse Fundamentals Part 2Modern Data Warehouse Fundamentals Part 2
Modern Data Warehouse Fundamentals Part 2
 
Modern Data Warehouse Fundamentals Part 1
Modern Data Warehouse Fundamentals Part 1Modern Data Warehouse Fundamentals Part 1
Modern Data Warehouse Fundamentals Part 1
 
Extending Cloudera SDX beyond the Platform
Extending Cloudera SDX beyond the PlatformExtending Cloudera SDX beyond the Platform
Extending Cloudera SDX beyond the Platform
 
Federated Learning: ML with Privacy on the Edge 11.15.18
Federated Learning: ML with Privacy on the Edge 11.15.18Federated Learning: ML with Privacy on the Edge 11.15.18
Federated Learning: ML with Privacy on the Edge 11.15.18
 
Analyst Webinar: Doing a 180 on Customer 360
Analyst Webinar: Doing a 180 on Customer 360Analyst Webinar: Doing a 180 on Customer 360
Analyst Webinar: Doing a 180 on Customer 360
 
Build a modern platform for anti-money laundering 9.19.18
Build a modern platform for anti-money laundering 9.19.18Build a modern platform for anti-money laundering 9.19.18
Build a modern platform for anti-money laundering 9.19.18
 
Introducing the data science sandbox as a service 8.30.18
Introducing the data science sandbox as a service 8.30.18Introducing the data science sandbox as a service 8.30.18
Introducing the data science sandbox as a service 8.30.18
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 

Cloudera Impala: A Modern SQL Engine for Apache Hadoop

  • 1. Cloudera Impala: A Modern SQL Engine for Apache Hadoop Mark Grover Software Engineer, Cloudera February 27, 2013
  • 2. What is Impala? ● General-purpose SQL engine ● Real-time queries in Apache Hadoop ● Beta version released since October 2012 ● General availability (GA) release slated for April 2013 ● Open source under Apache license
  • 3. Overview ● User View of Impala ● Architecture of Impala ● Comparing Impala with Dremel ● Comparing Impala with Hive ● Impala Roadmap
  • 4. Impala Overview: Goals ● General-purpose SQL query engine: ● should work both for analytical and transactional workloads ● will support queries that take from milliseconds to hours ● Runs directly within Hadoop: ● reads widely used Hadoop file formats ● talks to widely used Hadoop storage managers ● runs on same nodes that run Hadoop processes ● High performance: ● C++ instead of Java ● runtime code generation ● completely new execution engine that doesn't build on MapReduce
  • 5. User View of Impala: Overview ● Runs as a distributed service in cluster: one Impala daemon on each node with data ● User submits query via ODBC/JDBC to any of the daemons ● Query is distributed to all nodes with relevant data ● If any node fails, the query fails ● Impala uses Hive's metadata interface, connects to Hive's metastore ● Supported file formats: ● uncompressed/lzo-compressed text files ● sequence files and RCFile with snappy/gzip compression ● GA: Avro data files ● GA: columnar format (more on that later)
  • 6. User View of Impala: SQL ● SQL support: ● patterned after Hive's version of SQL ● essentially SQL-92, minus correlated subqueries ● limited to Select, Project, Join, Union, Subqueries, Aggregation and Insert ● only equi-joins; no non-equi joins, no cross products ● Order By only with Limit ● GA: DDL support (CREATE, ALTER) ● Functional limitations: ● no custom UDFs, file formats, SerDes ● no beyond SQL (buckets, samples, transforms, arrays, structs, maps, xpath, json) ● only hash joins; joined table has to fit in memory: ● beta: of single node ● GA: aggregate memory of all (executing) nodes
  • 7. User View of Impala: Apache HBase ● HBase functionality: ● uses Hive's mapping of HBase table into metastore table ● predicates on rowkey columns are mapped into start/stop row ● predicates on other columns are mapped into SingleColumnValueFilters ● HBase functional limitations: ● no nested-loop joins ● all data stored as text
  • 8. Impala Architecture ● Two binaries: impalad and statestored ● Impala daemon (impalad) ● handles client requests and all internal requests related to query execution ● exports Thrift services for these two roles ● State store daemon (statestored) ● provides name service and metadata distribution ● also exports a Thrift service
  • 9. Impala Architecture ● Query execution phases ● request arrives via odbc/jdbc ● planner turns request into collections of plan fragments ● coordinator initiates execution on remote impalad's ● during execution ● intermediate results are streamed between executors ● query results are streamed back to client ● subject to limitations imposed to blocking operators (top-n, aggregation)
  • 10. Impala Architecture: Planner ● 2-phase planning process: ● single-node plan: left-deep tree of plan operators ● plan partitioning: partition single-node plan to maximize scan locality, minimize data movement ● Plan operators: Scan, HashJoin, HashAggregation, Union, TopN, Exchange ● Distributed aggregation: pre-aggregation in all nodes, merge aggregation in single node. GA: hash-partitioned aggregation: re-partition aggregation input on grouping columns in order to reduce per-node memory requirement ● Join order = FROM clause order GA target: rudimentary cost-based optimizer
  • 11. Impala Architecture: Planner ● Example: query with join and aggregation SELECT state, SUM(revenue) FROM HdfsTbl h JOIN HbaseTbl b ON (...) GROUP BY 1 ORDER BY 2 desc LIMIT 10 TopN Agg TopN Agg Hash Hash Agg Join Join HDFS HBase Exch Exch Scan Scan HDFS HBase at coordinator at DataNodes at region servers Scan Scan
  • 12. Impala Architecture: Query Execution Request arrives via odbc/jdbc SQL App Hive HDFS NN Statestore ODBC Metastore SQL request Query Planner Query Planner Query Planner Query Coordinator Query Coordinator Query Coordinator Query Executor Query Executor Query Executor HDFS DN HBase HDFS DN HBase HDFS DN HBase
  • 13. Impala Architecture: Query Execution Planner turns request into collections of plan fragments Coordinator initiates execution on remote impalad's SQL App Hive HDFS NN Statestore ODBC Metastore Query Planner Query Planner Query Planner Query Coordinator Query Coordinator Query Coordinator Query Executor Query Executor Query Executor HDFS DN HBase HDFS DN HBase HDFS DN HBase
  • 14. Impala Architecture: Query Execution Intermediate results are streamed between impalad's Query results are streamed back to client SQL App Hive HDFS NN Statestore ODBC Metastore query results Query Planner Query Planner Query Planner Query Coordinator Query Coordinator Query Coordinator Query Executor Query Executor Query Executor HDFS DN HBase HDFS DN HBase HDFS DN HBase
  • 15. Impala Architecture ● Metadata handling: ● utilizes Hive's metastore ● caches metadata: no synchronous metastore API calls during query execution ● beta: impalad's read metadata from metastore at startup ● Post-GA: metadata distribution through statestore ● Post-GA: HCatalog
  • 16. Impala Architecture ● Execution engine ● written in C++ ● runtime code generation for "big loops" ● internal in-memory tuple format plus fixed-width data at fixed offsets ● uses intrinsics/special cpu instructions for text parsing, crc32 computation, etc.
  • 17. Impala Execution Engine ● More on runtime code generation ● example of "big loop": insert batch of rows into hash table ● known at query compile time: # of tuples in a batch, tuple layout, column types, etc. ● generate at compile time: unrolled loop that inlines all function calls, contains no dead code, minimizes branches ● code generated using llvm
  • 18. Impala's Statestore ● Central system state repository ● name service (membership) ● Post-GA: metadata ● Post-GA: other scheduling-relevant or diagnostic state ● Soft-state ● all data can be reconstructed from the rest of the system ● cluster continues to function when statestore fails, but per-node state becomes increasingly stale ● Sends periodic heartbeats ● pushes new data ● checks for liveness
  • 19. Statestore: Why not ZooKeeper? ● ZK is not a good pub-sub system ● Watch API is awkward and requires a lot of client logic ● multiple round-trips required to get data for changes to node's children ● push model is more natural for our use case ● Don't need all the guarantees ZK provides: ● serializability ● persistence ● prefer to avoid complexity where possible ● ZK is bad at the things we care about and good at the things we don't
  • 20. Comparing Impala to Dremel ● What is Dremel? ● columnar storage for data with nested structures ● distributed scalable aggregation on top of that ● Columnar storage in Hadoop: joint project between Cloudera and Twitter ● new columnar format: Parquet; derived from Doug Cutting's Trevni ● stores data in appropriate native/binary types ● can also store nested structures similar to Dremel's ColumnIO ● Distributed aggregation: Impala ● Impala plus Parquet: a superset of the published version of Dremel (which didn't support joins)
  • 21. More about Parquet ● What is it: ● container format for all popular serialization formats: Avro, Thrift, Protocol Buffers ● successor to Trevni ● jointly developed between Cloudera and Twitter ● open source; hosted on github ● Features ● rowgroup format: file contains multiple horiz. slices ● supports storing each column in separate file ● supports fully shredded nested data; repetition and definition levels similar to Dremel's ColumnIO ● column values stored in native types (bool, int<x>, float, double, byte array) ● support for index pages for fast lookup ● extensible value encodings
  • 22. Comparing Impala to Hive ● Hive: MapReduce as an execution engine ● High latency, low throughput queries ● Fault-tolerance model based on MapReduce's on-disk checkpointing; materializes all intermediate results ● Java runtime allows for easy late-binding of functionality: file formats and UDFs. ● Extensive layering imposes high runtime overhead ● Impala: ● direct, process-to-process data exchange ● no fault tolerance ● an execution engine designed for low runtime overhead
  • 23. Comparing Impala to Hive ● Impala's performance advantage over Hive: no hard numbers, but ● Impala can get full disk throughput (~100MB/sec/disk); I/O-bound workloads often faster by 3-4x ● queries that require multiple map-reduce phases in Hive see a higher speedup ● queries that run against in-memory data see a higher speedup (observed up to 100x)
  • 24. Impala Roadmap: GA – April 2013 ● New data formats: ● Avro ● Parquet ● Improved query execution: partitioned joins ● Further performance improvements ● Guidelines for production deployment: ● load balancing across impalad's ● resource isolation within MR cluster
  • 25. Impala Roadmap: 2013 ● Additional SQL: ● UDFs ● SQL authorization and DDL ● ORDER BY without LIMIT ● window functions ● support for structured data types ● Improved HBase support: ● composite keys, complex types in columns, index nested-loop joins, INSERT/UPDATE/DELETE
  • 26. Impala Roadmap: 2013 ● Runtime optimizations: ● straggler handling ● join order optimization ● improved cache management ● data collocation for improved join performance ● Better metadata handling: ● automatic metadata distribution through statestore ● Resource management: ● goal: run exploratory and production workloads in same cluster, against same data, w/o impacting production jobs
  • 27. Try it out! ● Beta version available since 10/24/12 ● Latest version is 0.6 ● We have packages for: ● RHEL 6.2/5.7 ● Ubuntu 10.04 and 12.04 ● SLES 11 ● Debian 6 ● We are targeting GA for April 2013 ● Questions/comments? impala-user@cloudera.org ● My email address: mgrover@cloudera.com ● My twitter handle: mark_grover