Untitled
状态管理
- 为什么 InteractiveSession 需要双层状态(serverSideState + replState)?
- 🔍 探索:state 属性的实现,理解细粒度状态监控
- 状态转换有哪些保护机制?为什么需要这些保护?
- 🔍 探索:transition() 方法的 areSameStates 和 transitFromInactiveToActive 检查
- 多个线程同时触发状态转换时,如何保证一致性?
- 🔍 探索:synchronized 关键字的使用
- SparkApp 状态和 Session 状态的映射关系是什么?
- 🔍 探索:stateChanged() 回调,理解事件驱动的状态同步
会话恢复
- Livy Server 重启后,如何恢复已有的 Session?
- 🔍 探索:InteractiveSession.recover(),SessionStore 的实现
- 支持哪些持久化方式?它们的优缺点是什么?
- 🔍 探索:FileSystemStateStore、ZooKeeperStateStore、JDBCStateStore
- 恢复时如何重新连接到 Spark Driver?
- 🔍 探索:rscDriverUri 的保存和使用
- 什么情况下 Session 无法恢复?
- 🔍 探索:InteractiveRecoveryMetadata.isRecoverable() 方法
资源管理
- Livy 如何检测 Session 超时?
- 🔍 探索:SessionHeartbeat trait,心跳机制
- 如何动态添加 Jar 和 File?它们被分发到哪里?
- 🔍 探索:addJar()、addFile(),理解资源上传到 HDFS
- 命名 Session (Named Session) 是什么?与普通 Session 有何不同?
- 🔍 探索:driverName 参数,Thrift Server 集成
- 如何限制并发 Session 数量?
- 🔍 探索:SessionCounter.scala,SESSION_MAX_CREATION 配置
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.