通过一些问题引导读者了解、熟悉YARN,主要分为以下几大块:
#1. RM
##调度器 内容:FariScheduler, 调度器性能,SLS,Ganglia, 队列,抢占,调度原理, node label
问题1. 怎么保证用户的最低资源使用量
问题2. 如果集群中有多余的资源,已达到最低资源使用量的用户是否可以使用这些资源,此时如果有别的队列有app请求资源并且该队列没有达到最低资源使用量,如何处理
问题3. 怎么测试调度器的性能,怎么查找性能瓶颈在哪
问题4. 如何优化调度器的性能
问题5. 如何使用分布式监控系统Ganglia监控RM是否正常和RM性能
问题6. 如何通过node label做资源隔离
##RM HA 内容:Zookeeper(原子操作、临时节点、watcher、ZK配置),Leader选举,Fence机制,RM状态存储机制、恢复与优化
问题1. RM recover时间过长时,会导致RM误以为AM超时(YARN-3094)
问题2. 在有些情况下NM可以避免重复的上报container信息(YARN-2617)
问题3. 不要在Znode上设置不必要的watcher(YARN-3469)
问题4. 存储的APP和attempt数太多时,会导致ZK连接异常
问题5. 存储的APP和attempt数太多时,会导致RM恢复时间过长(YARN-3480)
问题6. 如果所有RM都挂了,如何让集群不受影响地继续运行
问题7. 只保存APP/Attempt的状态是否是足够的 (YARN-3161) 由此问题可以引出NM restart的必要性
#2. NM
##资源控制 内容:CPU、内存、磁盘、管理控制,cgroups
问题1. 如何为NM增加一个新的资源维度管理(YARN-4122)
##NM restart 内容:LevelDB,NM状态存储机制、恢复与优化
问题1. 当NM中增加一个新的状态需要存储和恢复时,如何实现
#3. YARN对Docker的支持 内容:Docker,AM
问题1. 如何编写一个新的AM支持Docker