SlideShare a Scribd company logo
1 of 80
Download to read offline
APACHE KUDU
ASIM JALIS
GALVANIZE
INTRO
ASIM JALIS
Galvanize/Zipfian, Data
Engineering
Cloudera, Microso!,
Salesforce
MS in Computer Science
from University of
Virginia
WHAT IS GALVANIZEโ€™S DATA
ENGINEERING IMMERSIVE?
Immersive Peer Learning
Environment
Master High-Demand
Skills and Technologies
Heart of San Francisco in
SOMA
YOU GET TO . . .
Play with Terabytes of
Data
Spark, Hadoop, Hive,
Kafka, Storm, HBase
Data Science at Scale
Level UP your Career
FOR MORE INFORMATION
Check out
http://galvanize.com
asim.jalis@galvanize.com
TALK OVERVIEW
WHAT IS THIS TALK ABOUT?
What is Kudu?
How can I use it to
simplify my Big Data
architecture?
How can I use it as an
alternative to HBase?
How does it work?
Demo
HOW MANY PEOPLE HERE ARE
FAMILIAR WITH HDFS?
HOW MANY PEOPLE HERE ARE
FAMILIAR WITH HBASE?
HOW MANY PEOPLE HERE ARE
FAMILIAR WITH KUDU?
WHY KUDU
WHAT IS A KUDU?
Kudus are a kind of
antelope
Found in eastern and
southern Africa
WHAT PROBLEM DOES KUDU
SOLVE?
WHAT IS LATENCY?
How long it takes to start
How long it takes to setup
WHICH HAS HIGHER LATENCY:
AIRPLANES OR CARS?
WHICH HAS HIGHER LATENCY:
AIRPLANES OR CARS?
Airplanes have high
latency
Cars have lower latency
Winner: Cars
WHAT IS THROUGHPUT?
Operations per second/minute/hour
How much you get done in unit time
WHICH HAS HIGHER
THROUGHPUT: AIRPLANES OR
CARS?
WHICH HAS HIGHER
THROUGHPUT: AIRPLANES OR
CARS?
Airplanes have high
throughput
Cars have lower
throughput
Winner: Airplanes
WHICH IS BETTER?
Low throughput High throughput
Low latency Cars Jet-Packs
High latency Horses Planes
It depends, usually there is a tradeo๏ฌ€
Going to Oakland: Drive
Going to Florida: Fly
WHY DOES HBASE EXIST?
HDFS immutable,
append-only
HBase mutable, random
access read/write
Fast random access
Low latency (good)
WHY DOES PARQUET EXIST?
Main idea: columnar
storage
Fast scan, fast batch
processing
High throughput (good)
High latency (bad)
WHY DOES KUDU EXIST?
Low throughput High throughput
Low latency HBase Kudu
High latency JSON on HDFS Parquet on HDFS
WHY KUDU?
Kudu is the child of
Parquet and HBase
HBase with columnar
storage
Mutable Parquet with
fast random access for
read/write
Parquet-like HBase
HBase-like Parquet
WHAT IS THE USE CASE FOR
KUDU?
Use HBase-like features to store data as it arrives in real-
time
Use Parquet-like features to run analytic workloads on
real-time data
In queries easily combine long-term historical data and
short-term real-time data
WHAT IS THE BIG IDEA OF KUDU?
HBase uses in-memory store for low-latency reads/writes
Parquet on HDFS uses columnar layout for high-
throughput scans
Kudu idea: in-memory store + columnar layout
KUDU MOTIVATION
Goal Competing With
Fast columnar scans Parquet/HDFS
Low-latency random updates HBase
Consistent performance -
KUDU, HBASE, HDFS
WHAT LANGUAGE IS KUDU
WRITTEN IN?
C++ for performance
Java and Python wrappers
HOW CAN I INTERACT WITH
KUDU?
Impala is Kuduโ€™s defacto shell
C++, Java, or Python client
MapReduce
Spark (beta)
MapReduce and Spark read-only access (currently)
BENCHMARKS
KUDU VS PARQUET ON HDFS
TPC-H: Business-oriented queries/updates
Latency in ms: lower is better
KUDU VS HBASE
Yahoo! Cloud System
Benchmark (YCSB)
Evaluates key-value and
cloud serving stores
Random acccess
workload
Throughput: higher is
better
KUDU VS PHOENIX VS PARQUET
SQL analytic workload
TPC-H LINEITEM table only
Phoenix best-of-breed SQL on HBase
LAMBDA ARCHITECTURE
KUDU USE CASE: LAMBDA
ARCHITECTURE
LAMBDA ARCHITECTURE
Real-time data process
by Speed Layer
Historical data
processed by Batch
Layer
Speed Layer results
saved in HBase
New and old data joined
in Spark Streaming
ONLINE RETAILER USE CASE
List popular items top of
front page
What is best selling item:
this hour
today
this week
Keep inventory numbers
updated
KUDU
Using Kudu
Speed layer queries can
include analytics
PRE-KUDU ARCH
POST-KUDU ARCH
KUDU INTERNALS
KUDU ARCHITECTURE
KUDU MASTER
Fault tolerance
Failover to backup
masters
Ra! used for electing
new leaders
Only leader serves client
requests
KUDU MASTER ROLES
Catalog Manager
Metadata: schema,
replication
Master Tablet stores
metadata
Cluster Coordinator
Who is alive:
redistribute data on
death
Tablet directory
Which tablet is where
TABLETS
Tablets are similar to
HBase Regions
Tables statically
partitioned into tablets
Tablets can be
replicated to 3 or 5
Replication uses Ra!โ€™s
Leader/Follower pattern
for consensus
Data stored on local file
system, not HDFS
TABLET REPLICATION
Writes must be done on
leader tablet
Reads can be on leader
or followers
Write log is replicated
Log replication driven by
leader
Uses Ra! consensus
THICK CLIENT
Client caches tablet metadata
Uses metadata to figure out leader to write to
Failure on write to deposed leader
Write failure forces metadata refresh
TABLET INTERNALS
Component Description
MemRowSet In-memory writes, stored row-wise
DiskRowSet Disk-based data store, columnar, 32 KB
DeltaMemStores In-memory update store
DeltaFile Disk-based update store
MEM ROW SET
Writes for new keys are
written in MemRowSets.
Then flushed out to
DiskRowSets.
Kudu uses Bloom filters
to determine if a key is in
DiskRowSet.
DELTA MEM STORES
Updates are written to
DeltaMemStores.
The flushed to
DeltaFiles.
TABLET COUNT
Tablet count based on partitions
Partitioning function maps row to tablet
Partitioning defined at table creation time
Partitions cannot be redefined dynamically
PARTITIONING
Hash Partitioning
Subset of the primary key columns and number of buckets
For example
DISTRIBUTE BY HASH(col1,col2) INTO 16 BUCK
Range Partitioning
Ordered subset of primary key columns
Maps tuples into binary strings by concatenating values of
specified columns using order-preserving encoding.
DOES KUDU REQUIRE HADOOP?
It does not depend on HDFS.
Has no required dependency on Hadoop, HDFS,
MapReduce, Spark.
However, in practice accessed most easily through Impala.
DO KUDU TABLETSERVERS
SHARE DISK SPACE WITH HDFS?
Kudu TabletServers and HDFS DataNodes can run on the
machines.
Kuduโ€™s InputFormat enables data locality.
Data locality: MapReduce and Spark tasks likely to run on
machines containing data.
KUDU SCHEMA
WHAT DATA TYPES DOES KUDU
SUPPORT?
Boolean
8-bit signed integer
16-bit signed integer
32-bit signed integer
64-bit signed integer
Timestamp
32-bit floating-point
64-bit floating-point
String
Binary
HOW LARGE CAN VALUES BE IN
KUDU?
Values in the 10s of KB and above are not recommended
Poor performance
Stability issues in current release
Not intended for big blobs or images
ENCODING TYPES
Column Type Encoding
integer, timestamp plain, bitshu๏ฌ€le, run length
float plain, bitshu๏ฌ€le
bool plain, dictionary, run length
string, binary plain, prefix, dictionary
WHAT IS PLAIN ENCODING?
Data in its natural format.
E.g. int32 stored as 32-bit little-endian integers.
WHAT IS BITSHUFFLE ENCODING?
Bitwise columnar
encoding.
MSB stored first, then
second-MSB, etc.
Result LZ4 compressed.
Works well when values
repeat or change by
small amounts.
11010010 1111 1111
11010011 --> 0000 1111
11010100 0000 0011
11010101 1100 1010
WHAT IS RUN LENGTH
ENCODING?
Repeated values (runs) are stored as value and count.
Works well for denormalized tables with consecutive
repeated values when sorted by primary key.
54.231.184.7
54.231.184.7
54.231.184.7 --> 54.231.184.7 | 5
54.231.184.7
54.231.184.7
WHAT IS DICTIONARY ENCODING?
Dictionary of unique values.
Value encoded as index in dictionary.
Works well if column has small set of unique values.
If there are too many values Kudu falls back to plain
encoding.
WHAT IS PREFIX ENCODING?
Common prefixes compressed in consecutive column
values.
Works well when values share common prefixes.
COLUMN COMPRESSION
Per-column compression using LZ4, Snappy, or ZLib.
By default, columns stored uncompressed.
WHAT IMPACT WILL
COMPRESSION HAVE ON SCAN
PERFORMANCE AND ON SPACE?
It will reduce storage space.
It will reduce scan performance.
DEMO
ADMIN UI VM PORT SETUP
Virtual Box > Settings > Network > Adapter 2 > Port Forwarding > +
Enter:
Name: Rule 1
Protocol: TCP
Host IP:
Host Port: 8051
Guest IP:
Guest Port: 8051
Open browser:
http://quickstart.cloudera:8051
CONNECT TO VM
ssh demo@quickstart.cloudera
START IMPALA SHELL
impala-shell
CREATE A TABLE
CREATE TABLE sales (
state STRING,
id INTEGER,
sale_date STRING,
store INTEGER,
product INTEGER,
amount DOUBLE
)
DISTRIBUTE BY RANGE(state)
SPLIT ROWS(('CA'),('WA'),('OR'))
TBLPROPERTIES(
'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler',
'kudu.table_name' = 'sales',
'kudu.master_addresses' = 'quickstart.cloudera:7051',
'kudu.key_columns' = 'state,id'
);
INSERT SOME DATA INTO IT
INSERT INTO sales
(state, id, sale_date, store, product, amount)
VALUES
('WA',101,'2014-11-13',100,331,300.00),
('OR',104,'2014-11-18',700,329,450.00),
('CA',102,'2014-11-15',203,321,200.00),
('CA',106,'2014-11-19',202,331,330.00),
('WA',103,'2014-11-17',101,373,750.00),
('CA',105,'2014-11-19',202,321,200.00);
TRY SQL
SELECT COUNT(*) FROM sales;
SELECT STATE,COUNT(*) FROM sales GROUP BY STATE;
VIEW TABLE IN ADMIN UI
Go to http://quickstart.cloudera:8051/
REFERENCES
READINGS
Kudu Whitepaper
http://getkudu.io/kudu.pdf
Quickstart VM
http://getkudu.io/docs/quickstart.html
Schema
http://getkudu.io/docs/schema_design.html
Kudu Impala Guide
http://www.cloudera.com/documentation/betas/kudu/0-5-
0/topics/kudu_impala.html
GALVANIZE DATA ENGINEERING
QUESTIONS

More Related Content

What's hot

The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
Databricks
ย 

What's hot (20)

Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsUnderstanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
ย 
Deep Dive - Amazon Elastic MapReduce (EMR)
Deep Dive - Amazon Elastic MapReduce (EMR)Deep Dive - Amazon Elastic MapReduce (EMR)
Deep Dive - Amazon Elastic MapReduce (EMR)
ย 
Building large scale transactional data lake using apache hudi
Building large scale transactional data lake using apache hudiBuilding large scale transactional data lake using apache hudi
Building large scale transactional data lake using apache hudi
ย 
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
ย 
Introduction to Hadoop and Hadoop component
Introduction to Hadoop and Hadoop component Introduction to Hadoop and Hadoop component
Introduction to Hadoop and Hadoop component
ย 
Apache Flume
Apache FlumeApache Flume
Apache Flume
ย 
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
Change Data Capture to Data Lakes Using Apache Pulsar and Apache Hudi - Pulsa...
ย 
Introduction to apache spark
Introduction to apache spark Introduction to apache spark
Introduction to apache spark
ย 
Introduction to Apache Hive
Introduction to Apache HiveIntroduction to Apache Hive
Introduction to Apache Hive
ย 
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
ย 
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and HudiHow to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
ย 
The delta architecture
The delta architectureThe delta architecture
The delta architecture
ย 
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache SparkArbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
ย 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
ย 
Spark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike PercySpark Summit EU talk by Mike Percy
Spark Summit EU talk by Mike Percy
ย 
Building robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and DebeziumBuilding robust CDC pipeline with Apache Hudi and Debezium
Building robust CDC pipeline with Apache Hudi and Debezium
ย 
Hive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilHive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas Patil
ย 
Designing Structured Streaming Pipelinesโ€”How to Architect Things Right
Designing Structured Streaming Pipelinesโ€”How to Architect Things RightDesigning Structured Streaming Pipelinesโ€”How to Architect Things Right
Designing Structured Streaming Pipelinesโ€”How to Architect Things Right
ย 
Spark architecture
Spark architectureSpark architecture
Spark architecture
ย 
Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)Iceberg: A modern table format for big data (Strata NY 2018)
Iceberg: A modern table format for big data (Strata NY 2018)
ย 

Viewers also liked

Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge DatasetsScaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
Turi, Inc.
ย 
Introduction into scalable graph analysis with Apache Giraph and Spark GraphX
Introduction into scalable graph analysis with Apache Giraph and Spark GraphXIntroduction into scalable graph analysis with Apache Giraph and Spark GraphX
Introduction into scalable graph analysis with Apache Giraph and Spark GraphX
rhatr
ย 
Introducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph ProcessingIntroducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph Processing
sscdotopen
ย 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0
Cloudera, Inc.
ย 

Viewers also liked (13)

Machine Learning with GraphLab Create
Machine Learning with GraphLab CreateMachine Learning with GraphLab Create
Machine Learning with GraphLab Create
ย 
Hadoop Graph Processing with Apache Giraph
Hadoop Graph Processing with Apache GiraphHadoop Graph Processing with Apache Giraph
Hadoop Graph Processing with Apache Giraph
ย 
Apache Arrow (Strata-Hadoop World San Jose 2016)
Apache Arrow (Strata-Hadoop World San Jose 2016)Apache Arrow (Strata-Hadoop World San Jose 2016)
Apache Arrow (Strata-Hadoop World San Jose 2016)
ย 
HPE Keynote Hadoop Summit San Jose 2016
HPE Keynote Hadoop Summit San Jose 2016HPE Keynote Hadoop Summit San Jose 2016
HPE Keynote Hadoop Summit San Jose 2016
ย 
Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge DatasetsScaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
Scaling Up Machine Learning: How to Benchmark GraphLab Create on Huge Datasets
ย 
Introduction into scalable graph analysis with Apache Giraph and Spark GraphX
Introduction into scalable graph analysis with Apache Giraph and Spark GraphXIntroduction into scalable graph analysis with Apache Giraph and Spark GraphX
Introduction into scalable graph analysis with Apache Giraph and Spark GraphX
ย 
Introducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph ProcessingIntroducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph Processing
ย 
Time Series Analysis with Spark
Time Series Analysis with SparkTime Series Analysis with Spark
Time Series Analysis with Spark
ย 
Using Kafka and Kudu for fast, low-latency SQL analytics on streaming data
Using Kafka and Kudu for fast, low-latency SQL analytics on streaming dataUsing Kafka and Kudu for fast, low-latency SQL analytics on streaming data
Using Kafka and Kudu for fast, low-latency SQL analytics on streaming data
ย 
Kudu - Fast Analytics on Fast Data
Kudu - Fast Analytics on Fast DataKudu - Fast Analytics on Fast Data
Kudu - Fast Analytics on Fast Data
ย 
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...
ย 
Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0Efficient Data Storage for Analytics with Apache Parquet 2.0
Efficient Data Storage for Analytics with Apache Parquet 2.0
ย 
Next-generation Python Big Data Tools, powered by Apache Arrow
Next-generation Python Big Data Tools, powered by Apache ArrowNext-generation Python Big Data Tools, powered by Apache Arrow
Next-generation Python Big Data Tools, powered by Apache Arrow
ย 

Similar to Apache kudu

Core concepts and Key technologies - Big Data Analytics
Core concepts and Key technologies - Big Data AnalyticsCore concepts and Key technologies - Big Data Analytics
Core concepts and Key technologies - Big Data Analytics
Kaniska Mandal
ย 
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
Hadoop User Group
ย 
Elephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to HadoopElephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to Hadoop
Stuart Ainsworth
ย 
Hw09 Practical HBase Getting The Most From Your H Base Install
Hw09   Practical HBase  Getting The Most From Your H Base InstallHw09   Practical HBase  Getting The Most From Your H Base Install
Hw09 Practical HBase Getting The Most From Your H Base Install
Cloudera, Inc.
ย 
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and SparkTupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
DataStax Academy
ย 
Hive @ Hadoop day seattle_2010
Hive @ Hadoop day seattle_2010Hive @ Hadoop day seattle_2010
Hive @ Hadoop day seattle_2010
nzhang
ย 

Similar to Apache kudu (20)

Core concepts and Key technologies - Big Data Analytics
Core concepts and Key technologies - Big Data AnalyticsCore concepts and Key technologies - Big Data Analytics
Core concepts and Key technologies - Big Data Analytics
ย 
SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)SQL Server 2014 In-Memory Tables (XTP, Hekaton)
SQL Server 2014 In-Memory Tables (XTP, Hekaton)
ย 
Time series database by Harshil Ambagade
Time series database by Harshil AmbagadeTime series database by Harshil Ambagade
Time series database by Harshil Ambagade
ย 
SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue
ย 
Hands on Hadoop and pig
Hands on Hadoop and pigHands on Hadoop and pig
Hands on Hadoop and pig
ย 
Big Data Concepts
Big Data ConceptsBig Data Concepts
Big Data Concepts
ย 
Bdam presentation on parquet
Bdam presentation on parquetBdam presentation on parquet
Bdam presentation on parquet
ย 
Lecture 26
Lecture 26Lecture 26
Lecture 26
ย 
Data Engineering Quick Guide
Data Engineering Quick GuideData Engineering Quick Guide
Data Engineering Quick Guide
ย 
Etu L2 Training - Hadoop ไผๆฅญๆ‡‰็”จๅฏฆไฝœ
Etu L2 Training - Hadoop ไผๆฅญๆ‡‰็”จๅฏฆไฝœEtu L2 Training - Hadoop ไผๆฅญๆ‡‰็”จๅฏฆไฝœ
Etu L2 Training - Hadoop ไผๆฅญๆ‡‰็”จๅฏฆไฝœ
ย 
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
Yahoo! Hadoop User Group - May Meetup - HBase and Pig: The Hadoop ecosystem a...
ย 
Artur Fejklowicz - โ€œData Lake architectureโ€ AI&BigDataDay 2017
Artur Fejklowicz - โ€œData Lake architectureโ€ AI&BigDataDay 2017Artur Fejklowicz - โ€œData Lake architectureโ€ AI&BigDataDay 2017
Artur Fejklowicz - โ€œData Lake architectureโ€ AI&BigDataDay 2017
ย 
Elephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to HadoopElephant in the room: A DBA's Guide to Hadoop
Elephant in the room: A DBA's Guide to Hadoop
ย 
Big Data - HDInsight and Power BI
Big Data - HDInsight and Power BIBig Data - HDInsight and Power BI
Big Data - HDInsight and Power BI
ย 
Overview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational DatabasesOverview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational Databases
ย 
Hw09 Practical HBase Getting The Most From Your H Base Install
Hw09   Practical HBase  Getting The Most From Your H Base InstallHw09   Practical HBase  Getting The Most From Your H Base Install
Hw09 Practical HBase Getting The Most From Your H Base Install
ย 
Nextag talk
Nextag talkNextag talk
Nextag talk
ย 
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and SparkTupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
ย 
FiloDB - Breakthrough OLAP Performance with Cassandra and Spark
FiloDB - Breakthrough OLAP Performance with Cassandra and SparkFiloDB - Breakthrough OLAP Performance with Cassandra and Spark
FiloDB - Breakthrough OLAP Performance with Cassandra and Spark
ย 
Hive @ Hadoop day seattle_2010
Hive @ Hadoop day seattle_2010Hive @ Hadoop day seattle_2010
Hive @ Hadoop day seattle_2010
ย 

Recently uploaded

VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
SUHANI PANDEY
ย 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
Lars Albertsson
ย 
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
shivangimorya083
ย 
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
amitlee9823
ย 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
MohammedJunaid861692
ย 
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
shivangimorya083
ย 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
shivangimorya083
ย 

Recently uploaded (20)

VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
ย 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
ย 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
ย 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
ย 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
ย 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
ย 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
ย 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
ย 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
ย 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
ย 
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
ย 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
ย 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
ย 
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: ๐Ÿ“ 7737669865 ๐Ÿ“ High Profile Model Escorts | Bangalore...
ย 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
ย 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx
ย 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
ย 
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
ย 
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 โ˜Žโœ”๐Ÿ‘Œโœ” Whatsapp Hard And Sexy Vip Call
ย 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171โœ”๏ธBody to body massage wit...
ย 

Apache kudu

  • 3. ASIM JALIS Galvanize/Zipfian, Data Engineering Cloudera, Microso!, Salesforce MS in Computer Science from University of Virginia
  • 4. WHAT IS GALVANIZEโ€™S DATA ENGINEERING IMMERSIVE? Immersive Peer Learning Environment Master High-Demand Skills and Technologies Heart of San Francisco in SOMA
  • 5. YOU GET TO . . . Play with Terabytes of Data Spark, Hadoop, Hive, Kafka, Storm, HBase Data Science at Scale Level UP your Career
  • 6.
  • 7. FOR MORE INFORMATION Check out http://galvanize.com asim.jalis@galvanize.com
  • 9. WHAT IS THIS TALK ABOUT? What is Kudu? How can I use it to simplify my Big Data architecture? How can I use it as an alternative to HBase? How does it work? Demo
  • 10. HOW MANY PEOPLE HERE ARE FAMILIAR WITH HDFS?
  • 11. HOW MANY PEOPLE HERE ARE FAMILIAR WITH HBASE?
  • 12. HOW MANY PEOPLE HERE ARE FAMILIAR WITH KUDU?
  • 14. WHAT IS A KUDU? Kudus are a kind of antelope Found in eastern and southern Africa
  • 15. WHAT PROBLEM DOES KUDU SOLVE?
  • 16. WHAT IS LATENCY? How long it takes to start How long it takes to setup
  • 17. WHICH HAS HIGHER LATENCY: AIRPLANES OR CARS?
  • 18. WHICH HAS HIGHER LATENCY: AIRPLANES OR CARS? Airplanes have high latency Cars have lower latency Winner: Cars
  • 19. WHAT IS THROUGHPUT? Operations per second/minute/hour How much you get done in unit time
  • 20. WHICH HAS HIGHER THROUGHPUT: AIRPLANES OR CARS?
  • 21. WHICH HAS HIGHER THROUGHPUT: AIRPLANES OR CARS? Airplanes have high throughput Cars have lower throughput Winner: Airplanes
  • 22. WHICH IS BETTER? Low throughput High throughput Low latency Cars Jet-Packs High latency Horses Planes It depends, usually there is a tradeo๏ฌ€ Going to Oakland: Drive Going to Florida: Fly
  • 23. WHY DOES HBASE EXIST? HDFS immutable, append-only HBase mutable, random access read/write Fast random access Low latency (good)
  • 24. WHY DOES PARQUET EXIST? Main idea: columnar storage Fast scan, fast batch processing High throughput (good) High latency (bad)
  • 25. WHY DOES KUDU EXIST? Low throughput High throughput Low latency HBase Kudu High latency JSON on HDFS Parquet on HDFS
  • 26. WHY KUDU? Kudu is the child of Parquet and HBase HBase with columnar storage Mutable Parquet with fast random access for read/write Parquet-like HBase HBase-like Parquet
  • 27. WHAT IS THE USE CASE FOR KUDU? Use HBase-like features to store data as it arrives in real- time Use Parquet-like features to run analytic workloads on real-time data In queries easily combine long-term historical data and short-term real-time data
  • 28. WHAT IS THE BIG IDEA OF KUDU? HBase uses in-memory store for low-latency reads/writes Parquet on HDFS uses columnar layout for high- throughput scans Kudu idea: in-memory store + columnar layout
  • 29. KUDU MOTIVATION Goal Competing With Fast columnar scans Parquet/HDFS Low-latency random updates HBase Consistent performance -
  • 31. WHAT LANGUAGE IS KUDU WRITTEN IN? C++ for performance Java and Python wrappers
  • 32. HOW CAN I INTERACT WITH KUDU? Impala is Kuduโ€™s defacto shell C++, Java, or Python client MapReduce Spark (beta) MapReduce and Spark read-only access (currently)
  • 34. KUDU VS PARQUET ON HDFS TPC-H: Business-oriented queries/updates Latency in ms: lower is better
  • 35. KUDU VS HBASE Yahoo! Cloud System Benchmark (YCSB) Evaluates key-value and cloud serving stores Random acccess workload Throughput: higher is better
  • 36. KUDU VS PHOENIX VS PARQUET SQL analytic workload TPC-H LINEITEM table only Phoenix best-of-breed SQL on HBase
  • 38. KUDU USE CASE: LAMBDA ARCHITECTURE
  • 39. LAMBDA ARCHITECTURE Real-time data process by Speed Layer Historical data processed by Batch Layer Speed Layer results saved in HBase New and old data joined in Spark Streaming
  • 40. ONLINE RETAILER USE CASE List popular items top of front page What is best selling item: this hour today this week Keep inventory numbers updated
  • 41. KUDU Using Kudu Speed layer queries can include analytics
  • 46. KUDU MASTER Fault tolerance Failover to backup masters Ra! used for electing new leaders Only leader serves client requests
  • 47. KUDU MASTER ROLES Catalog Manager Metadata: schema, replication Master Tablet stores metadata Cluster Coordinator Who is alive: redistribute data on death Tablet directory Which tablet is where
  • 48. TABLETS Tablets are similar to HBase Regions Tables statically partitioned into tablets Tablets can be replicated to 3 or 5 Replication uses Ra!โ€™s Leader/Follower pattern for consensus Data stored on local file system, not HDFS
  • 49. TABLET REPLICATION Writes must be done on leader tablet Reads can be on leader or followers Write log is replicated Log replication driven by leader Uses Ra! consensus
  • 50. THICK CLIENT Client caches tablet metadata Uses metadata to figure out leader to write to Failure on write to deposed leader Write failure forces metadata refresh
  • 51. TABLET INTERNALS Component Description MemRowSet In-memory writes, stored row-wise DiskRowSet Disk-based data store, columnar, 32 KB DeltaMemStores In-memory update store DeltaFile Disk-based update store
  • 52. MEM ROW SET Writes for new keys are written in MemRowSets. Then flushed out to DiskRowSets. Kudu uses Bloom filters to determine if a key is in DiskRowSet.
  • 53. DELTA MEM STORES Updates are written to DeltaMemStores. The flushed to DeltaFiles.
  • 54. TABLET COUNT Tablet count based on partitions Partitioning function maps row to tablet Partitioning defined at table creation time Partitions cannot be redefined dynamically
  • 55. PARTITIONING Hash Partitioning Subset of the primary key columns and number of buckets For example DISTRIBUTE BY HASH(col1,col2) INTO 16 BUCK Range Partitioning Ordered subset of primary key columns Maps tuples into binary strings by concatenating values of specified columns using order-preserving encoding.
  • 56. DOES KUDU REQUIRE HADOOP? It does not depend on HDFS. Has no required dependency on Hadoop, HDFS, MapReduce, Spark. However, in practice accessed most easily through Impala.
  • 57. DO KUDU TABLETSERVERS SHARE DISK SPACE WITH HDFS? Kudu TabletServers and HDFS DataNodes can run on the machines. Kuduโ€™s InputFormat enables data locality. Data locality: MapReduce and Spark tasks likely to run on machines containing data.
  • 59. WHAT DATA TYPES DOES KUDU SUPPORT? Boolean 8-bit signed integer 16-bit signed integer 32-bit signed integer 64-bit signed integer Timestamp 32-bit floating-point 64-bit floating-point String Binary
  • 60. HOW LARGE CAN VALUES BE IN KUDU? Values in the 10s of KB and above are not recommended Poor performance Stability issues in current release Not intended for big blobs or images
  • 61. ENCODING TYPES Column Type Encoding integer, timestamp plain, bitshu๏ฌ€le, run length float plain, bitshu๏ฌ€le bool plain, dictionary, run length string, binary plain, prefix, dictionary
  • 62. WHAT IS PLAIN ENCODING? Data in its natural format. E.g. int32 stored as 32-bit little-endian integers.
  • 63. WHAT IS BITSHUFFLE ENCODING? Bitwise columnar encoding. MSB stored first, then second-MSB, etc. Result LZ4 compressed. Works well when values repeat or change by small amounts. 11010010 1111 1111 11010011 --> 0000 1111 11010100 0000 0011 11010101 1100 1010
  • 64. WHAT IS RUN LENGTH ENCODING? Repeated values (runs) are stored as value and count. Works well for denormalized tables with consecutive repeated values when sorted by primary key. 54.231.184.7 54.231.184.7 54.231.184.7 --> 54.231.184.7 | 5 54.231.184.7 54.231.184.7
  • 65. WHAT IS DICTIONARY ENCODING? Dictionary of unique values. Value encoded as index in dictionary. Works well if column has small set of unique values. If there are too many values Kudu falls back to plain encoding.
  • 66. WHAT IS PREFIX ENCODING? Common prefixes compressed in consecutive column values. Works well when values share common prefixes.
  • 67. COLUMN COMPRESSION Per-column compression using LZ4, Snappy, or ZLib. By default, columns stored uncompressed.
  • 68. WHAT IMPACT WILL COMPRESSION HAVE ON SCAN PERFORMANCE AND ON SPACE? It will reduce storage space. It will reduce scan performance.
  • 69. DEMO
  • 70. ADMIN UI VM PORT SETUP Virtual Box > Settings > Network > Adapter 2 > Port Forwarding > + Enter: Name: Rule 1 Protocol: TCP Host IP: Host Port: 8051 Guest IP: Guest Port: 8051 Open browser: http://quickstart.cloudera:8051
  • 71. CONNECT TO VM ssh demo@quickstart.cloudera
  • 73. CREATE A TABLE CREATE TABLE sales ( state STRING, id INTEGER, sale_date STRING, store INTEGER, product INTEGER, amount DOUBLE ) DISTRIBUTE BY RANGE(state) SPLIT ROWS(('CA'),('WA'),('OR')) TBLPROPERTIES( 'storage_handler' = 'com.cloudera.kudu.hive.KuduStorageHandler', 'kudu.table_name' = 'sales', 'kudu.master_addresses' = 'quickstart.cloudera:7051', 'kudu.key_columns' = 'state,id' );
  • 74. INSERT SOME DATA INTO IT INSERT INTO sales (state, id, sale_date, store, product, amount) VALUES ('WA',101,'2014-11-13',100,331,300.00), ('OR',104,'2014-11-18',700,329,450.00), ('CA',102,'2014-11-15',203,321,200.00), ('CA',106,'2014-11-19',202,331,330.00), ('WA',103,'2014-11-17',101,373,750.00), ('CA',105,'2014-11-19',202,321,200.00);
  • 75. TRY SQL SELECT COUNT(*) FROM sales; SELECT STATE,COUNT(*) FROM sales GROUP BY STATE;
  • 76. VIEW TABLE IN ADMIN UI Go to http://quickstart.cloudera:8051/