scala - Spark Submit 和 EMR HA 的 Livy 服务
问题描述
抱歉,如果这个问题非常具体并且错过了错误日志,因为这很难在我们的生产环境中重现。
场景:我们在 EMR 节点中运行 Livy 服务,用于远程 spark 提交调用。
我们还为我们的生产 EMR 节点启用了高可用性,这意味着在任何节点错误期间,备用资源管理器 (RM) 节点将变为活动状态,因此 NameNode 必须为这个新节点注册其状态和元数据。
挑战在于无论何时发生这种情况 - 我们的 spark 作业开始堆积,因为 livy 没有(立即)将新的 RM 注册为活动的。这个偶尔的问题会导致我们 EMR 中断,唯一成功的方法是删除正在运行的 spark 应用程序并手动重新启动它们以释放资源。
Livy Server 如何了解哪个是活动 RM,以及每当发生 EMR HA 切换时我们可以做些什么来避免此类问题?
PS有时重新启动livy服务器可以解决问题,但它是一种被动方式:
initctl list | grep livy
sudo start livy-server
解决方案
推荐阅读
- linux - 重命名失败,但可以使用 -n(无操作)选项
- react-native - 父子组件的 React-Native 并行动画
- pycharm - 如何使用 Pycharm 开发远程项目而不将文件克隆到本地环境?
- python-3.x - redis-py 在退出时不关闭线程
- c# - 无法使用 insertOneAsync 在 mongodb 中插入数据
- makefile - 为什么在使用隐式规则时 make 不使用我的显式规则?
- python-3.x - 两种异常处理的区别
- python - 嘿伙计们,我在这段代码中做错了什么。我正在尝试将 13195 的所有主要因素附加到一个空列表中,但它给了我一个空列表
- apache-spark - Spark:加入时的奇怪分区
- python-3.x - 如何同时打开使用 2 个不同的可视化工具包(VTK 和 tkinter)构建的 2 个不同的 GUI?