Apache Hadoop has made giant strides since in the last 12 months: the community has released hadoop-1.0 after nearly 6 years and now hadoop-2. In hadoop-2 Apache Hadoop MapReduce has undergone a complete re-haul to emerge as Apache Hadoop YARN, a generic compute fabric to support MapReduce and other application paradigms. This really changes the game to recast Hadoop as a much more powerful data-processing system making Hadoop very different from itself 12 months ago. In this talk we will talk about the next set of features like pre emption, web services and near real time analysis and how we are working on tackling these in the near future. In this talk we will also cover the roadmap for the MapReduce framework itself.
2. Hello! I’m Arun
• Founder/Architect at Hortonworks Inc.
– Lead, Map-Reduce
– Formerly, Architect Hadoop MapReduce, Yahoo
– Responsible for running Hadoop MR as a service for all of Yahoo
(50k nodes footprint)
• Apache Hadoop, ASF
– VP, Apache Hadoop, ASF (Chair of Apache Hadoop PMC)
– Long-term Committer/PMC member (full time >6 years)
– Release Manager for hadoop-2
Page 2
3. Agenda
• Hadoop MapReduce, State of the Art
• Hadoop YARN
– Overview
– State of the art
• Art of the possible
– YARN Runtime
– MapReduce Framework
• Q&A
Page 3
6. Hadoop 1 – Enterprise Ready
• Hadoop 1.x is the most stable & reliable version of
Hadoop MapReduce ever
– Proven to be reliable at the most demanding Hadoop clusters
in the world
• CapacityScheduler for Multi-tenancy
– Share clusters at scale
– Resource & User limits for fine-grained
– Queue & Job ACLs
– Resilient to misbehaving/rogue applications, users etc.,
helping drive SLA for applications, pipelines etc.
6
7. Hadoop 1 – Availability for MR
• JobTracker Restart
– Enhanced to restart all jobs on rare JT failures
• JobTracker Safemode
– Admin driven for known issues
– Auto-monitoring of HDFS for full-stack availability
7
9. MapReduce - Areas for Improvement
• Utilization
• Scalability
– Maximum Cluster size – 4,000 nodes
– Maximum concurrent tasks – 40,000
• Hard partition of resources into map and reduce slots
• Lacks support for alternate paradigms
• Lack of wire-compatible protocols
9
10. Requirements
• Reliability
• Availability
• Utilization
• Wire Compatibility
• Agility & Evolution – Ability for customers to control
upgrades to the grid software stack.
• Scalability - Clusters of 6,000-10,000 machines
– Each machine with 16 cores, 48G/96G RAM, 24TB/36TB
disks
– 100,000+ concurrent tasks
– 10,000 concurrent jobs
10
11. Design Centre
• Split up the two major functions of JobTracker
– Cluster resource management
– Application life-cycle management
• MapReduce becomes user-land library
11
12. Concepts
• Application
– Application is a job submitted to the framework
– Example – Map Reduce Job
• Container
– Basic unit of allocation
– Example – container A = 2GB, 1CPU
– Replaces the fixed map/reduce slots
12
13. Architecture
• Resource Manager
– Global resource scheduler
– Hierarchical queues
• Node Manager
– Per-machine agent
– Manages the life-cycle of container
– Container resource monitoring
• Application Master
– Per-application
– Manages application scheduling and task execution
– E.g. MapReduce Application Master
13
21. YARN - Data Processing Applications
• OpenMPI on Hadoop
• Spark (UC Berkeley)
–Shark is Hive-on-Spark
• Real-time data processing
– Storm (Twitter)
– Apache S4
• Graph processing – Apache Giraph
Page 21
22. YARN - Beyond Data Processing Apps
• Apache Hbase
–Deployment via YARN (HBASE-4329)
–Co-processors via YARN (HBASE-4047)
• Simple deployment for cluster services
Page 22
23. MapReduce – Way Forward
• MapReduce Framework Runtime
–Monolithic software
• MR Runtime?
–Sort, Merge, Shuffle et al
• Unpack into smaller building blocks!
–Allow applications and Pig/Hive to ‘plug-n-play’
–MR framework, as we know today, becomes a particular
configuration of the building blocks
Page 23
24. MapReduce – Pluggable Sort
• Pig & Hive benefit from hash-based aggregation
–Several queries don’t need full-sort of map-outputs
–Aggregation suffices
–Allow for pluggable MapOutputBuffer in MapTask
–Sort Avoidance - MAPREDUCE-4039
–External sort plugin – MAPREDUCE-2454
Page 24
25. MapReduce – Pluggable Shuffle
• Push v/s Pull shuffle
• Plug shuffle implementation (already in hadoop-2)
–E.g. RDMA for shuffle
–MAPREDUCE-4049
• Collation tasks
–Sailfish - Yahoo Research (includes auto-tuning of reduces)
Page 25
26. MapReduce – More ideas
• Allow for Map-Reduce-Reduce
–Allow for reduce output to be sorted/shuffled
– JOIN followed by ORDER BY
– Really big deal for Pig/Hive
• DAG Management for Pig/Hive
– Scheduling improvements
– Restart semantics
Page 26
27. MapReduce – How do we get there?
• Multiple, concurrent implementations of MapReduce
–YARN is a really big deal…
–Allows for safe experiments, much less risky!
–Exposure surface is highly limited
Page 27