SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
How to
performance-tune
spark applications in
large clusters
- Omkar Joshi
Omkar Joshi
omkar@uber.com
● Software engineer on Hadoop
Data Platform team
● 2.5 years at Uber
● Architected Object store & NFS
solutions at Hedvig
● Hadoop Yarn committer
● Enjoy gardening & hiking in free
time
01 Hadoop profiler
02 Flame graph
03 Auto tune
04 Storage improvements
05 Cpu / Runtime improvements
06 Efficiency improvements
07 Memory improvements
Agenda
Challenge: Distributed
Profiling at a Large Scale
● Uber’s Scale
Multi-Tenancy, Distributed
1m+ Applications per Week
1000+ Executors Per Application
● Resource Utilization: Usage ≠ Allocation
Hadoop Profiler
● Java Agent attached to each
executor
● Collects metrics via JMX and
/proc
● Instruments arbitrary Java user
code
● Emits to Kafka, InfluxDB, and
other data sinks
Method
Argument
Profiler
Method
duration
Profiler
CPU/Memory
Profiler
Reporter
Java Agent
Kafka InfluxDB
https://github.com/uber-common/jvm-profiler
System Integration
How to Use
● Spark: spark-submit command line:
$ spark-submit --deploy-mode cluster --master yarn
--conf spark.jars=hdfs://hdfs_url/lib/jvm-profiler-1.0.0.jar
--conf spark.driver.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar
--conf spark.executor.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar
--class com.uber.spark.MyJob my_spark_job.jar
● Plain Java Program: -javaagent option:
$ java -javaagent:jvm-profiler-1.0.0.jar --classpath foo.jar YourAppClass
Common Use Cases
● Memory Deep Dive: Heap, RSS, Direct Buffer, Mapped Buffer Pool
○ Right-size Container : Reduced Memory from 7G to 5G for 1000+ Executors
○ Off-Heap/Native Memory Tuning
● Hive On Spark Efficiency
○ ~70% queries
use <80%
allocated memory resource
Advanced Use Cases
● Trace arbitrary Java method argument
e.g. org.apache.hadoop.hdfs.protocolPB.
ClientNamenodeProtocolTranslatorPB.addBlock.1
Access Auditing:
Read/Write HDFS Files from individual Spark App
Advanced Use Cases
● Trace arbitrary Java method during
runtime
○ For example:
org.apache.hadoop.hdfs.protocolPB.Client
NamenodeProtocolTranslatorPB.getBlock
Locations
● Flamegraph
○ Trace CPU Hotspot
○ Helped finding serialization take
significant time during writing shuffle
data
Auto Tune (Work in Progress)
● Problem: data scientist using team level Spark conf template
● Known Daily Applications
○ Use historical run to set Spark configurations (memory, vcore, etc.) *
● Ad-hoc Repeated (Daily) Applications
○ Use Machine Learning to predict resource usage
○ Challenge: Feature Engineering
■ Execution Plan
Project [user_id, product_id, price]
Filter (date = 2019-01-31 and product_id = xyz)
UnresolvedRelation datalake.user_purchase
* Done by our colleague Abhishek Modi
Open Sourced in September 2018
https://github.com/uber/marmaray
Blog Post:
https://eng.uber.com/marmaray-hado
op-ingestion-open-source/
High-Level Architecture
Chain of converters
Schema Service
Input
Storage
System
Source
Connector
M3 Monitoring System
Work
Unit
Calculator
Metadata Manager
(Checkpoint store)
Converter1 Converter 2
Sink
Connector
Output
Storage
System
Error Tables
Datafeed Config Store
Spark execution framework
Spark job
improvements
Storage
improvements
Effective data layout (parquet)
● Parquet uses columnar compression
● Columnar compression savings outperform gz or snappy compression
savings
● Align records such that adjacent rows have identical column values
○ Eg. For state column California.
● Sort records with increasing value of cardinality.
● Generalization sometimes is not possible; If it is a framework provide custom
sorting.
User Id First Name City State Rider score
abc123011101 John New York City New York 4.95
abc123011102 Michael San Francisco California 4.92
abc123011103 Andrea Seattle Washington 4.93
abc123011104 Robert Atlanta City Georgia 4.95
User Id First Name City State Rider score
cas123032203 Sheetal Atlanta City Georgia 4.97
dsc123022320 Nikki Atlanta City Georgia 4.95
ssd012320212 Dhiraj Atlanta City Georgia 4.94
abc123011104 Robert Atlanta City Georgia 4.95
CPU / Runtime
improvements
Custom Spark accumulators
● Problem
○ Given a set of ride records; remove duplicate ride records and also count duplicates per state
1. RDD<String> rideRecords =
javaSparkContext.readParquet(some_path);
2. Map<String, Long> ridesPerStateBeforeDup
= rideRecords.map(r ->
getState(r)).countByKey();
3. RDD<String> dedupRideRecords =
dedup(rideRecords);
4. Map<String, Long> ridesPerStateAfterDup =
dedupRideRecords.map(r ->
getState(r)).countByKey();
5. dedupRideRecords.write(some_hdfs_path);
6. Duplicates = Diff(ridesPerStateAfterDup,
ridesPerStateBeforeDup)
7. # spark stages = 5 ( 3 for countByKey)
1. Class RidesPerStateAccumulator extends
AccumulatorV2<Map<String, Long>>
2. RidesPerStateAccumulator
riderPerStateBeforeDup, riderPerStateAfterDup;
3. dedup(javaSparkContext.readParquet(some_pat
h).map(r -> {riderPerStateBeforeDup.add(r);
return r;})).map(r ->
{riderPerStateAfterDup.add(r); return
r;}).write(some_hdfs_path);
4. Duplicates = Diff(ridesPerStateAfterDup,
ridesPerStateBeforeDup)
5. # spark Stages = 2 (no counting overhead!!)
Kafka topic
256 Partitions
3Billion messsages per
run
Increasing kafka read parallelism
Kafka
Broker
1 Kafka
consumer
/ partition
(256
tasks)
1 Kafka
consumer per
Kafka partition
Each consumer
reading 12Million
messages
Spark Stage 1
Sparkshuffleservice
Shuffle
Write
(1.3TB)
Spark Stage 2
8192
tasks
Shuffle
Read
(1.3TB)
Kafka
Broker
>1 Kafka consumer
per Kafka partition
Each consumer reading
384K messages
1 Kafka partition split
into 32 virtual
partitions
Spark Stage 2
8192
tasks
Increasing kafka read parallelism contd..
2
1
● Why Kryo?
○ Lesser memory footprint than Java serializer.
○ Faster and supports custom serializer
● Bug fix to truly enable kryo serialization
○ Spark kryo config prefix change.
● What all is needed to take advantage of that
○ Set “spark.serializer” to “org.apache.spark.serializer.KryoSerializer”
○ Registering avro schemas to spark conf (sparkConf.registerAvroSchemas())
■ Useful if you are using Avro GenericRecord (Schema + Data)
○ Register all classes which are needed while doing spark transformation
■ Use “spark.kryo.classesToRegister”
■ Use “spark.kryo.registrationRequired” to find missing classes
Kryo serialization
Kryo serialization contd..
Data (128)
Data (128)
Data (128)
Data (128)
Data (128)
Avro Schema (4K)
Avro Schema (4K)
Avro Schema (4K)
Avro Schema (4K)
Avro Schema (4K)
Data (128)
Data (128)
Data (128)
Data (128)
Data (128)
Schema identifier(4)
Schema identifier(4)
Schema identifier(4)
Schema identifier(4)
Schema identifier(4)
1 Record = 4228 Bytes 1 Record = 132 Bytes (97% savings)
Reduce ser/deser time by restructuring payload
1. @AllArgsConstructor
2. @Getter
3. private class SparkPayload {
4. private final String sortingKey;
5. // Map with 1000+ entries.
6. private final Map<String, GenericRecord>
data;
7. }
8.
1. @Getter
2. private class SparkPayload {
3. private final String sortingKey;
4. // Map with 1000+ entries.
5. private final byte[] serializedData;
6.
7. public SparkPayload(final String sortingKey,
Map<String, GenericRecord> data) {
8. this.sortingKey = sortingKey;
9. this.serializedData =
KryoSerializer.serialize(data);
10. }
11.
12. public Map<String, GenericRecord> getData() {
13. return
KryoSerializer.deserialize(this.serializedData,
Map.class);
14. }
15. }
Parallelizing spark’s iterator
jsc.mapPartitions (iterator -> while (i.hasnext) { parquetWriter.write(i.next); })
MapPartitions Stage (~45min) MapPartitions Stage (~25min)
Reading from disk
Fetching record from
Spark’s Iterator
Writing to Parquet
Writer in memory
Parquet columnar
compression
FileSystem write
Reading from disk
Fetching record from
Spark’s Iterator
Writing to Parquet
Writer in memory
Parquet columnar
compression
FileSystem write
Spark’s Thread
New writer
Thread
Memory
buffer
Spark’s Thread
Efficiency
improvements
Improve utilization by sharing same spark resources
JavaSparkContext.readFromKafka(“topic
1”).writeToHdfs();
JavaSparkContext.readFromKafka(“topic
1”).writeToHdfs();
JavaSparkContext.readFromKafka(“topic
3”).writeToHdfs();
JavaSparkContext.readFromKafka(“topic
2”).writeToHdfs();
JavaSparkContext.readFromKafka(“topic
N”).writeToHdfs();Threadpoolwith#threads=parallelism
needed
Improve utilization by sharing same spark resources
Time
ExecutorId
Stage Boundaries
Lot of wastage!!!
Improve utilization by sharing same spark resources
Time
ExecutorId
Stage Boundaries
Memory
improvements
Off heap memory improvements (work in progress)
● Symptom
○ Container killed by YARN for exceeding memory limits. 10.4 GB of 10.4 GB physical memory used. Consider
boosting spark.yarn.executor.memoryOverhead
● Solution as per stack overflow :)
○ Increase “spark.yarn.executor.memoryOverhead”
○ Result - Huge memory wastage.
● Spark memory distribution
○ Heap & off-heap memory (direct & memory mapped)
● Possible solutions
○ Avoid memory mapping or perform memory mapping chunk by chunk instead of entire file
(4-16MB vs 1GB)
● Current vs Target
○ Current - 7GB [Heap(4gb) + Off-heap(3gb)]
○ Target - 5GB [Heap(4gb) + Off-heap(1gb)] - ~28% memory reduction (per container)
Thank You!!

Weitere ähnliche Inhalte

Was ist angesagt?

Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...Databricks
 
Extending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session ExtensionsExtending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session ExtensionsDatabricks
 
Productionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerProductionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerEvan Chan
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxData
 
Apache Spark overview
Apache Spark overviewApache Spark overview
Apache Spark overviewDataArt
 
Spark 1.6 vs Spark 2.0
Spark 1.6 vs Spark 2.0Spark 1.6 vs Spark 2.0
Spark 1.6 vs Spark 2.0Sigmoid
 
Apache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabApache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabAbhinav Singh
 
Apache Spark RDDs
Apache Spark RDDsApache Spark RDDs
Apache Spark RDDsDean Chen
 
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17spark-project
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKShu-Jeng Hsieh
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsAnton Kirillov
 
Understanding Memory Management In Spark For Fun And Profit
Understanding Memory Management In Spark For Fun And ProfitUnderstanding Memory Management In Spark For Fun And Profit
Understanding Memory Management In Spark For Fun And ProfitSpark Summit
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiDatabricks
 
SORT & JOIN IN SPARK 2.0
SORT & JOIN IN SPARK 2.0SORT & JOIN IN SPARK 2.0
SORT & JOIN IN SPARK 2.0Sigmoid
 
DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale Hakka Labs
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰Wayne Chen
 
Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with PythonGokhan Atil
 

Was ist angesagt? (20)

Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...
Optimizing Performance and Computing Resource Efficiency of In-Memory Big Dat...
 
Extending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session ExtensionsExtending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session Extensions
 
Productionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerProductionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job Server
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
 
Apache Spark overview
Apache Spark overviewApache Spark overview
Apache Spark overview
 
Spark 1.6 vs Spark 2.0
Spark 1.6 vs Spark 2.0Spark 1.6 vs Spark 2.0
Spark 1.6 vs Spark 2.0
 
Apache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabApache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLab
 
Apache Spark RDDs
Apache Spark RDDsApache Spark RDDs
Apache Spark RDDs
 
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
 
Spark Working Environment in Windows OS
Spark Working Environment in Windows OSSpark Working Environment in Windows OS
Spark Working Environment in Windows OS
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & Internals
 
Understanding Memory Management In Spark For Fun And Profit
Understanding Memory Management In Spark For Fun And ProfitUnderstanding Memory Management In Spark For Fun And Profit
Understanding Memory Management In Spark For Fun And Profit
 
Apache Spark Tutorial
Apache Spark TutorialApache Spark Tutorial
Apache Spark Tutorial
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
 
SORT & JOIN IN SPARK 2.0
SORT & JOIN IN SPARK 2.0SORT & JOIN IN SPARK 2.0
SORT & JOIN IN SPARK 2.0
 
DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale DataEngConf SF16 - Collecting and Moving Data at Scale
DataEngConf SF16 - Collecting and Moving Data at Scale
 
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰HadoopCon 2016  - 用 Jupyter Notebook Hold 住一個上線 Spark  Machine Learning 專案實戰
HadoopCon 2016 - 用 Jupyter Notebook Hold 住一個上線 Spark Machine Learning 專案實戰
 
Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with Python
 

Ähnlich wie SF Big Analytics 20191112: How to performance-tune Spark applications in large clusters

How to Performance-Tune Apache Spark Applications in Large Clusters
How to Performance-Tune Apache Spark Applications in Large ClustersHow to Performance-Tune Apache Spark Applications in Large Clusters
How to Performance-Tune Apache Spark Applications in Large ClustersDatabricks
 
How to performance tune spark applications in large clusters
How to performance tune spark applications in large clustersHow to performance tune spark applications in large clusters
How to performance tune spark applications in large clustersOmkar Joshi
 
Speed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorSpeed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorDatabricks
 
Build Large-Scale Data Analytics and AI Pipeline Using RayDP
Build Large-Scale Data Analytics and AI Pipeline Using RayDPBuild Large-Scale Data Analytics and AI Pipeline Using RayDP
Build Large-Scale Data Analytics and AI Pipeline Using RayDPDatabricks
 
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...Databricks
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaSpark Summit
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Databricks
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Аліна Шепшелей
 
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...Inhacking
 
Spark overview
Spark overviewSpark overview
Spark overviewLisa Hua
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksDatabricks
 
Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Djamel Zouaoui
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark DownscalingDatabricks
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with ExpressAaron Stannard
 
No more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in productionNo more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in productionChetan Khatri
 
Hot-Spot analysis Using Apache Spark framework
Hot-Spot analysis Using Apache Spark frameworkHot-Spot analysis Using Apache Spark framework
Hot-Spot analysis Using Apache Spark frameworkSupriya .
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 

Ähnlich wie SF Big Analytics 20191112: How to performance-tune Spark applications in large clusters (20)

How to Performance-Tune Apache Spark Applications in Large Clusters
How to Performance-Tune Apache Spark Applications in Large ClustersHow to Performance-Tune Apache Spark Applications in Large Clusters
How to Performance-Tune Apache Spark Applications in Large Clusters
 
How to performance tune spark applications in large clusters
How to performance tune spark applications in large clustersHow to performance tune spark applications in large clusters
How to performance tune spark applications in large clusters
 
Speed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS AcceleratorSpeed up UDFs with GPUs using the RAPIDS Accelerator
Speed up UDFs with GPUs using the RAPIDS Accelerator
 
Build Large-Scale Data Analytics and AI Pipeline Using RayDP
Build Large-Scale Data Analytics and AI Pipeline Using RayDPBuild Large-Scale Data Analytics and AI Pipeline Using RayDP
Build Large-Scale Data Analytics and AI Pipeline Using RayDP
 
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...
Updates from Project Hydrogen: Unifying State-of-the-Art AI and Big Data in A...
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
 
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
SE2016 BigData Vitalii Bondarenko "HD insight spark. Advanced in-memory Big D...
 
Spark overview
Spark overviewSpark overview
Spark overview
 
Scala and spark
Scala and sparkScala and spark
Scala and spark
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and Databricks
 
Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
No more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in productionNo more struggles with Apache Spark workloads in production
No more struggles with Apache Spark workloads in production
 
Hot-Spot analysis Using Apache Spark framework
Hot-Spot analysis Using Apache Spark frameworkHot-Spot analysis Using Apache Spark framework
Hot-Spot analysis Using Apache Spark framework
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 

Mehr von Chester Chen

SFBigAnalytics_SparkRapid_20220622.pdf
SFBigAnalytics_SparkRapid_20220622.pdfSFBigAnalytics_SparkRapid_20220622.pdf
SFBigAnalytics_SparkRapid_20220622.pdfChester Chen
 
zookeeer+raft-2.pdf
zookeeer+raft-2.pdfzookeeer+raft-2.pdf
zookeeer+raft-2.pdfChester Chen
 
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...Chester Chen
 
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...Chester Chen
 
A missing link in the ML infrastructure stack?
A missing link in the ML infrastructure stack?A missing link in the ML infrastructure stack?
A missing link in the ML infrastructure stack?Chester Chen
 
Shopify datadiscoverysf bigdata
Shopify datadiscoverysf bigdataShopify datadiscoverysf bigdata
Shopify datadiscoverysf bigdataChester Chen
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProChester Chen
 
SF Big Analytics 2019-06-12: Managing uber's data workflows at scale
SF Big Analytics 2019-06-12: Managing uber's data workflows at scaleSF Big Analytics 2019-06-12: Managing uber's data workflows at scale
SF Big Analytics 2019-06-12: Managing uber's data workflows at scaleChester Chen
 
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...Chester Chen
 
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftSF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftChester Chen
 
SFBigAnalytics- hybrid data management using cdap
SFBigAnalytics- hybrid data management using cdapSFBigAnalytics- hybrid data management using cdap
SFBigAnalytics- hybrid data management using cdapChester Chen
 
Sf big analytics: bighead
Sf big analytics: bigheadSf big analytics: bighead
Sf big analytics: bigheadChester Chen
 
Sf big analytics_2018_04_18: Evolution of the GoPro's data platform
Sf big analytics_2018_04_18: Evolution of the GoPro's data platformSf big analytics_2018_04_18: Evolution of the GoPro's data platform
Sf big analytics_2018_04_18: Evolution of the GoPro's data platformChester Chen
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Chester Chen
 
2018 data warehouse features in spark
2018   data warehouse features in spark2018   data warehouse features in spark
2018 data warehouse features in sparkChester Chen
 
2018 02-08-what's-new-in-apache-spark-2.3
2018 02-08-what's-new-in-apache-spark-2.3 2018 02-08-what's-new-in-apache-spark-2.3
2018 02-08-what's-new-in-apache-spark-2.3 Chester Chen
 
2018 02 20-jeg_index
2018 02 20-jeg_index2018 02 20-jeg_index
2018 02 20-jeg_indexChester Chen
 
Index conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathIndex conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathChester Chen
 
Index conf sparkai-feb20-n-pentreath
Index conf sparkai-feb20-n-pentreathIndex conf sparkai-feb20-n-pentreath
Index conf sparkai-feb20-n-pentreathChester Chen
 

Mehr von Chester Chen (20)

SFBigAnalytics_SparkRapid_20220622.pdf
SFBigAnalytics_SparkRapid_20220622.pdfSFBigAnalytics_SparkRapid_20220622.pdf
SFBigAnalytics_SparkRapid_20220622.pdf
 
zookeeer+raft-2.pdf
zookeeer+raft-2.pdfzookeeer+raft-2.pdf
zookeeer+raft-2.pdf
 
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
SF Big Analytics 2022-03-15: Persia: Scaling DL Based Recommenders up to 100 ...
 
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...
SF Big Analytics talk: NVIDIA FLARE: Federated Learning Application Runtime E...
 
A missing link in the ML infrastructure stack?
A missing link in the ML infrastructure stack?A missing link in the ML infrastructure stack?
A missing link in the ML infrastructure stack?
 
Shopify datadiscoverysf bigdata
Shopify datadiscoverysf bigdataShopify datadiscoverysf bigdata
Shopify datadiscoverysf bigdata
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a Pro
 
SF Big Analytics 2019-06-12: Managing uber's data workflows at scale
SF Big Analytics 2019-06-12: Managing uber's data workflows at scaleSF Big Analytics 2019-06-12: Managing uber's data workflows at scale
SF Big Analytics 2019-06-12: Managing uber's data workflows at scale
 
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...
SF Big Analytics 20190612: Building highly efficient data lakes using Apache ...
 
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftSF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
 
SFBigAnalytics- hybrid data management using cdap
SFBigAnalytics- hybrid data management using cdapSFBigAnalytics- hybrid data management using cdap
SFBigAnalytics- hybrid data management using cdap
 
Sf big analytics: bighead
Sf big analytics: bigheadSf big analytics: bighead
Sf big analytics: bighead
 
Sf big analytics_2018_04_18: Evolution of the GoPro's data platform
Sf big analytics_2018_04_18: Evolution of the GoPro's data platformSf big analytics_2018_04_18: Evolution of the GoPro's data platform
Sf big analytics_2018_04_18: Evolution of the GoPro's data platform
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
 
2018 data warehouse features in spark
2018   data warehouse features in spark2018   data warehouse features in spark
2018 data warehouse features in spark
 
2018 02-08-what's-new-in-apache-spark-2.3
2018 02-08-what's-new-in-apache-spark-2.3 2018 02-08-what's-new-in-apache-spark-2.3
2018 02-08-what's-new-in-apache-spark-2.3
 
2018 02 20-jeg_index
2018 02 20-jeg_index2018 02 20-jeg_index
2018 02 20-jeg_index
 
Index conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreathIndex conf sparkml-feb20-n-pentreath
Index conf sparkml-feb20-n-pentreath
 
Index conf sparkai-feb20-n-pentreath
Index conf sparkai-feb20-n-pentreathIndex conf sparkai-feb20-n-pentreath
Index conf sparkai-feb20-n-pentreath
 
Hspark index conf
Hspark index confHspark index conf
Hspark index conf
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 

Kürzlich hochgeladen (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 

SF Big Analytics 20191112: How to performance-tune Spark applications in large clusters

  • 1. How to performance-tune spark applications in large clusters - Omkar Joshi
  • 2. Omkar Joshi omkar@uber.com ● Software engineer on Hadoop Data Platform team ● 2.5 years at Uber ● Architected Object store & NFS solutions at Hedvig ● Hadoop Yarn committer ● Enjoy gardening & hiking in free time
  • 3. 01 Hadoop profiler 02 Flame graph 03 Auto tune 04 Storage improvements 05 Cpu / Runtime improvements 06 Efficiency improvements 07 Memory improvements Agenda
  • 4. Challenge: Distributed Profiling at a Large Scale ● Uber’s Scale Multi-Tenancy, Distributed 1m+ Applications per Week 1000+ Executors Per Application ● Resource Utilization: Usage ≠ Allocation
  • 5. Hadoop Profiler ● Java Agent attached to each executor ● Collects metrics via JMX and /proc ● Instruments arbitrary Java user code ● Emits to Kafka, InfluxDB, and other data sinks Method Argument Profiler Method duration Profiler CPU/Memory Profiler Reporter Java Agent Kafka InfluxDB https://github.com/uber-common/jvm-profiler
  • 7. How to Use ● Spark: spark-submit command line: $ spark-submit --deploy-mode cluster --master yarn --conf spark.jars=hdfs://hdfs_url/lib/jvm-profiler-1.0.0.jar --conf spark.driver.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar --conf spark.executor.extraJavaOptions=-javaagent:jvm-profiler-1.0.0.jar --class com.uber.spark.MyJob my_spark_job.jar ● Plain Java Program: -javaagent option: $ java -javaagent:jvm-profiler-1.0.0.jar --classpath foo.jar YourAppClass
  • 8. Common Use Cases ● Memory Deep Dive: Heap, RSS, Direct Buffer, Mapped Buffer Pool ○ Right-size Container : Reduced Memory from 7G to 5G for 1000+ Executors ○ Off-Heap/Native Memory Tuning ● Hive On Spark Efficiency ○ ~70% queries use <80% allocated memory resource
  • 9. Advanced Use Cases ● Trace arbitrary Java method argument e.g. org.apache.hadoop.hdfs.protocolPB. ClientNamenodeProtocolTranslatorPB.addBlock.1 Access Auditing: Read/Write HDFS Files from individual Spark App
  • 10. Advanced Use Cases ● Trace arbitrary Java method during runtime ○ For example: org.apache.hadoop.hdfs.protocolPB.Client NamenodeProtocolTranslatorPB.getBlock Locations ● Flamegraph ○ Trace CPU Hotspot ○ Helped finding serialization take significant time during writing shuffle data
  • 11. Auto Tune (Work in Progress) ● Problem: data scientist using team level Spark conf template ● Known Daily Applications ○ Use historical run to set Spark configurations (memory, vcore, etc.) * ● Ad-hoc Repeated (Daily) Applications ○ Use Machine Learning to predict resource usage ○ Challenge: Feature Engineering ■ Execution Plan Project [user_id, product_id, price] Filter (date = 2019-01-31 and product_id = xyz) UnresolvedRelation datalake.user_purchase * Done by our colleague Abhishek Modi
  • 12. Open Sourced in September 2018 https://github.com/uber/marmaray Blog Post: https://eng.uber.com/marmaray-hado op-ingestion-open-source/
  • 13. High-Level Architecture Chain of converters Schema Service Input Storage System Source Connector M3 Monitoring System Work Unit Calculator Metadata Manager (Checkpoint store) Converter1 Converter 2 Sink Connector Output Storage System Error Tables Datafeed Config Store Spark execution framework
  • 16. Effective data layout (parquet) ● Parquet uses columnar compression ● Columnar compression savings outperform gz or snappy compression savings ● Align records such that adjacent rows have identical column values ○ Eg. For state column California. ● Sort records with increasing value of cardinality. ● Generalization sometimes is not possible; If it is a framework provide custom sorting.
  • 17. User Id First Name City State Rider score abc123011101 John New York City New York 4.95 abc123011102 Michael San Francisco California 4.92 abc123011103 Andrea Seattle Washington 4.93 abc123011104 Robert Atlanta City Georgia 4.95 User Id First Name City State Rider score cas123032203 Sheetal Atlanta City Georgia 4.97 dsc123022320 Nikki Atlanta City Georgia 4.95 ssd012320212 Dhiraj Atlanta City Georgia 4.94 abc123011104 Robert Atlanta City Georgia 4.95
  • 19. Custom Spark accumulators ● Problem ○ Given a set of ride records; remove duplicate ride records and also count duplicates per state 1. RDD<String> rideRecords = javaSparkContext.readParquet(some_path); 2. Map<String, Long> ridesPerStateBeforeDup = rideRecords.map(r -> getState(r)).countByKey(); 3. RDD<String> dedupRideRecords = dedup(rideRecords); 4. Map<String, Long> ridesPerStateAfterDup = dedupRideRecords.map(r -> getState(r)).countByKey(); 5. dedupRideRecords.write(some_hdfs_path); 6. Duplicates = Diff(ridesPerStateAfterDup, ridesPerStateBeforeDup) 7. # spark stages = 5 ( 3 for countByKey) 1. Class RidesPerStateAccumulator extends AccumulatorV2<Map<String, Long>> 2. RidesPerStateAccumulator riderPerStateBeforeDup, riderPerStateAfterDup; 3. dedup(javaSparkContext.readParquet(some_pat h).map(r -> {riderPerStateBeforeDup.add(r); return r;})).map(r -> {riderPerStateAfterDup.add(r); return r;}).write(some_hdfs_path); 4. Duplicates = Diff(ridesPerStateAfterDup, ridesPerStateBeforeDup) 5. # spark Stages = 2 (no counting overhead!!)
  • 20. Kafka topic 256 Partitions 3Billion messsages per run Increasing kafka read parallelism Kafka Broker 1 Kafka consumer / partition (256 tasks) 1 Kafka consumer per Kafka partition Each consumer reading 12Million messages Spark Stage 1 Sparkshuffleservice Shuffle Write (1.3TB) Spark Stage 2 8192 tasks Shuffle Read (1.3TB) Kafka Broker >1 Kafka consumer per Kafka partition Each consumer reading 384K messages 1 Kafka partition split into 32 virtual partitions Spark Stage 2 8192 tasks
  • 21. Increasing kafka read parallelism contd.. 2 1
  • 22. ● Why Kryo? ○ Lesser memory footprint than Java serializer. ○ Faster and supports custom serializer ● Bug fix to truly enable kryo serialization ○ Spark kryo config prefix change. ● What all is needed to take advantage of that ○ Set “spark.serializer” to “org.apache.spark.serializer.KryoSerializer” ○ Registering avro schemas to spark conf (sparkConf.registerAvroSchemas()) ■ Useful if you are using Avro GenericRecord (Schema + Data) ○ Register all classes which are needed while doing spark transformation ■ Use “spark.kryo.classesToRegister” ■ Use “spark.kryo.registrationRequired” to find missing classes Kryo serialization
  • 23. Kryo serialization contd.. Data (128) Data (128) Data (128) Data (128) Data (128) Avro Schema (4K) Avro Schema (4K) Avro Schema (4K) Avro Schema (4K) Avro Schema (4K) Data (128) Data (128) Data (128) Data (128) Data (128) Schema identifier(4) Schema identifier(4) Schema identifier(4) Schema identifier(4) Schema identifier(4) 1 Record = 4228 Bytes 1 Record = 132 Bytes (97% savings)
  • 24. Reduce ser/deser time by restructuring payload 1. @AllArgsConstructor 2. @Getter 3. private class SparkPayload { 4. private final String sortingKey; 5. // Map with 1000+ entries. 6. private final Map<String, GenericRecord> data; 7. } 8. 1. @Getter 2. private class SparkPayload { 3. private final String sortingKey; 4. // Map with 1000+ entries. 5. private final byte[] serializedData; 6. 7. public SparkPayload(final String sortingKey, Map<String, GenericRecord> data) { 8. this.sortingKey = sortingKey; 9. this.serializedData = KryoSerializer.serialize(data); 10. } 11. 12. public Map<String, GenericRecord> getData() { 13. return KryoSerializer.deserialize(this.serializedData, Map.class); 14. } 15. }
  • 25. Parallelizing spark’s iterator jsc.mapPartitions (iterator -> while (i.hasnext) { parquetWriter.write(i.next); }) MapPartitions Stage (~45min) MapPartitions Stage (~25min) Reading from disk Fetching record from Spark’s Iterator Writing to Parquet Writer in memory Parquet columnar compression FileSystem write Reading from disk Fetching record from Spark’s Iterator Writing to Parquet Writer in memory Parquet columnar compression FileSystem write Spark’s Thread New writer Thread Memory buffer Spark’s Thread
  • 27. Improve utilization by sharing same spark resources JavaSparkContext.readFromKafka(“topic 1”).writeToHdfs(); JavaSparkContext.readFromKafka(“topic 1”).writeToHdfs(); JavaSparkContext.readFromKafka(“topic 3”).writeToHdfs(); JavaSparkContext.readFromKafka(“topic 2”).writeToHdfs(); JavaSparkContext.readFromKafka(“topic N”).writeToHdfs();Threadpoolwith#threads=parallelism needed
  • 28. Improve utilization by sharing same spark resources Time ExecutorId Stage Boundaries Lot of wastage!!!
  • 29. Improve utilization by sharing same spark resources Time ExecutorId Stage Boundaries
  • 31. Off heap memory improvements (work in progress) ● Symptom ○ Container killed by YARN for exceeding memory limits. 10.4 GB of 10.4 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead ● Solution as per stack overflow :) ○ Increase “spark.yarn.executor.memoryOverhead” ○ Result - Huge memory wastage. ● Spark memory distribution ○ Heap & off-heap memory (direct & memory mapped) ● Possible solutions ○ Avoid memory mapping or perform memory mapping chunk by chunk instead of entire file (4-16MB vs 1GB) ● Current vs Target ○ Current - 7GB [Heap(4gb) + Off-heap(3gb)] ○ Target - 5GB [Heap(4gb) + Off-heap(1gb)] - ~28% memory reduction (per container)