SlideShare a Scribd company logo
Diomin Aliaksey
R&D
2014, Minsk
Hadoop Distributions: Bottlenecks and Tuning
OpenSource

Monitoring

Target Group

Apache Hadoop

Yes

X

Developers

Cloudera

Yes

Good

All

Hortonworks

Yes

Good

All

MapR

No

Bad

Enterprise

PivotalHD

No

Bad

Enterprise

3
How to find the bottleneck?

4
5
6
Hadoop Distributions: Bottlenecks and Tuning
8
9
10
11
12
1. Increase size of cluster
2. Increase input block size
3. Increase buffer size

13
1. Increase size of cluster
2. Increase input block size
3. Increase buffer size

14
15
16
17
1. Increase size of cluster
2. Increase input block size
3. Increase buffer size

18
19
1. Increase size of cluster
2. Increase input block size
3. Increase buffer size

20
1. Compression

21
1. Compression
2. Combiner

22
Wordcount

Reduce function as Combine
combine 1:

<a, 1> <b, 1> <a, 1>

=> <a, 2> <b, 1>

combine 2:

<a, 1> <b, 1>

=> <a, 1> <b, 1>

Reduce:

<a, {1, 2}> <b, {1, 1}> => <a, 3> <b, 2>

23
Mean

combine 1: <k,40> <k,30> <k,20> =>

<k, 30>

combine 2: <k,2> <k,8>

=>

<k, 5>

Reduce:

=>

<k, 17.5>

<k, {30, 5}>

24
Mean

combine 1: <k,40> <k,30> <k,20> =>

<k, 30>

combine 2: <k,2> <k,8>

=>

<k, 5>

Reduce:

=>

<k, 17.5>

<k, {30, 5}>

(40 + 30 + 20 + 2 + 8)/5 = 17.5

25
Mean

combine 1:

<k,<40,1>> <k,<30,1>>, <k,<20,1>>

=>

<k, <90,3> >

<k,<2,1>> <k, <8,1>>

=>

<k, <10, 2> >

Reduce:

=>

<k, 20>

combine 2:

<k, {<90,3>, <10,2>} >

26
27

More Related Content

PDF
Drupal Performance Census - BADCamp 2016
PDF
Java tuning on GNU/Linux for busy dev
PPT
Thomas+Niewel+ +Oracletuning
PPT
Tuning 17 march
PDF
Rhel Tuningand Optimizationfor Oracle V11
PDF
Performance optimization on Linux by Peter Toth
PDF
Improving Hadoop Cluster Performance via Linux Configuration
PDF
Improving Hadoop Performance via Linux
Drupal Performance Census - BADCamp 2016
Java tuning on GNU/Linux for busy dev
Thomas+Niewel+ +Oracletuning
Tuning 17 march
Rhel Tuningand Optimizationfor Oracle V11
Performance optimization on Linux by Peter Toth
Improving Hadoop Cluster Performance via Linux Configuration
Improving Hadoop Performance via Linux

Viewers also liked (11)

PDF
Linux tuning to improve PostgreSQL performance
PDF
Linux BPF Superpowers
PPTX
Broken Linux Performance Tools 2016
PDF
Linux Performance Analysis: New Tools and Old Secrets
PDF
Velocity 2015 linux perf tools
PDF
Powered by the Sun
PDF
Linux Systems Performance 2016
PDF
Linux Profiling at Netflix
PPT
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
PPTX
Hadoop configuration & performance tuning
PDF
BPF: Tracing and more
Linux tuning to improve PostgreSQL performance
Linux BPF Superpowers
Broken Linux Performance Tools 2016
Linux Performance Analysis: New Tools and Old Secrets
Velocity 2015 linux perf tools
Powered by the Sun
Linux Systems Performance 2016
Linux Profiling at Netflix
Advanced Hadoop Tuning and Optimization - Hadoop Consulting
Hadoop configuration & performance tuning
BPF: Tracing and more
Ad

More from Altoros (20)

PDF
Maturing with Kubernetes
PDF
Kubernetes Platform Readiness and Maturity Assessment
PDF
Journey Through Four Stages of Kubernetes Deployment Maturity
PPTX
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
PPTX
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
PPTX
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
PPTX
Crap. Your Big Data Kitchen Is Broken.
PDF
Containers and Kubernetes
PPTX
Distributed Ledger Technology for Over-the-Counter Trading
PPTX
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
PPTX
Deploying Kubernetes on GCP with Kubespray
PPTX
UAA for Kubernetes
PPTX
Troubleshooting .NET Applications on Cloud Foundry
PPTX
Continuous Integration and Deployment with Jenkins for PCF
PPTX
How to Never Leave Your Deployment Unattended
PPTX
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
PDF
Smart Baggage Tracking: End-to-End Sensor-Based Solution
PPTX
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
PPTX
AI as a Catalyst for IoT
PPTX
Over-Engineering: Causes, Symptoms, and Treatment
Maturing with Kubernetes
Kubernetes Platform Readiness and Maturity Assessment
Journey Through Four Stages of Kubernetes Deployment Maturity
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
Crap. Your Big Data Kitchen Is Broken.
Containers and Kubernetes
Distributed Ledger Technology for Over-the-Counter Trading
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
Deploying Kubernetes on GCP with Kubespray
UAA for Kubernetes
Troubleshooting .NET Applications on Cloud Foundry
Continuous Integration and Deployment with Jenkins for PCF
How to Never Leave Your Deployment Unattended
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
AI as a Catalyst for IoT
Over-Engineering: Causes, Symptoms, and Treatment
Ad

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Machine Learning_overview_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Weekly Chronicles - August'25-Week II
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Assigned Numbers - 2025 - Bluetooth® Document
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
A Presentation on Artificial Intelligence

Hadoop Distributions: Bottlenecks and Tuning

Editor's Notes

  • #9: вывод map, если в буфер не влазит то сброс на диск, потом merge-sort.в определенный момент 2х кратное превышение использования диска относительно вывода map
  • #10: данные гоняются по сети, нагрузка на io – disk read &amp; network
  • #11: вывод map, если в буфер не влазит то сброс на диск, потом merge-sort.в определенный момент 2х кратное превышение использования диска относительно вывода map
  • #12: Задачка: сколько записей и чтений на диск можно получить имея вывод X.идеально: X записали из map, X считали на этапе fetchсуровая реальность: write: X(spill) + X (merge-sort) + X (fetch/spill) = 3 Xread: X (merge-sort) + X (fetch) + X (toreducer) = 3 X
  • #13: Задачка: сколько записей и чтений на диск можно получить имея вывод X.идеально: X записали из map, X считали на этапе fetchсуровая реальность: write: X(spill) + X (merge-sort) + X (fetch/spill) = 3 Xread: X (merge-sort) + X (fetch) + X (toreducer) = 3 X
  • #14: увеличим количество машин в 2 раза, а заодно и в параметрах проставим в 2 раза больше map и reducemap и reduce =&gt; eachother =&gt; в 4 раза больше коннектов на получение данных =&gt; лимиты на обработку handlers, на самой датанодеВЫВОД: количество одновременно запущенных map/reduceинстансов должно определяться в первую очередь задачей, линейное масштабирование это сказка
  • #15: увеличим количество машин в 2 раза, а заодно и в параметрах проставим в 2 раза больше map и reducemap и reduce =&gt; eachother =&gt; в 4 раза больше коннектов на получение данных =&gt; лимиты на обработку handlers, на самой датанодеВЫВОД: количество одновременно запущенных map/reduceинстансов должно определяться в первую очередь задачей, линейное масштабирование это сказка
  • #19: 2) увеличим блок данных для map =&gt; выскочили за размеры буфера =&gt; лишний spill на диск =&gt; больше дискового io =&gt; все медленней. ВЫВОД: размер блока для обработки на вход map должен быть достаточно большим чтобы заполнить буфер, но не больше, иначе лишняя активность на диске
  • #20: 2) увеличим блок данных для map =&gt; выскочили за размеры буфера =&gt; лишний spill на диск =&gt; больше дискового io =&gt; все медленней. ВЫВОД: размер блока для обработки на вход map должен быть достаточно большим чтобы заполнить буфер, но не больше, иначе лишняя активность на диске
  • #21: 3) увеличим размер кеша на map/reduce =&gt; ограничения размера для буфера в jvm (больше 2х гб на массив не выделить)Тут уже ничего не поделать, нужно учитывать что у map/reduce функций есть свои лимиты и они легко достижимы
  • #22: компрессия =&gt; размен cpu на diskio =&gt; snappy, достаточно шустрое решение для потокового сжатия
  • #23: Combiner - не всегда возможно использовать в лоб (например мы считаем с помощью hive/pig) или у нас веселая функция
  • #25: incorrect
  • #26: incorrect
  • #27: правильное решение, но требует дополнительных манипуляций на всех уровнях: 1) меняем MapOutputFormat (в значении не просто число, а сумма свернутых чисел и количество чисел для получения текущей суммы)2) отдельная функция для Combine