SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
YARN- way to
share cluster
beyond
traditional
HADOOP
Omkar Joshi
YARN team
Hortonworks,Inc
About me..
›  Software

developer at Hortonworks Inc.,

Palo Alto
›  Contributor to Apache YARN and
MAPREDUCE projects
›  Worked on resource localization
(distributed cache), security
›  Currently working on resource manager
restart
Agenda
›  Classical

HADOOP MAPREDUCE
framework
›  YARN architecture
›  Resource

scheduling
›  Resource localization (Distributed cache)
›  Security
›  Future work
›  How

to write custom application on YARN
›  How to contribute to Open source
›  Q&A
Classical MAPREDUCE
Framework
Task
Tracker
Map

Map

Client
Task
Tracker

Job
Tracker
Map

Client

Client communication
MAPREDUCE Job Status

Map

Task
Tracker
Reduce
Drawbacks
›  Scalability
›  Limited

to ~4000 cluster nodes
›  Maximum ~40000 concurrent tasks
›  Synchronization in Job Tracker becomes
tricky
›  If

Job Tracker fails then everything fails.
Users will have to resubmit all the jobs.
›  Very poor cluster utilization
›  Fixed

map and reduce slots
Drawbacks contd..
›  Lacks

support to run and share cluster
resources with NON MAPREDUCE
applications.
›  Lacks support for wire compatibility.
›  All

clients need to have same version.
So what do we need?
›  Better
›  10K+

›  High

scalability
nodes, 10K+ jobs

availability
›  Better resource utilization
›  Support for multiple application
frameworks
›  Support for aggregating logs
›  Wire compatibility
›  Easy to up grade the cluster
Thinktank!!
›  Lets

separate the logic of managing
cluster resources from managing
application itself
›  All the applications including MAPREDUCE
will run in user land.
›  Better

isolation in secure cluster
›  More fault tolerant.
Architecture
›  Application
›  Job

submitted by user

›  Application

Master

›  Just

like job tracker
›  For MAPREDUCE it will manage all the map
and reduce tasks – progress, restart etc.
›  Container
›  Unit

of allocation(simple process)
›  Replacing fixed map and reduce slots
›  Eg. Container 1 = 2 GB, 4 CPU
Architecture contd...
›  Resource

Manager (RM)

›  Single

resource scheduler (Pluggable)
›  Stores App state (No need to resubmit
application if RM restarts)
›  Node
›  Per

Manager (NM)

machine ..think like task tracker
›  Manages container life cycle
›  Aggregating application logs
Architecture contd...
Node
Manager
Container

App
Master

Client

Resource
Manager

Node
Manager
Container

Container

Client
Map Reduce task status

Node
Manager

Node Status
Job Submission
Resource Request and app status

Container

App
Master
How job gets executed?
2.
8.

Client

App
Master
4.

7.

5.

1.

Resource
Manager
(RM)

Node
Manager(NM)
8.
5.

1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 

3.

Node
Manager(NM)

Client submits application. (ex. MAPREDUCE)
RM asks NM to start Application Master (AM)
Node manager starts application master inside a container (process).
Application Master first registers with RM and then keeps requesting
new resources. On the same AMRM protocol it also reports the
application status to RM.
When RM allocates a new container to AM it then goes to the
specified NM and requests it to launch container (eg. Map task).
Newly stated container then will follow the application logic and
keep reporting to AM its progress.
Once done AM informs RM that application is successful.
RM then informs NM about finished application and asks it to start
aggregating logs and cleaning up container specific files.

Container

Node
Manager(NM)

6.
Resource Scheduler
›  Pluggable

(Default is Capacity Scheduler)
›  Capacity Scheduler
›  Hierarchical
›  Can

›  User

queues

think of it as queues per Organization

limit (range of resources to use)
›  Elasticity
›  Black/White listing of resources.
›  Supports resource priorities
›  Security – queue level ACLs
›  Find more about Capacity Scheduler
Capacity Scheduler
A
(40%)

B
(60%)

A
(40%)

App1
(60%)

App3
(33%)

App2
(33%)

App1
(33%)

1.

2.

3.

App4
(40%)
App3
(20%)

App4
(40%)

App3
(30%)

App2
(20%)
App1
(20%)
4.

App2
(30%)
5.
Capacity Scheduler
Resource Localization
›  When

node manager launches container it
needs the executable to run
›  Resources (files) to be downloaded should be
specified as a part of Container launch
context
›  Resource Types
PUBLIC : - accessible to all
›  PRIVATE :- accessible to all containers of a single
user
›  APPLICATION :- only to single application
› 
Resource Localization contd..
›  Public

localizer downloads public
resources(owned by NM).
›  Private localizer downloads private and
application resources(owned by user).
›  Per user quota not supported yet.
›  LRU cache with configurable size.
›  As soon as it is localized it looses any
connection with remote location.
›  Public localizer supports parallel download
where as private localizer support limited
parallel download.
Resource Localization contd..
AM requests 2
resources while starting
container
R1 – Public
R2 - Application

HDFS

R1

AM

R2

Public
Localizer
R1 &
R2

R1

Public
cache
(NM)
NM

Private
Localizer
Private
cache( User)

Cache
User2

User1

App
cache

A2

A1

R2
Security
›  All

the users can not be trusted. Confidential
data /application’s data need to be
protected
›  Resource manager and Node managers are
started as “yarn(super)” users.
›  All applications and containers run as user
who submitted the job
›  Use LinuxContainerExecutor to launch user
process. (see container-executor.c)
›  Private localizers too run as app_user.
Security contd..
›  Kerberos(TGT)

while submitting the job.
›  AMRMToken :- for AM to talk to RM.
›  NMToken :- for AM to talk to NM for launching
new containers
›  ContainerToken :- way for RM to pass
container information from RM to NM via AM.
› 

Contains resource and user information

›  LocalizerToken

:- Used by private localizer
during resource localization
›  RMDelegationToken :- useful when kerberos
(TGT) is not available.
Security contd..
2.
8.

Client

App
Master
4.

7.

5.

1.

Resource
Manager
(RM)

Node
Manager(NM)
8.
5.

1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 

Kerberos (TGT)
NMToken
..
AMRMToken
NMToken
1.  As a part of launching container LocalizerToken
..
AMRMToken
NMToken

3.

Node
Manager(NM)

Container

Node
Manager(NM)

6.
Resource manager restart
›  Saves

application state.

›  Support

for Zookeeper and HDFS based
state store

›  Can

recover application from saved
state. No need to resubmit the
application
›  Today support only non work preserving
mode
›  Lays foundation for RM-HA
YARN paper received best
paper award!! J
YARN-paper
Future work
›  RM

restart

›  Non

work preserving mode ..almost done
›  Work preserving mode .. Needs more effort
›  RM

HA .. Just started
›  Task / container preemption..
›  Rolling upgrades
›  Support for long running services
Different applications already
running on YARN
›  Apache

Giraph(graph processing)
›  Spark (real time processing)
›  Apache Tez
›  MapReduce( MRV2)
›  Apache Hbase (HOYA)
›  Apache Helix( incubator project)
›  Apache Samza (incubator project)
›  Storm
Writing an application on
YARN
Take a look at Distributed shell
›  Write Application Master which once started will
› 

› 
› 
› 
› 

First register itself with RM on AMRMprotocol
Keep heartbeating and requesting resources via
“allocate”
Use container management protocol to launch
future containers on NM.
Once done notify RM via finishApplicationMaster

Always use AMRMClient and NMClient while
talking to RM / NM.
›  Use distributed cache wisely.
› 
Want to contribute to Open
source?
›  Follow

this post
›  Subscribe to apache user, yarn dev/issues
mailing list link
›  Track YARN-issues
›  Post your questions on user mailing list.
Try to be specific and add more information to
get better and quick replies
›  Try to be patient.
› 

›  Start

with simple tickets to get an idea about
the underlying component.
Thank You!!
checkout blog on YARN

Questions??

Contenu connexe

Tendances

Tendances (19)

Advanced spark training advanced spark internals and tuning reynold xin
Advanced spark training advanced spark internals and tuning reynold xinAdvanced spark training advanced spark internals and tuning reynold xin
Advanced spark training advanced spark internals and tuning reynold xin
 
Deploying Microservice on Docker
Deploying Microservice on DockerDeploying Microservice on Docker
Deploying Microservice on Docker
 
Spark Streaming Recipes and "Exactly Once" Semantics Revised
Spark Streaming Recipes and "Exactly Once" Semantics RevisedSpark Streaming Recipes and "Exactly Once" Semantics Revised
Spark Streaming Recipes and "Exactly Once" Semantics Revised
 
Spark on yarn
Spark on yarnSpark on yarn
Spark on yarn
 
Hadoop and Big Data Overview
Hadoop and Big Data OverviewHadoop and Big Data Overview
Hadoop and Big Data Overview
 
Harnessing the power of YARN with Apache Twill
Harnessing the power of YARN with Apache TwillHarnessing the power of YARN with Apache Twill
Harnessing the power of YARN with Apache Twill
 
Apache Spark and Oracle Stream Analytics
Apache Spark and Oracle Stream AnalyticsApache Spark and Oracle Stream Analytics
Apache Spark and Oracle Stream Analytics
 
Processing and retrieval of geotagged unmanned aerial system telemetry
Processing and retrieval of geotagged unmanned aerial system telemetry Processing and retrieval of geotagged unmanned aerial system telemetry
Processing and retrieval of geotagged unmanned aerial system telemetry
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark Introduction
 
Internals
InternalsInternals
Internals
 
Apache Spark Internals
Apache Spark InternalsApache Spark Internals
Apache Spark Internals
 
Learning spark ch10 - Spark Streaming
Learning spark ch10 - Spark StreamingLearning spark ch10 - Spark Streaming
Learning spark ch10 - Spark Streaming
 
Learning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your DataLearning spark ch05 - Loading and Saving Your Data
Learning spark ch05 - Loading and Saving Your Data
 
Building production spark streaming applications
Building production spark streaming applicationsBuilding production spark streaming applications
Building production spark streaming applications
 
A Deep Dive into Structured Streaming: Apache Spark Meetup at Bloomberg 2016
A Deep Dive into Structured Streaming:  Apache Spark Meetup at Bloomberg 2016 A Deep Dive into Structured Streaming:  Apache Spark Meetup at Bloomberg 2016
A Deep Dive into Structured Streaming: Apache Spark Meetup at Bloomberg 2016
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streaming
 
Bloomreach - BloomStore Compute Cloud Infrastructure
Bloomreach - BloomStore Compute Cloud Infrastructure Bloomreach - BloomStore Compute Cloud Infrastructure
Bloomreach - BloomStore Compute Cloud Infrastructure
 
Strata NYC 2015: What's new in Spark Streaming
Strata NYC 2015: What's new in Spark StreamingStrata NYC 2015: What's new in Spark Streaming
Strata NYC 2015: What's new in Spark Streaming
 
Hadoop institutes in Bangalore
Hadoop institutes in BangaloreHadoop institutes in Bangalore
Hadoop institutes in Bangalore
 

Similaire à YARN - way to share cluster BEYOND HADOOP

Developing YARN Applications - Integrating natively to YARN July 24 2014
Developing YARN Applications - Integrating natively to YARN July 24 2014Developing YARN Applications - Integrating natively to YARN July 24 2014
Developing YARN Applications - Integrating natively to YARN July 24 2014
Hortonworks
 

Similaire à YARN - way to share cluster BEYOND HADOOP (20)

Venturing into Hadoop Large Clusters
Venturing into Hadoop Large ClustersVenturing into Hadoop Large Clusters
Venturing into Hadoop Large Clusters
 
Venturing into Large Hadoop Clusters
Venturing into Large Hadoop ClustersVenturing into Large Hadoop Clusters
Venturing into Large Hadoop Clusters
 
Yarn
YarnYarn
Yarn
 
Introduction to Yarn
Introduction to YarnIntroduction to Yarn
Introduction to Yarn
 
Developing YARN Applications - Integrating natively to YARN July 24 2014
Developing YARN Applications - Integrating natively to YARN July 24 2014Developing YARN Applications - Integrating natively to YARN July 24 2014
Developing YARN Applications - Integrating natively to YARN July 24 2014
 
Introduction to yarn
Introduction to yarnIntroduction to yarn
Introduction to yarn
 
Venturing into Large Hadoop Clusters
Venturing into Large Hadoop ClustersVenturing into Large Hadoop Clusters
Venturing into Large Hadoop Clusters
 
Session 02 - Yarn Concepts
Session 02 - Yarn ConceptsSession 02 - Yarn Concepts
Session 02 - Yarn Concepts
 
Understanding yarn - Pune apex meetup jan 06 2016
Understanding yarn - Pune apex meetup jan 06 2016 Understanding yarn - Pune apex meetup jan 06 2016
Understanding yarn - Pune apex meetup jan 06 2016
 
[db tech showcase Tokyo 2014] C32: Hadoop最前線 - 開発の現場から by NTT 小沢健史
[db tech showcase Tokyo 2014] C32: Hadoop最前線 - 開発の現場から  by NTT 小沢健史[db tech showcase Tokyo 2014] C32: Hadoop最前線 - 開発の現場から  by NTT 小沢健史
[db tech showcase Tokyo 2014] C32: Hadoop最前線 - 開発の現場から by NTT 小沢健史
 
Introduction to Yarn
Introduction to YarnIntroduction to Yarn
Introduction to Yarn
 
Running Services on YARN
Running Services on YARNRunning Services on YARN
Running Services on YARN
 
Hadoop YARN
Hadoop YARNHadoop YARN
Hadoop YARN
 
Hadoop 2.0 YARN webinar
Hadoop 2.0 YARN webinar Hadoop 2.0 YARN webinar
Hadoop 2.0 YARN webinar
 
Towards SLA-based Scheduling on YARN Clusters
Towards SLA-based Scheduling on YARN ClustersTowards SLA-based Scheduling on YARN Clusters
Towards SLA-based Scheduling on YARN Clusters
 
Spark & Yarn better together 1.2
Spark & Yarn better together 1.2Spark & Yarn better together 1.2
Spark & Yarn better together 1.2
 
Hadoop 2.0 yarn arch training
Hadoop 2.0 yarn arch trainingHadoop 2.0 yarn arch training
Hadoop 2.0 yarn arch training
 
YARN (2).pptx
YARN (2).pptxYARN (2).pptx
YARN (2).pptx
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and Future
 
YARN - Next Generation Compute Platform fo Hadoop
YARN - Next Generation Compute Platform fo HadoopYARN - Next Generation Compute Platform fo Hadoop
YARN - Next Generation Compute Platform fo Hadoop
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

YARN - way to share cluster BEYOND HADOOP

  • 1. YARN- way to share cluster beyond traditional HADOOP Omkar Joshi YARN team Hortonworks,Inc
  • 2. About me.. ›  Software developer at Hortonworks Inc., Palo Alto ›  Contributor to Apache YARN and MAPREDUCE projects ›  Worked on resource localization (distributed cache), security ›  Currently working on resource manager restart
  • 3. Agenda ›  Classical HADOOP MAPREDUCE framework ›  YARN architecture ›  Resource scheduling ›  Resource localization (Distributed cache) ›  Security ›  Future work ›  How to write custom application on YARN ›  How to contribute to Open source ›  Q&A
  • 5. Drawbacks ›  Scalability ›  Limited to ~4000 cluster nodes ›  Maximum ~40000 concurrent tasks ›  Synchronization in Job Tracker becomes tricky ›  If Job Tracker fails then everything fails. Users will have to resubmit all the jobs. ›  Very poor cluster utilization ›  Fixed map and reduce slots
  • 6. Drawbacks contd.. ›  Lacks support to run and share cluster resources with NON MAPREDUCE applications. ›  Lacks support for wire compatibility. ›  All clients need to have same version.
  • 7. So what do we need? ›  Better ›  10K+ ›  High scalability nodes, 10K+ jobs availability ›  Better resource utilization ›  Support for multiple application frameworks ›  Support for aggregating logs ›  Wire compatibility ›  Easy to up grade the cluster
  • 8. Thinktank!! ›  Lets separate the logic of managing cluster resources from managing application itself ›  All the applications including MAPREDUCE will run in user land. ›  Better isolation in secure cluster ›  More fault tolerant.
  • 9. Architecture ›  Application ›  Job submitted by user ›  Application Master ›  Just like job tracker ›  For MAPREDUCE it will manage all the map and reduce tasks – progress, restart etc. ›  Container ›  Unit of allocation(simple process) ›  Replacing fixed map and reduce slots ›  Eg. Container 1 = 2 GB, 4 CPU
  • 10. Architecture contd... ›  Resource Manager (RM) ›  Single resource scheduler (Pluggable) ›  Stores App state (No need to resubmit application if RM restarts) ›  Node ›  Per Manager (NM) machine ..think like task tracker ›  Manages container life cycle ›  Aggregating application logs
  • 11. Architecture contd... Node Manager Container App Master Client Resource Manager Node Manager Container Container Client Map Reduce task status Node Manager Node Status Job Submission Resource Request and app status Container App Master
  • 12. How job gets executed? 2. 8. Client App Master 4. 7. 5. 1. Resource Manager (RM) Node Manager(NM) 8. 5. 1.  2.  3.  4.  5.  6.  7.  8.  3. Node Manager(NM) Client submits application. (ex. MAPREDUCE) RM asks NM to start Application Master (AM) Node manager starts application master inside a container (process). Application Master first registers with RM and then keeps requesting new resources. On the same AMRM protocol it also reports the application status to RM. When RM allocates a new container to AM it then goes to the specified NM and requests it to launch container (eg. Map task). Newly stated container then will follow the application logic and keep reporting to AM its progress. Once done AM informs RM that application is successful. RM then informs NM about finished application and asks it to start aggregating logs and cleaning up container specific files. Container Node Manager(NM) 6.
  • 13. Resource Scheduler ›  Pluggable (Default is Capacity Scheduler) ›  Capacity Scheduler ›  Hierarchical ›  Can ›  User queues think of it as queues per Organization limit (range of resources to use) ›  Elasticity ›  Black/White listing of resources. ›  Supports resource priorities ›  Security – queue level ACLs ›  Find more about Capacity Scheduler
  • 16. Resource Localization ›  When node manager launches container it needs the executable to run ›  Resources (files) to be downloaded should be specified as a part of Container launch context ›  Resource Types PUBLIC : - accessible to all ›  PRIVATE :- accessible to all containers of a single user ›  APPLICATION :- only to single application › 
  • 17. Resource Localization contd.. ›  Public localizer downloads public resources(owned by NM). ›  Private localizer downloads private and application resources(owned by user). ›  Per user quota not supported yet. ›  LRU cache with configurable size. ›  As soon as it is localized it looses any connection with remote location. ›  Public localizer supports parallel download where as private localizer support limited parallel download.
  • 18. Resource Localization contd.. AM requests 2 resources while starting container R1 – Public R2 - Application HDFS R1 AM R2 Public Localizer R1 & R2 R1 Public cache (NM) NM Private Localizer Private cache( User) Cache User2 User1 App cache A2 A1 R2
  • 19. Security ›  All the users can not be trusted. Confidential data /application’s data need to be protected ›  Resource manager and Node managers are started as “yarn(super)” users. ›  All applications and containers run as user who submitted the job ›  Use LinuxContainerExecutor to launch user process. (see container-executor.c) ›  Private localizers too run as app_user.
  • 20. Security contd.. ›  Kerberos(TGT) while submitting the job. ›  AMRMToken :- for AM to talk to RM. ›  NMToken :- for AM to talk to NM for launching new containers ›  ContainerToken :- way for RM to pass container information from RM to NM via AM. ›  Contains resource and user information ›  LocalizerToken :- Used by private localizer during resource localization ›  RMDelegationToken :- useful when kerberos (TGT) is not available.
  • 22. Resource manager restart ›  Saves application state. ›  Support for Zookeeper and HDFS based state store ›  Can recover application from saved state. No need to resubmit the application ›  Today support only non work preserving mode ›  Lays foundation for RM-HA
  • 23. YARN paper received best paper award!! J YARN-paper
  • 24. Future work ›  RM restart ›  Non work preserving mode ..almost done ›  Work preserving mode .. Needs more effort ›  RM HA .. Just started ›  Task / container preemption.. ›  Rolling upgrades ›  Support for long running services
  • 25. Different applications already running on YARN ›  Apache Giraph(graph processing) ›  Spark (real time processing) ›  Apache Tez ›  MapReduce( MRV2) ›  Apache Hbase (HOYA) ›  Apache Helix( incubator project) ›  Apache Samza (incubator project) ›  Storm
  • 26. Writing an application on YARN Take a look at Distributed shell ›  Write Application Master which once started will ›  ›  ›  ›  ›  First register itself with RM on AMRMprotocol Keep heartbeating and requesting resources via “allocate” Use container management protocol to launch future containers on NM. Once done notify RM via finishApplicationMaster Always use AMRMClient and NMClient while talking to RM / NM. ›  Use distributed cache wisely. › 
  • 27. Want to contribute to Open source? ›  Follow this post ›  Subscribe to apache user, yarn dev/issues mailing list link ›  Track YARN-issues ›  Post your questions on user mailing list. Try to be specific and add more information to get better and quick replies ›  Try to be patient. ›  ›  Start with simple tickets to get an idea about the underlying component.
  • 28. Thank You!! checkout blog on YARN Questions??