Our Experience Running YARN at Scale Bobby Evans
Agenda Who We Are Some Background on YARN and YARN at Yahoo! What Was Not So Good What Was Good
Who I Am Robert (Bobby) Evans Technical Yahoo! Apache Hadoop Committer and PMC Member Past –Hardware Design –Linux Kernel and Device Driver Development –Machine Learning on Hadoop Current –Hadoop Core Development (MapReduce and YARN) –TEZ, Storm and Spark
Who I Represent Yahoo! Hadoop Team –We are over 40 people developing, maintaining and supporting a complete Hadoop stack including Pig, Hive, HBase, Oozie, and HCatalog. Hadoop Yahoo!
Agenda Who We Are Some Background on YARN and YARN at Yahoo! What Was Not So Good What Was Good
Hadoop Releases Source:
Yahoo! Scale About 40,000 Nodes Running Hadoop.About 40,000 Nodes Running Hadoop. Around 500,000 Map/Reduce jobs a day.Around 500,000 Map/Reduce jobs a day. Consuming in excess of 230 compute years every single day.Consuming in excess of 230 compute years every single day. Over 350 PB of Storage.Over 350 PB of Storage. On 0.23.X we have over 20,000 years of compute time under our belts.On 0.23.X we have over 20,000 years of compute time under our belts.
YARN Architecture
Agenda Who We Are Some Background on YARN and YARN at Yahoo! What Was Not So Good What Was Good
The AM Runs on Unreliable Hardware Split Brain/AM Recovery (FIXED for MR but not perfect) –For anyone else writing a YARN app, be aware you have to handle this.
The AM Runs on Unreliable Hardware Debugging the AM is hard when it does crash.Debugging the AM is hard when it does crash. AM can get overwhelmed if it is on a slow node or the job is very large.AM can get overwhelmed if it is on a slow node or the job is very large. Tuning the AM is difficult to get right for large jobs.Tuning the AM is difficult to get right for large jobs. –Be sure to tune the heap/container size. 1GB heap can fit about 100,000 task attempts in memory (25,000 tasks worst case).
Lack of Flow Control Both AM and RM based on an asynchronous event framework that has no flow control.
Name Node Load YARN launches tasks faster than 1.0YARN launches tasks faster than 1.0 MR keeps a running history log for recoveryMR keeps a running history log for recovery Log Aggregation.Log Aggregation. –7 days of aggregated logs used up approximately 30% of the total namespace. 50% higher write load on HDFS for the same jobs50% higher write load on HDFS for the same jobs 160% more rename operations160% more rename operations 60% more create, addBlock and fsync operations60% more create, addBlock and fsync operations
Web UI Resource Manager and History Server Forget Apps too Quickly Browser/Javascript Heavy Follows the YARN model, so it can be confusing for those used to old UI.
Binary Incompatibility Map/Reduce APIs are not binary compatible between 1.0 and They are source compatible though so just recompile require.
Agenda Who We Are Some Background on YARN and YARN at Yahoo! What Was Not So Good What Was Good
Operability “The issues were not with incompatibilities, but coupling between applications and check-offs.” -- Rajiv Chittajallu
Performance Tests run on a 350 node cluster on top of JDK Improvement Sort (GB/s throughput) % Sort with compression (GB/s throughput) 4.5 0% Shuffle (mean shuffle time secs) % Scan (GB/s throughput) % Gridmx 3 replay (Runtime secs) %
Web Services/Log Aggregation No more scraping of web pages needed –Resource Manager –Node Managers –History Server –MR App Master Deep analysis of log output using Map/Reduce
Non Map Reduce Applications* Storm TEZ Spark … * Coming Soon
Total Capacity Our most heavily used cluster was able to increase from 80,000 jobs a day to 125,000 jobs a day. That is more than a 50% increase. It is like we bought over 1000 new servers and added it to the cluster. This is primarily due to the removal of the artificial split between maps and reduces, but also because the Job Tracker could not keep up with tracking/launching all the tasks.
Conclusion Upgrading to 0.23 from 1.0 took a lot of planning and effort. Most of that was stabilization and hardening of Hadoop for the scale that we run at, but it was worth it.
? Questions