如何在 EMR 集群引导上设置 livy.server.session.timeout?
Posted
技术标签:
【中文标题】如何在 EMR 集群引导上设置 livy.server.session.timeout?【英文标题】:how to set livy.server.session.timeout on EMR cluster boostrap? 【发布时间】:2019-01-16 15:30:30 【问题描述】:我正在创建一个 EMR 集群,并使用 jupyter notebook 运行一些 spark 任务。 我的任务在执行大约 1 小时后终止,错误是:
An error was encountered:
Invalid status code '400' from https://xxx.xx.x.xxx:18888/sessions/0/statements/20 with error payload: "requirement failed: Session isn't active."
我的理解是它与 Livy config livy.server.session.timeout
有关,但我不知道如何在集群的引导程序中设置它(我需要在引导程序中进行设置,因为集群是使用没有 ssh 访问)
提前非常感谢
【问题讨论】:
【参考方案1】:在 EMR 上,livy-conf
是 livy 的 livy.conf
文件的属性分类,因此在创建 EMR 集群时,选择 advanced options
并选择 Livy 作为要安装的应用程序,请在 @ 中传递此 EMR 配置987654325@字段。
['classification': 'livy-conf','Properties': 'livy.server.session.timeout':'5h']
在 EMR 上,Livy 二进制文件位于 /etc/livy/
,因此配置文件位于 /etc/livy/conf/livy.conf
为了验证这一点,
使用已知的ec2 key-pair
、Livy 及以上配置创建 EMR 集群
使用ec2 key-pair
,登录到与集群ssh -i some-ec2-key-pair.pem hadoop@ec2-00-00-00-0.ca-region-n.compute.amazonaws.com
关联的EC2 Master节点
导航到/etc/livy/conf
,vim livy.conf
& 查看livy.server.session.timeout
的更新值
【讨论】:
用“分类”替换“分类”。 我们如何更改 livy-client.conf 中的 livy.rsc.launcher.port.range 属性?无法这样做,分类“livy-client”或“livy-client-conf”不起作用。 嗨@Naveen,您可以将此链接添加到您的答案aws.amazon.com/premiumsupport/knowledge-center/…【参考方案2】:如果您根本不希望 Livy 会话停止,请在 /etc/livy/conf/livy.conf
中将属性 livy.server.session.timeout-check
设置为 false
。
【讨论】:
对我的集群使用 AWS 控制台 EMR 页面,我可以使用livy-conf
和 livy.server.session.timeout-check
、false
编辑表并为所有实例组添加配置。之后主控和核心进入“重新配置”模式。
@Merlin,我的 Master 和 Core 进入了“重新配置”状态一段时间,然后 Master 变成了“Suspended”,Core 变成了“Running”。有一条警告说“主实例组:配置恢复失败,逮捕实例组”。这就是你的遭遇吗?【参考方案3】:
如果您不想重新创建集群,另一种方法是:
转到/etc/livy/conf/livy.conf
并将livy.server.session.timeout
属性设置为您想要的值。
之后,运行sudo restart livy-server
使配置生效。
【讨论】:
该命令对重启不起作用。最好使用这个:sudo systemctl restart livy-server
超时时间单位是多少?秒?以上是关于如何在 EMR 集群引导上设置 livy.server.session.timeout?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon EMR 上引导安装 Python 模块?
Amazon EMR - 从设备上的 Yum 更新引导操作失败