SlideShare a Scribd company logo
Distributed Resource Scheduling Frameworks
Is there a clear winner?
- NAGANARASIMHA G R & VARUN SAXENA
Who we are !
Naganarasimha G R
❖ System Architect @ Huawei
❖ Apache Hadoop Committer
❖ Working in Hadoop YARN team.
❖ Hobbies :
➢ Chess, Cycling
Varun Saxena
❖ Senior Technical Lead @ Huawei
❖ Apache Hadoop Committer
❖ Working in Hadoop YARN team.
❖ Hobbies :
➢ Photography
Swarm
Paragon
Nomad
YARN
IBM HPC
Borg
Omega
Kubernetes
Apollo
Hawk
Mercury
Tarcil
Mesos(Marathon)
Cloud Foundry (Diego)
Sparrow
Agenda
❑Aspects of Distributed Scheduling Framework
❑Architectural evolution of resource scheduling
❑Overview of prominent open source schedulers
❑Functional comparison between prominent schedulers
❑Conclusion
Aspects of Distributed Scheduling Framework
❏ Ability to support varied resources types and ensuring isolation
❏ Support of multiple resource type (CPU, Mem, Disk, Network, GPU etc...)
❏ Pluggable resource type
❏ Hierarchical/nested resource types
❏ Macro(logical partition) and Micro(cgroups) isolation
❏ labelling of nodes
❏ Ability to orchestrate Containers
❏ Support for multiple container types(Docker, Rocket )
❏ Manage life cycle of Containers
❏ Support repository Management of Container Images
Aspects of Distributed Scheduling Framework
❏ Ability to support wide variety of applications
➢ Big Data (stateful, DAG, ad hoc, batch)
➢ Long running services (stateless, stateful apps)
➢ Support of DevOps and MicroServices Model
❏ Networking support
➢ Network proxy/wiring of containers
➢ DNS support
➢ Service discoverability
❏ Disk Volumes (Persistence storage)
➢ Ability to mounting of multiple Types of Persistent volumes
● local Block Storage (SSD/SATA)
● Raid based persistent disks (SSD/SATA).
● Software based storages : NFS
● Elastic storage for Files/ Objects ( GlusterFS , AWS)
➢ Dynamic mounting
Aspects of Distributed Scheduling Framework
❏ Scalability and Reliability
➢ Daemon Services reliability and scalability
➢ Application reliability.
➢ Application recoverability
➢ Integrated Load Balancer
❏ Security
➢ Namespaces
➢ RBAC
➢ Pluggable authentication for the enterprise. LDAP integrations ...
➢ enforce secure communication in all layers, App - Service , Clients - Service, Clients - Apps
❏ Others
➢ Automatable : Deploy and Build
➢ DevOps Collaboration
Agenda
❑Aspects of Distributed Scheduling Framework
❑Architectural evolution of resource scheduling
❑Overview of prominent open source schedulers
❑Functional comparison between prominent schedulers
❑Conclusion
Architectural evolution of resource scheduling
Monolithic Scheduling ❏ Many of the cluster schedulers are Monolithic. Enterprise- IBM
HPC, Open source - Kubernetes, JobTracker in Hadoop v1
❏ A single scheduler process runs on one machine and assigns
tasks to machines and it alone handles all different kinds of
workloads. All tasks run through the same scheduling logic .
❏ Pro’s
➢ Sophisticated optimizations to avoid negative interference
between workloads competing for resources can be
achieved using ML tech. Ex- Yarn, Paragon and Quasar
❏ Con’s
➢ Support different applications with different needs,
Increases the complexity of its logic and implementation,
which eventually leads to scheduling latency
➢ Queueing effects (e.g., head-of-line blocking) and backlog
of tasks unless the scheduler is carefully designed.
➢ Theoretically might not be scalable for very large cluster.
Ex. Hadoop MRV1
Architectural evolution of resource scheduling
Two Level Scheduling ❏ Separates the concerns of resource allocation and App’s task
placement.
❏ Task placement logic to be tailored towards specific applications, but
also maintains the ability to share the cluster between them.
❏ Cluster RM can offer the resources to app level scheduler (pioneered
by Mesos) or application-level schedulers to request resources.
❏ Pro’s
➢ Easy to carve out a dynamic partition out of cluster and get the
application executed in isolation
➢ A very flexible approach that allows for custom, workload-specific
scheduling policies.
❏ Con’s
➢ Information hiding: Cluster RM will not be aware of the App’s task
and will not be able(/complicates) to optimize the resource usage
(preemption)
➢ Interface become complex in request based model.
➢ Resource can get underutlized.
Architectural evolution of resource scheduling
Shared State Scheduling
❏ Multiple replicas of cluster state are independently updated by application-level schedulers.
❏ Task placement logic to be tailored towards specific applications, but also maintains the
ability to share the cluster between them.
❏ Local scheduler issues an optimistically concurrent transaction to update local changes to
the shared cluster state.
❏ In the event of transaction failure(another scheduler may have made a conflicting change)
local scheduler retries.
❏ Prominent examples : google’s omega, Microsoft’s Apollo, Hashicorp’s Nomad, of late
Kubernetes something similar.
❏ In general shared cluster state is in single location but it can be designed to achieve
"logical" shared-state materialising the full cluster state anywhere. ex Apollo
❏ Pro’s
➢ Partially distributed and hence faster.
❏ Con’s
➢ Scheduler works with stale information and may experience degraded scheduler
performance under high contention.
➢ Need to deal with lot of split brain scenarios to maintain the state. (although this can
apply to other architectures as well)
Architectural evolution of resource scheduling
Fully Distributed Scheduling
❏ Based on hypothesis that the tasks run on clusters are becoming ever shorter in duration
and multiple shorter jobs even large batch jobs can be split into small tasks that finish
quickly.
❏ Workflow :
➢ Multiple Independent schedulers servicing the incoming workload
➢ Each of these schedulers works with its local or partial (subset) of the cluster. No
cluster state to be maintained by schedulers.
➢ Based on a simple "slot" concept that chops each machine into n uniform slots, and
places up to n parallel tasks.
➢ Worker-side queues with configurable policies (e.g., FIFO in Sparrow),
➢ Scheduler can choose at which machine to enqueue a task which has available slots
satisfying the request.
➢ If not available locally then will try to get the slot for other scheduler.
❏ Earliest implementers was sparrow.
❏ Federated clusters can be visualized similar to Distributed Scheduling albeit if there is no
central state maintained.
❏ Pro’s
➢ Higher decision throughput supported by the scheduler.
➢ Spread the load across multiple schedulers.
❏ Con’s
➢ Difficult to enforce global invariants (fairness policies, strict priority precedence)
➢ Cannot support application-specific scheduling policies. For example Avoiding
interference between tasks (as its queued),, becomes tricky.
Architectural evolution of resource scheduling
❏ Considered mostly academic.
❏ Combines monolithic and Distributed scheduling.
❏ Two scheduling paths:
➢ A distributed one for part of the workload (e.g., very short tasks, or low-priority batch
workloads).
➢ Centralized one for the rest.
❏ Priority will be given to the centralized scheduler in the event of the conflict.
❏ Incorporated in Tarcil, Mercury, and Hawk.
❏ Is also available as part of YARN, More in next slides.
Hybrid architectures
Agenda
❑Aspects of Distributed Scheduling Framework
❑Architectural evolution of resource scheduling
❑Overview of prominent open source schedulers
❑Functional comparison between prominent schedulers
❑Conclusion
Overview of Kubernetes
Kubernetes Overview
❏ Basic abstraction is POD : Co-locating helper processes,
❏ Everything App/task is a Container
❏ Supports multiple container types: Rocket, Docker
❏ Mounting storage systems and dynamic mount of volumes
❏ Simple interface for application Developer : YAML
❏ Multiple templates /views for the end application
❏ POD
❏ Deployment
❏ ReplicationSet
❏ DaemonServices
❏ Supports Multiple Schedulers and let's application to choose containers
❏ Default scheduler tries to optimize scheduling by bin packing. And scheduling
tries to pick up the node will less load
❏ Supports Horizontal POD scaling for a running app
Kubernetes YAML file
Overview of Kubernetes
Kubernetes Architecture
1. Master – Cluster controlling unit
2. etcd – HA Key/value store
3. API Server - Observing the state of the cluster
4. Controller Manager – runs multiple controllers
5. Scheduler Server – assigns workloads to nodes
6. Kubelet - server/slave node that runs pods
7. Proxy Service – host subnetting to external parties
8. Pods – One or more containers
9. Services – load balancer for containers
10. Replication Controller – For horizontally-s
Overview of Swarm
Swarm Scheduling Overview
❏ Main job of scheduler is to decide which node to use
when running docker container/service.
❏ Swarm Filters (Labels and Constraints)
■ Label : attribute of the node
E.g. environment = test, storage = ssd
■ Constraints
Restrictions applied by Operator while creating
a service.
E.g. docker service create --constraint
node.labels.storage==ssd …
■ Affinity and Anti Affinity
● Affinity: two containers should be together
● Anti Affinity : two containers should not be
together
❏ Strategy : policy to pick the nodes
■ Spread strategy : schedule tasks on the least
loaded nodes, provided they meet the
constraints and resource requirements.
■ Bin pack
■ Random strategy
❏
Overview of Mesos
❏ Master – Enable sharing of resource
❏ Slave – Execute the task in it
❏ Cluster – a group of machines
❏ ZooKeeper – distributed
synchronization/configuration
❏ Framework – scheduler + executor
❏ Scheduler – Accept resources
❏ Executor – Run the Framework task
❏ Task – a job to run
❏ Containerizer – run & monitor executors
Mesos Architecture
Overview of Mesos
❏ Works on Offer based model.
❏ Mesos has two levels of scheduling;
● one intra-Frameworks level
● Inter-Framework level application
specific.
❏ Supports Pools’ and ACLs’
Mesos Scheduling Overview
Overview of Mesos
❏ Dev -OPS : VAMP
❏ Long Running services :
● Marathon : Mesosphere’s solution which automatically handles hardware or software failures and
ensures that an app is “always on”.
● Aurora : Apache’s project.
● Singularity : for one off tasks and scheduled jobs
❏ Bigdata processing:
● Hadoop Running Hadoop on Mesos distributes MapReduce jobs efficiently across an entire cluster.
● Spark is a fast and general-purpose cluster computing system which makes parallel jobs easy to
write.
● Storm is a distributed realtime computation system.
❏ Batch Scheduling :
● Chronos is a distributed job scheduler that supports complex job topologies. It can be used as a
more fault-tolerant replacement for Cron.
❏ Data Storage : Alluxio, Cassandra, Ceph
Mesos Frameworks :
Overview of Apollo
Microsoft’s Research paper on
scalable and coordinated scheduler
for cloud scale computing
incorporating following features
■ Distributed and coordinated
architecture
■ Estimation-based
scheduling
■ Conflict resolution
■ Opportunistic scheduling
Overview of YARN
YARN Architecture overview :
❏ Core philosophy
➢ Allocate resources very close to the data.
● supports each RR to specify locality information
● Supports delayed scheduling to ensure locality of
data
➢ Containers are primarily considered as
non-preemptable.
● During all kind of failovers priority is given to
ensure that running containers continue to finish
● Even during preemption we try to provide
opportunity(time window) for the app to finish or
checkpoint the containers state.
Overview of YARN
YARN Key features : Distributed Scheduling : (YARN-2877)
❏ Distributed + Centralized = achieves faster scheduling for
small tasks without obstructing the application/queue/tenant
related guarantees.
❏ Each NM is considered to have resource slots and resource
requests are queued up.
❏ NM proxies the AM-RM communication and decorates the
request and sends to RM.
❏ Distributed scheduling co-ordinator of RM sends and
appends cluster stats information (all NM queued up
resource requests information) to the AM-RM
communication response (allocate call).
❏ NM on receiving the stats can schedule the opportunistic
containers requested by the app based on policy
❏ Pluggable policy to pick the node effectively
❏ At NM priority is given to start the containers allocated by RM
and if free picks from the opportunistic containers queue
Overview of YARN
YARN Key features : Federated Scheduling : (YARN-2915)
❏ A large YARN cluster is broken up into multiple small
subclusters with a few thousand nodes each. Sub clusters
can be added or removed.
❏ Router Service
● Exposes ApplicationClientProtocol. Transparently hides
existence of multiple RMs’ in subclusters.
● Application is submitted to Router.
● Stateless, scalable service.
❏ AM-RM Proxy Service
● Implements ApplicationMasterProtocol. Acts as a
proxy to YARN RM.
● Allows application to span across multiple sub-clusters
● Runs in NodeManager.
❏ Policy and State store
● Zookeeper/DB.
Overview of YARN
YARN Key features : YARN supports Docker ! (YARN-3611)
❏ Limited support in the released version(2.8) but 2.9 more features are expected to come
❏ supports cgroups resource isolation for docker containers.
❏ Supports multiple networks while launching but port Mapping to host port is yet to be done.
❏ Supports individual task/request to select to be run in docker container environment.
❏ By design can support other Container runtime environments but current support is only for docker
❏ Does not support launching of docker containers in Secured environment yet.
❏ Does not support mounting of external volumes yet.
Overview of YARN
YARN Key features : Rich Placement Constraints in YARN (YARN-6592)
{
Priority: 1,
Sizing: {Resource: <8G, 4vcores>, NumAllocations: 1 },
AllocationTags: ["hbase-rs"],
PlacementConstraintExpression: {
AND: [ // Anti-affinity between RegionServers
{Target: allocation-tag NOT_IN “hbase-rs”, Scope: host },
// Allow at most 2 RegionServers per failure-domain/rack
{ MaxCardinality: 2, Scope: failure_domain }
]
}
},
➢ AllocationRequestID
➢ Priority
➢ AllocationTags​: tags to be associated with all allocations
returned by this SchedulingRequest
➢ ResourceSizing
○ Number of allocations
○ Size of each allocation
➢ Placement Constraint Expression
Scheduling Request Sample scheduling Request
Overview of YARN
YARN Key features : Simplified API layer for services (YARN-4793)
❏ Create and manage the lifecycle of YARN
services by new services API layer backed by
REST interfaces.
❏ Supports for both simple single component and
complex multi-component assemblies
❏ Other important complementing features :
➢ Resource-profile management
(YARN-3926),
➢ service-discovery (YARN-913/YARN-4757).
➢ REST APIs for application-submission and
management (YARN-1695).
➢ Support of System(daemon) services.
YARN-1593
POST URL - http://host.mycompany.com:8088/services/v1/applications
GET URL - http://host.mycompany.com:8088/services/v1/applications/hello-world
Agenda
❑Aspects of Distributed Scheduling Framework
❑Architectural evolution of resource scheduling
❑Overview of prominent open source schedulers
❑Functional comparison between prominent schedulers
❑Conclusion
Functional comparison between prominent schedulers
Feature / Framework K8s Mesos YARN Swarm
Architecture Monolithic ( shared state
on support of multi
scheduler)
two-level monolithic/
two-level / hybrid
monolithic
Resource granularity Multi dimensional Multi dimensional RAM/CPU (Multi
dimensional after resource
profile)
Multi dimensional
Multiple Scheduler support on going Yes - frameworks can
further schedule
Partial (fair / capacity) not
at the same time but apps
can have their logic.
No
Priority preemption Yes Ongoing Yes (further optimizations
are on going YARN-2009)
No
Over subscription Yes Yes Ongoing (YARN-1011) No
Resource Estimation No No Solutions being devloped
as external components
but supports reservation
queues
No
Resource Isolation Partial (but pluggable) Partial (but pluggable) Partial (but pluggable) No
Functional comparison between prominent schedulers
Feature / Framework K8s Mesos YARN
Support for Coarse grained
isolation (partitions / pools)
N (Namespaces : logical
partitions)
N (supports logical pools) Supports partitions
Support multiple Container
runtimes
Yes Predominantly dockers Partial Dockers (will be
available in 2.9) but pluggable
interface
Support Variety of applications Yes but stateful application
support is on going.
Supports concept of
PODS,Daemon services ..
Framework level support
Support pods aka task groups.
Ongoing support for simplifying
services.
Pod concept not supported
Security Supports pluggable
authentication and SSL.
Supports Kerberos
Supports CRAM-MD5
authentication using Cyrus
SASL library. Pluggable
authentication work is ongoing
Supports SSL, Kerberos
Disk Volumes provisioning Yes Yes No
Functional comparison between prominent schedulers
Feature / Framework K8s Mesos YARN
Disk Volumes provisioning Yes Yes No
Scalability and Reliability SPOC as there is single
process which holds the
whole state, And possible
load on ETCD as cluster
size increases
Good as the state is
distributed across multiple
frameworks
Good, separation between
app and resource data
Suitable for Cloud Yes Yes Fairly
Suitable for standalone
BigData
Ongoing Yes Yes
Agenda
❑Aspects of Distributed Scheduling Framework
❑Architectural evolution of resource scheduling
❑Overview of prominent open source schedulers
❑Functional comparison between prominent schedulers
❑Conclusion
Conclusion
❏ All schedulers are in fact trying to solve the same set of problems, duplicating
effort building various shapes and sizes of resource managers, container managers
or long-running service schedulers.
❏ It will lead to a fragmented experience with different terminology and concepts for
very similar things, different interfaces or APIs, different troubleshooting
procedures , documentation and so on, which will only be driving up operations
costs.
References
❏ YARN - https://issues.apache.org/jira/browse/YARN/ & http://hadoop.apache.org/docs/current/
❏ Swarm scheduling - https://www.slideshare.net/AtharvaChauthaiwale/docker-swarm-scheduling-in-112
❏ Kubernetes Design -
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture.md
❏ Mesos Architecture - http://mesos.apache.org/documentation/latest/architecture/
❏ Kubernetes Scheduler - http://stackoverflow.com/questions/28857993/how-does-kubernetes-scheduler-work
❏ Mesos Scheduler -
http://cloudarchitectmusings.com/2015/04/08/playing-traffic-cop-resource-allocation-in-apache-mesos/
❏ Kubernetes – Marathon -
https://www.quora.com/What-is-the-difference-between-Googles-Kubernetes-and-Mesospheres-Marathon
❏ Scheduler architectures :
https://www.cl.cam.ac.uk/research/srg/netos/camsas/blog/2016-03-09-scheduler-architectures.html#fn3l
❏ CONTAINER ORCHESTRATION COMPARISON GUIDE -
https://apprenda.com/thank-you/gaw-container-orchestration-comparison-guide-k/
❏ Future of Resource Manager by IBM -
https://www.ibm.com/developerworks/community/blogs/1ba56fe3-efad-432f-a1ab-58ba3910b073/entry/tho
ughts_on_future_of_resource_managers_and_schedulers_in_the_cloud?lang=en
and many more ...
Thank You !

More Related Content

What's hot

An Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop YarnAn Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop Yarn
Mike Frampton
 
Taming YARN @ Hadoop Conference Japan 2014
Taming YARN @ Hadoop Conference Japan 2014Taming YARN @ Hadoop Conference Japan 2014
Taming YARN @ Hadoop Conference Japan 2014
Tsuyoshi OZAWA
 
Resource scheduling
Resource schedulingResource scheduling
Resource scheduling
Ghazal Tashakor
 
Hadoop 2.0, MRv2 and YARN - Module 9
Hadoop 2.0, MRv2 and YARN - Module 9Hadoop 2.0, MRv2 and YARN - Module 9
Hadoop 2.0, MRv2 and YARN - Module 9
Rohit Agrawal
 
Introduction to YARN Apps
Introduction to YARN AppsIntroduction to YARN Apps
Introduction to YARN Apps
Cloudera, Inc.
 
Spark & Yarn better together 1.2
Spark & Yarn better together 1.2Spark & Yarn better together 1.2
Spark & Yarn better together 1.2
Jianfeng Zhang
 
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
Sumeet Singh
 
Hadoop fault tolerance
Hadoop  fault toleranceHadoop  fault tolerance
Hadoop fault tolerance
Pallav Jha
 
writing Hadoop Map Reduce programs
writing Hadoop Map Reduce programswriting Hadoop Map Reduce programs
writing Hadoop Map Reduce programs
jani shaik
 
Extending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event ProcessingExtending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event Processing
Oh Chan Kwon
 
Hadoop 2
Hadoop 2Hadoop 2
Hadoop 2
EasyMedico.com
 
Hadoop data management
Hadoop data managementHadoop data management
Hadoop data management
Subhas Kumar Ghosh
 
Apache Hadoop YARN - The Future of Data Processing with Hadoop
Apache Hadoop YARN - The Future of Data Processing with HadoopApache Hadoop YARN - The Future of Data Processing with Hadoop
Apache Hadoop YARN - The Future of Data Processing with Hadoop
Hortonworks
 
Strata + Hadoop World 2012: Knitting Boar
Strata + Hadoop World 2012: Knitting BoarStrata + Hadoop World 2012: Knitting Boar
Strata + Hadoop World 2012: Knitting Boar
Cloudera, Inc.
 
Fault tolerant mechanisms in Big Data
Fault tolerant mechanisms in Big DataFault tolerant mechanisms in Big Data
Fault tolerant mechanisms in Big Data
Karan Pardeshi
 
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
DataStax
 
Cassandra Summit 2014: Monitor Everything!
Cassandra Summit 2014: Monitor Everything!Cassandra Summit 2014: Monitor Everything!
Cassandra Summit 2014: Monitor Everything!
DataStax Academy
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised Submission
Rick Warren
 
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
Running Dataproc At Scale in production - Searce Talk at GDG DelhiRunning Dataproc At Scale in production - Searce Talk at GDG Delhi
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
Searce Inc
 
Challenges & Capabilites in Managing a MapR Cluster by David Tucker
Challenges & Capabilites in Managing a MapR Cluster by David TuckerChallenges & Capabilites in Managing a MapR Cluster by David Tucker
Challenges & Capabilites in Managing a MapR Cluster by David Tucker
MapR Technologies
 

What's hot (20)

An Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop YarnAn Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop Yarn
 
Taming YARN @ Hadoop Conference Japan 2014
Taming YARN @ Hadoop Conference Japan 2014Taming YARN @ Hadoop Conference Japan 2014
Taming YARN @ Hadoop Conference Japan 2014
 
Resource scheduling
Resource schedulingResource scheduling
Resource scheduling
 
Hadoop 2.0, MRv2 and YARN - Module 9
Hadoop 2.0, MRv2 and YARN - Module 9Hadoop 2.0, MRv2 and YARN - Module 9
Hadoop 2.0, MRv2 and YARN - Module 9
 
Introduction to YARN Apps
Introduction to YARN AppsIntroduction to YARN Apps
Introduction to YARN Apps
 
Spark & Yarn better together 1.2
Spark & Yarn better together 1.2Spark & Yarn better together 1.2
Spark & Yarn better together 1.2
 
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
Hadoop Summit Amsterdam 2014: Capacity Planning In Multi-tenant Hadoop Deploy...
 
Hadoop fault tolerance
Hadoop  fault toleranceHadoop  fault tolerance
Hadoop fault tolerance
 
writing Hadoop Map Reduce programs
writing Hadoop Map Reduce programswriting Hadoop Map Reduce programs
writing Hadoop Map Reduce programs
 
Extending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event ProcessingExtending Spark Streaming to Support Complex Event Processing
Extending Spark Streaming to Support Complex Event Processing
 
Hadoop 2
Hadoop 2Hadoop 2
Hadoop 2
 
Hadoop data management
Hadoop data managementHadoop data management
Hadoop data management
 
Apache Hadoop YARN - The Future of Data Processing with Hadoop
Apache Hadoop YARN - The Future of Data Processing with HadoopApache Hadoop YARN - The Future of Data Processing with Hadoop
Apache Hadoop YARN - The Future of Data Processing with Hadoop
 
Strata + Hadoop World 2012: Knitting Boar
Strata + Hadoop World 2012: Knitting BoarStrata + Hadoop World 2012: Knitting Boar
Strata + Hadoop World 2012: Knitting Boar
 
Fault tolerant mechanisms in Big Data
Fault tolerant mechanisms in Big DataFault tolerant mechanisms in Big Data
Fault tolerant mechanisms in Big Data
 
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
Micro-batching: High-performance Writes (Adam Zegelin, Instaclustr) | Cassand...
 
Cassandra Summit 2014: Monitor Everything!
Cassandra Summit 2014: Monitor Everything!Cassandra Summit 2014: Monitor Everything!
Cassandra Summit 2014: Monitor Everything!
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised Submission
 
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
Running Dataproc At Scale in production - Searce Talk at GDG DelhiRunning Dataproc At Scale in production - Searce Talk at GDG Delhi
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
 
Challenges & Capabilites in Managing a MapR Cluster by David Tucker
Challenges & Capabilites in Managing a MapR Cluster by David TuckerChallenges & Capabilites in Managing a MapR Cluster by David Tucker
Challenges & Capabilites in Managing a MapR Cluster by David Tucker
 

Similar to Distributed Resource Scheduling Frameworks, Is there a clear Winner ?

Distributed Resource Scheduling Frameworks
Distributed Resource Scheduling FrameworksDistributed Resource Scheduling Frameworks
Distributed Resource Scheduling Frameworks
VARUN SAXENA
 
Mesos - A Platform for Fine-Grained Resource Sharing in the Data Center
Mesos - A Platform for Fine-Grained Resource Sharing in the Data CenterMesos - A Platform for Fine-Grained Resource Sharing in the Data Center
Mesos - A Platform for Fine-Grained Resource Sharing in the Data Center
Ankur Chauhan
 
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Anant Corporation
 
Introduction to mesos
Introduction to mesosIntroduction to mesos
Introduction to mesos
Omid Vahdaty
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
Jignesh Shah
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
DoKC
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and Integration
Alex Baretto
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaSOpenstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
Sadique Puthen
 
Cluster schedulers
Cluster schedulersCluster schedulers
Cluster schedulers
Anton Zadorozhniy
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
Intro to cluster scheduler for Linux containers
Intro to cluster scheduler for Linux containersIntro to cluster scheduler for Linux containers
Intro to cluster scheduler for Linux containers
Kumar Gaurav
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
WSO2
 
Java in containers
Java in containersJava in containers
Java in containers
Martin Baez
 
Introduction to Apache Airflow
Introduction to Apache AirflowIntroduction to Apache Airflow
Introduction to Apache Airflow
mutt_data
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
Anton Kirillov
 
The journey to container adoption in enterprise
The journey to container adoption in enterpriseThe journey to container adoption in enterprise
The journey to container adoption in enterprise
Igor Moochnick
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech day
Arthur Berezin
 
Container Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup Hamburg
Timo Derstappen
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
IndicThreads
 

Similar to Distributed Resource Scheduling Frameworks, Is there a clear Winner ? (20)

Distributed Resource Scheduling Frameworks
Distributed Resource Scheduling FrameworksDistributed Resource Scheduling Frameworks
Distributed Resource Scheduling Frameworks
 
Mesos - A Platform for Fine-Grained Resource Sharing in the Data Center
Mesos - A Platform for Fine-Grained Resource Sharing in the Data CenterMesos - A Platform for Fine-Grained Resource Sharing in the Data Center
Mesos - A Platform for Fine-Grained Resource Sharing in the Data Center
 
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
 
Introduction to mesos
Introduction to mesosIntroduction to mesos
Introduction to mesos
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
 
Apache Mesos Overview and Integration
Apache Mesos Overview and IntegrationApache Mesos Overview and Integration
Apache Mesos Overview and Integration
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
 
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaSOpenstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
Openstack on Fedora, Fedora on Openstack: An Introduction to cloud IaaS
 
Cluster schedulers
Cluster schedulersCluster schedulers
Cluster schedulers
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris MeetupContainer Attached Storage with OpenEBS - CNCF Paris Meetup
Container Attached Storage with OpenEBS - CNCF Paris Meetup
 
Intro to cluster scheduler for Linux containers
Intro to cluster scheduler for Linux containersIntro to cluster scheduler for Linux containers
Intro to cluster scheduler for Linux containers
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
 
Java in containers
Java in containersJava in containers
Java in containers
 
Introduction to Apache Airflow
Introduction to Apache AirflowIntroduction to Apache Airflow
Introduction to Apache Airflow
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
 
The journey to container adoption in enterprise
The journey to container adoption in enterpriseThe journey to container adoption in enterprise
The journey to container adoption in enterprise
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech day
 
Container Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup Hamburg
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
 

Recently uploaded

一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
ka3y2ukz
 
Intel-Centrino-Mobile-Technology-guidelines
Intel-Centrino-Mobile-Technology-guidelinesIntel-Centrino-Mobile-Technology-guidelines
Intel-Centrino-Mobile-Technology-guidelines
EricHo305923
 
Value based approach to heritae conservation -.docx
Value based approach to heritae conservation -.docxValue based approach to heritae conservation -.docx
Value based approach to heritae conservation -.docx
JIT KUMAR GUPTA
 
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
kmzsy4kn
 
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
qbydc
 
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
bz42w9z0
 
Plastic Molding Infographic - RPWORLD.pdf
Plastic Molding Infographic - RPWORLD.pdfPlastic Molding Infographic - RPWORLD.pdf
Plastic Molding Infographic - RPWORLD.pdf
RPWORLD Manufacturing
 
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
lyurzi7r
 
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
ynrtjotp
 
My Fashion PPT is my presentation on fashion and Trendss
My Fashion PPT is my presentation on fashion and TrendssMy Fashion PPT is my presentation on fashion and Trendss
My Fashion PPT is my presentation on fashion and Trendss
MedhaRana1
 
一比一原版英国伦敦大学毕业证(London学位证)如何办理
一比一原版英国伦敦大学毕业证(London学位证)如何办理一比一原版英国伦敦大学毕业证(London学位证)如何办理
一比一原版英国伦敦大学毕业证(London学位证)如何办理
k4krdgxx
 
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
k4krdgxx
 
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
zv943dhb
 
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
f22b6g9c
 
The Power to Battle! Slideshow by: Kal-el
The Power to Battle! Slideshow by: Kal-elThe Power to Battle! Slideshow by: Kal-el
The Power to Battle! Slideshow by: Kal-el
Kal-el Shows
 
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
10h6bbc4
 
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
aprhf21y
 
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
ubogumo
 
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
bljeremy734
 
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
aonx8o5f
 

Recently uploaded (20)

一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
一比一原版(Brunel毕业证)英国布鲁内尔大学毕业证如何办理
 
Intel-Centrino-Mobile-Technology-guidelines
Intel-Centrino-Mobile-Technology-guidelinesIntel-Centrino-Mobile-Technology-guidelines
Intel-Centrino-Mobile-Technology-guidelines
 
Value based approach to heritae conservation -.docx
Value based approach to heritae conservation -.docxValue based approach to heritae conservation -.docx
Value based approach to heritae conservation -.docx
 
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
一比一原版(KPU毕业证)加拿大昆特兰理工大学毕业证如何办理
 
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
一比一原版(ucb毕业证书)英国伯明翰大学学院毕业证如何办理
 
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
一比一原版澳洲科廷科技大学毕业证(Curtin毕业证)如何办理
 
Plastic Molding Infographic - RPWORLD.pdf
Plastic Molding Infographic - RPWORLD.pdfPlastic Molding Infographic - RPWORLD.pdf
Plastic Molding Infographic - RPWORLD.pdf
 
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
一比一原版美国俄勒冈大学毕业证(UO,UofO学位证)如何办理
 
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
一比一原版(爱大毕业证)美国爱荷华大学毕业证如何办理
 
My Fashion PPT is my presentation on fashion and Trendss
My Fashion PPT is my presentation on fashion and TrendssMy Fashion PPT is my presentation on fashion and Trendss
My Fashion PPT is my presentation on fashion and Trendss
 
一比一原版英国伦敦大学毕业证(London学位证)如何办理
一比一原版英国伦敦大学毕业证(London学位证)如何办理一比一原版英国伦敦大学毕业证(London学位证)如何办理
一比一原版英国伦敦大学毕业证(London学位证)如何办理
 
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
一比一原版英国伦敦政治经济学院毕业证(LSE学位证)如何办理
 
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
一比一原版(UCB毕业证)英国伯明翰大学学院毕业证如何办理
 
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
一比一原版(UoN毕业证书)纽卡斯尔大学毕业证如何办理
 
The Power to Battle! Slideshow by: Kal-el
The Power to Battle! Slideshow by: Kal-elThe Power to Battle! Slideshow by: Kal-el
The Power to Battle! Slideshow by: Kal-el
 
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
一比一原版澳洲莫纳什大学毕业证(Monash学位证)如何办理
 
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
一比一原版(brunel毕业证书)布鲁内尔大学毕业证如何办理
 
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
一比一原版(lu毕业证书)英国拉夫堡大学毕业证如何办理
 
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
欧洲杯足彩-欧洲杯足彩比赛投注-欧洲杯足彩比赛投注官网|【​网址​🎉ac10.net🎉​】
 
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
一比一原版(Hull毕业证)英国哈珀亚当斯大学毕业证如何办理
 

Distributed Resource Scheduling Frameworks, Is there a clear Winner ?

  • 1. Distributed Resource Scheduling Frameworks Is there a clear winner? - NAGANARASIMHA G R & VARUN SAXENA
  • 2. Who we are ! Naganarasimha G R ❖ System Architect @ Huawei ❖ Apache Hadoop Committer ❖ Working in Hadoop YARN team. ❖ Hobbies : ➢ Chess, Cycling Varun Saxena ❖ Senior Technical Lead @ Huawei ❖ Apache Hadoop Committer ❖ Working in Hadoop YARN team. ❖ Hobbies : ➢ Photography
  • 4. Agenda ❑Aspects of Distributed Scheduling Framework ❑Architectural evolution of resource scheduling ❑Overview of prominent open source schedulers ❑Functional comparison between prominent schedulers ❑Conclusion
  • 5. Aspects of Distributed Scheduling Framework ❏ Ability to support varied resources types and ensuring isolation ❏ Support of multiple resource type (CPU, Mem, Disk, Network, GPU etc...) ❏ Pluggable resource type ❏ Hierarchical/nested resource types ❏ Macro(logical partition) and Micro(cgroups) isolation ❏ labelling of nodes ❏ Ability to orchestrate Containers ❏ Support for multiple container types(Docker, Rocket ) ❏ Manage life cycle of Containers ❏ Support repository Management of Container Images
  • 6. Aspects of Distributed Scheduling Framework ❏ Ability to support wide variety of applications ➢ Big Data (stateful, DAG, ad hoc, batch) ➢ Long running services (stateless, stateful apps) ➢ Support of DevOps and MicroServices Model ❏ Networking support ➢ Network proxy/wiring of containers ➢ DNS support ➢ Service discoverability ❏ Disk Volumes (Persistence storage) ➢ Ability to mounting of multiple Types of Persistent volumes ● local Block Storage (SSD/SATA) ● Raid based persistent disks (SSD/SATA). ● Software based storages : NFS ● Elastic storage for Files/ Objects ( GlusterFS , AWS) ➢ Dynamic mounting
  • 7. Aspects of Distributed Scheduling Framework ❏ Scalability and Reliability ➢ Daemon Services reliability and scalability ➢ Application reliability. ➢ Application recoverability ➢ Integrated Load Balancer ❏ Security ➢ Namespaces ➢ RBAC ➢ Pluggable authentication for the enterprise. LDAP integrations ... ➢ enforce secure communication in all layers, App - Service , Clients - Service, Clients - Apps ❏ Others ➢ Automatable : Deploy and Build ➢ DevOps Collaboration
  • 8. Agenda ❑Aspects of Distributed Scheduling Framework ❑Architectural evolution of resource scheduling ❑Overview of prominent open source schedulers ❑Functional comparison between prominent schedulers ❑Conclusion
  • 9. Architectural evolution of resource scheduling Monolithic Scheduling ❏ Many of the cluster schedulers are Monolithic. Enterprise- IBM HPC, Open source - Kubernetes, JobTracker in Hadoop v1 ❏ A single scheduler process runs on one machine and assigns tasks to machines and it alone handles all different kinds of workloads. All tasks run through the same scheduling logic . ❏ Pro’s ➢ Sophisticated optimizations to avoid negative interference between workloads competing for resources can be achieved using ML tech. Ex- Yarn, Paragon and Quasar ❏ Con’s ➢ Support different applications with different needs, Increases the complexity of its logic and implementation, which eventually leads to scheduling latency ➢ Queueing effects (e.g., head-of-line blocking) and backlog of tasks unless the scheduler is carefully designed. ➢ Theoretically might not be scalable for very large cluster. Ex. Hadoop MRV1
  • 10. Architectural evolution of resource scheduling Two Level Scheduling ❏ Separates the concerns of resource allocation and App’s task placement. ❏ Task placement logic to be tailored towards specific applications, but also maintains the ability to share the cluster between them. ❏ Cluster RM can offer the resources to app level scheduler (pioneered by Mesos) or application-level schedulers to request resources. ❏ Pro’s ➢ Easy to carve out a dynamic partition out of cluster and get the application executed in isolation ➢ A very flexible approach that allows for custom, workload-specific scheduling policies. ❏ Con’s ➢ Information hiding: Cluster RM will not be aware of the App’s task and will not be able(/complicates) to optimize the resource usage (preemption) ➢ Interface become complex in request based model. ➢ Resource can get underutlized.
  • 11. Architectural evolution of resource scheduling Shared State Scheduling ❏ Multiple replicas of cluster state are independently updated by application-level schedulers. ❏ Task placement logic to be tailored towards specific applications, but also maintains the ability to share the cluster between them. ❏ Local scheduler issues an optimistically concurrent transaction to update local changes to the shared cluster state. ❏ In the event of transaction failure(another scheduler may have made a conflicting change) local scheduler retries. ❏ Prominent examples : google’s omega, Microsoft’s Apollo, Hashicorp’s Nomad, of late Kubernetes something similar. ❏ In general shared cluster state is in single location but it can be designed to achieve "logical" shared-state materialising the full cluster state anywhere. ex Apollo ❏ Pro’s ➢ Partially distributed and hence faster. ❏ Con’s ➢ Scheduler works with stale information and may experience degraded scheduler performance under high contention. ➢ Need to deal with lot of split brain scenarios to maintain the state. (although this can apply to other architectures as well)
  • 12. Architectural evolution of resource scheduling Fully Distributed Scheduling ❏ Based on hypothesis that the tasks run on clusters are becoming ever shorter in duration and multiple shorter jobs even large batch jobs can be split into small tasks that finish quickly. ❏ Workflow : ➢ Multiple Independent schedulers servicing the incoming workload ➢ Each of these schedulers works with its local or partial (subset) of the cluster. No cluster state to be maintained by schedulers. ➢ Based on a simple "slot" concept that chops each machine into n uniform slots, and places up to n parallel tasks. ➢ Worker-side queues with configurable policies (e.g., FIFO in Sparrow), ➢ Scheduler can choose at which machine to enqueue a task which has available slots satisfying the request. ➢ If not available locally then will try to get the slot for other scheduler. ❏ Earliest implementers was sparrow. ❏ Federated clusters can be visualized similar to Distributed Scheduling albeit if there is no central state maintained. ❏ Pro’s ➢ Higher decision throughput supported by the scheduler. ➢ Spread the load across multiple schedulers. ❏ Con’s ➢ Difficult to enforce global invariants (fairness policies, strict priority precedence) ➢ Cannot support application-specific scheduling policies. For example Avoiding interference between tasks (as its queued),, becomes tricky.
  • 13. Architectural evolution of resource scheduling ❏ Considered mostly academic. ❏ Combines monolithic and Distributed scheduling. ❏ Two scheduling paths: ➢ A distributed one for part of the workload (e.g., very short tasks, or low-priority batch workloads). ➢ Centralized one for the rest. ❏ Priority will be given to the centralized scheduler in the event of the conflict. ❏ Incorporated in Tarcil, Mercury, and Hawk. ❏ Is also available as part of YARN, More in next slides. Hybrid architectures
  • 14. Agenda ❑Aspects of Distributed Scheduling Framework ❑Architectural evolution of resource scheduling ❑Overview of prominent open source schedulers ❑Functional comparison between prominent schedulers ❑Conclusion
  • 15. Overview of Kubernetes Kubernetes Overview ❏ Basic abstraction is POD : Co-locating helper processes, ❏ Everything App/task is a Container ❏ Supports multiple container types: Rocket, Docker ❏ Mounting storage systems and dynamic mount of volumes ❏ Simple interface for application Developer : YAML ❏ Multiple templates /views for the end application ❏ POD ❏ Deployment ❏ ReplicationSet ❏ DaemonServices ❏ Supports Multiple Schedulers and let's application to choose containers ❏ Default scheduler tries to optimize scheduling by bin packing. And scheduling tries to pick up the node will less load ❏ Supports Horizontal POD scaling for a running app Kubernetes YAML file
  • 16. Overview of Kubernetes Kubernetes Architecture 1. Master – Cluster controlling unit 2. etcd – HA Key/value store 3. API Server - Observing the state of the cluster 4. Controller Manager – runs multiple controllers 5. Scheduler Server – assigns workloads to nodes 6. Kubelet - server/slave node that runs pods 7. Proxy Service – host subnetting to external parties 8. Pods – One or more containers 9. Services – load balancer for containers 10. Replication Controller – For horizontally-s
  • 17. Overview of Swarm Swarm Scheduling Overview ❏ Main job of scheduler is to decide which node to use when running docker container/service. ❏ Swarm Filters (Labels and Constraints) ■ Label : attribute of the node E.g. environment = test, storage = ssd ■ Constraints Restrictions applied by Operator while creating a service. E.g. docker service create --constraint node.labels.storage==ssd … ■ Affinity and Anti Affinity ● Affinity: two containers should be together ● Anti Affinity : two containers should not be together ❏ Strategy : policy to pick the nodes ■ Spread strategy : schedule tasks on the least loaded nodes, provided they meet the constraints and resource requirements. ■ Bin pack ■ Random strategy ❏
  • 18. Overview of Mesos ❏ Master – Enable sharing of resource ❏ Slave – Execute the task in it ❏ Cluster – a group of machines ❏ ZooKeeper – distributed synchronization/configuration ❏ Framework – scheduler + executor ❏ Scheduler – Accept resources ❏ Executor – Run the Framework task ❏ Task – a job to run ❏ Containerizer – run & monitor executors Mesos Architecture
  • 19. Overview of Mesos ❏ Works on Offer based model. ❏ Mesos has two levels of scheduling; ● one intra-Frameworks level ● Inter-Framework level application specific. ❏ Supports Pools’ and ACLs’ Mesos Scheduling Overview
  • 20. Overview of Mesos ❏ Dev -OPS : VAMP ❏ Long Running services : ● Marathon : Mesosphere’s solution which automatically handles hardware or software failures and ensures that an app is “always on”. ● Aurora : Apache’s project. ● Singularity : for one off tasks and scheduled jobs ❏ Bigdata processing: ● Hadoop Running Hadoop on Mesos distributes MapReduce jobs efficiently across an entire cluster. ● Spark is a fast and general-purpose cluster computing system which makes parallel jobs easy to write. ● Storm is a distributed realtime computation system. ❏ Batch Scheduling : ● Chronos is a distributed job scheduler that supports complex job topologies. It can be used as a more fault-tolerant replacement for Cron. ❏ Data Storage : Alluxio, Cassandra, Ceph Mesos Frameworks :
  • 21. Overview of Apollo Microsoft’s Research paper on scalable and coordinated scheduler for cloud scale computing incorporating following features ■ Distributed and coordinated architecture ■ Estimation-based scheduling ■ Conflict resolution ■ Opportunistic scheduling
  • 22. Overview of YARN YARN Architecture overview : ❏ Core philosophy ➢ Allocate resources very close to the data. ● supports each RR to specify locality information ● Supports delayed scheduling to ensure locality of data ➢ Containers are primarily considered as non-preemptable. ● During all kind of failovers priority is given to ensure that running containers continue to finish ● Even during preemption we try to provide opportunity(time window) for the app to finish or checkpoint the containers state.
  • 23. Overview of YARN YARN Key features : Distributed Scheduling : (YARN-2877) ❏ Distributed + Centralized = achieves faster scheduling for small tasks without obstructing the application/queue/tenant related guarantees. ❏ Each NM is considered to have resource slots and resource requests are queued up. ❏ NM proxies the AM-RM communication and decorates the request and sends to RM. ❏ Distributed scheduling co-ordinator of RM sends and appends cluster stats information (all NM queued up resource requests information) to the AM-RM communication response (allocate call). ❏ NM on receiving the stats can schedule the opportunistic containers requested by the app based on policy ❏ Pluggable policy to pick the node effectively ❏ At NM priority is given to start the containers allocated by RM and if free picks from the opportunistic containers queue
  • 24. Overview of YARN YARN Key features : Federated Scheduling : (YARN-2915) ❏ A large YARN cluster is broken up into multiple small subclusters with a few thousand nodes each. Sub clusters can be added or removed. ❏ Router Service ● Exposes ApplicationClientProtocol. Transparently hides existence of multiple RMs’ in subclusters. ● Application is submitted to Router. ● Stateless, scalable service. ❏ AM-RM Proxy Service ● Implements ApplicationMasterProtocol. Acts as a proxy to YARN RM. ● Allows application to span across multiple sub-clusters ● Runs in NodeManager. ❏ Policy and State store ● Zookeeper/DB.
  • 25. Overview of YARN YARN Key features : YARN supports Docker ! (YARN-3611) ❏ Limited support in the released version(2.8) but 2.9 more features are expected to come ❏ supports cgroups resource isolation for docker containers. ❏ Supports multiple networks while launching but port Mapping to host port is yet to be done. ❏ Supports individual task/request to select to be run in docker container environment. ❏ By design can support other Container runtime environments but current support is only for docker ❏ Does not support launching of docker containers in Secured environment yet. ❏ Does not support mounting of external volumes yet.
  • 26. Overview of YARN YARN Key features : Rich Placement Constraints in YARN (YARN-6592) { Priority: 1, Sizing: {Resource: <8G, 4vcores>, NumAllocations: 1 }, AllocationTags: ["hbase-rs"], PlacementConstraintExpression: { AND: [ // Anti-affinity between RegionServers {Target: allocation-tag NOT_IN “hbase-rs”, Scope: host }, // Allow at most 2 RegionServers per failure-domain/rack { MaxCardinality: 2, Scope: failure_domain } ] } }, ➢ AllocationRequestID ➢ Priority ➢ AllocationTags​: tags to be associated with all allocations returned by this SchedulingRequest ➢ ResourceSizing ○ Number of allocations ○ Size of each allocation ➢ Placement Constraint Expression Scheduling Request Sample scheduling Request
  • 27. Overview of YARN YARN Key features : Simplified API layer for services (YARN-4793) ❏ Create and manage the lifecycle of YARN services by new services API layer backed by REST interfaces. ❏ Supports for both simple single component and complex multi-component assemblies ❏ Other important complementing features : ➢ Resource-profile management (YARN-3926), ➢ service-discovery (YARN-913/YARN-4757). ➢ REST APIs for application-submission and management (YARN-1695). ➢ Support of System(daemon) services. YARN-1593 POST URL - http://host.mycompany.com:8088/services/v1/applications GET URL - http://host.mycompany.com:8088/services/v1/applications/hello-world
  • 28. Agenda ❑Aspects of Distributed Scheduling Framework ❑Architectural evolution of resource scheduling ❑Overview of prominent open source schedulers ❑Functional comparison between prominent schedulers ❑Conclusion
  • 29. Functional comparison between prominent schedulers Feature / Framework K8s Mesos YARN Swarm Architecture Monolithic ( shared state on support of multi scheduler) two-level monolithic/ two-level / hybrid monolithic Resource granularity Multi dimensional Multi dimensional RAM/CPU (Multi dimensional after resource profile) Multi dimensional Multiple Scheduler support on going Yes - frameworks can further schedule Partial (fair / capacity) not at the same time but apps can have their logic. No Priority preemption Yes Ongoing Yes (further optimizations are on going YARN-2009) No Over subscription Yes Yes Ongoing (YARN-1011) No Resource Estimation No No Solutions being devloped as external components but supports reservation queues No Resource Isolation Partial (but pluggable) Partial (but pluggable) Partial (but pluggable) No
  • 30. Functional comparison between prominent schedulers Feature / Framework K8s Mesos YARN Support for Coarse grained isolation (partitions / pools) N (Namespaces : logical partitions) N (supports logical pools) Supports partitions Support multiple Container runtimes Yes Predominantly dockers Partial Dockers (will be available in 2.9) but pluggable interface Support Variety of applications Yes but stateful application support is on going. Supports concept of PODS,Daemon services .. Framework level support Support pods aka task groups. Ongoing support for simplifying services. Pod concept not supported Security Supports pluggable authentication and SSL. Supports Kerberos Supports CRAM-MD5 authentication using Cyrus SASL library. Pluggable authentication work is ongoing Supports SSL, Kerberos Disk Volumes provisioning Yes Yes No
  • 31. Functional comparison between prominent schedulers Feature / Framework K8s Mesos YARN Disk Volumes provisioning Yes Yes No Scalability and Reliability SPOC as there is single process which holds the whole state, And possible load on ETCD as cluster size increases Good as the state is distributed across multiple frameworks Good, separation between app and resource data Suitable for Cloud Yes Yes Fairly Suitable for standalone BigData Ongoing Yes Yes
  • 32. Agenda ❑Aspects of Distributed Scheduling Framework ❑Architectural evolution of resource scheduling ❑Overview of prominent open source schedulers ❑Functional comparison between prominent schedulers ❑Conclusion
  • 33. Conclusion ❏ All schedulers are in fact trying to solve the same set of problems, duplicating effort building various shapes and sizes of resource managers, container managers or long-running service schedulers. ❏ It will lead to a fragmented experience with different terminology and concepts for very similar things, different interfaces or APIs, different troubleshooting procedures , documentation and so on, which will only be driving up operations costs.
  • 34. References ❏ YARN - https://issues.apache.org/jira/browse/YARN/ & http://hadoop.apache.org/docs/current/ ❏ Swarm scheduling - https://www.slideshare.net/AtharvaChauthaiwale/docker-swarm-scheduling-in-112 ❏ Kubernetes Design - https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture.md ❏ Mesos Architecture - http://mesos.apache.org/documentation/latest/architecture/ ❏ Kubernetes Scheduler - http://stackoverflow.com/questions/28857993/how-does-kubernetes-scheduler-work ❏ Mesos Scheduler - http://cloudarchitectmusings.com/2015/04/08/playing-traffic-cop-resource-allocation-in-apache-mesos/ ❏ Kubernetes – Marathon - https://www.quora.com/What-is-the-difference-between-Googles-Kubernetes-and-Mesospheres-Marathon ❏ Scheduler architectures : https://www.cl.cam.ac.uk/research/srg/netos/camsas/blog/2016-03-09-scheduler-architectures.html#fn3l ❏ CONTAINER ORCHESTRATION COMPARISON GUIDE - https://apprenda.com/thank-you/gaw-container-orchestration-comparison-guide-k/ ❏ Future of Resource Manager by IBM - https://www.ibm.com/developerworks/community/blogs/1ba56fe3-efad-432f-a1ab-58ba3910b073/entry/tho ughts_on_future_of_resource_managers_and_schedulers_in_the_cloud?lang=en and many more ...