不同于其它服务组件,Presto 对配置项采取严格校验的策略,只要配置项的变更没有通过 Presto 校验(例如配置项的名称或值不能被识别、配置项冗余等),都会导致服务无法正常启动。因此在变更配置前,您需要仔细检查配置项是否正确,一旦出现因为服务参数变更导致的服务启动异常可以先回滚操作,检查正确后再重新配置。
通常 keystore 证书的变更对用户而言是透明,EMR 会在每次启动 Presto 服务时校验 keystore 证书的有效性,如果出现如下情况将会重新生成新的 keystore 证书:
如果您是将 keystore 证书文件拷贝到其它节点或本地使用,当 keystore 证书被刷新后需要您主动同步更新后的 keystore 证书文件。
当集群级别内存限制耗尽时会出现此问题,解决方法是调大 query.max-memory
参数值。该参数是集群级别的限制,表示查询可以在所有节点上聚合的最大内存。
解决方法是将参数 query.max-memory-per-node
值增加到工作节点所在实例内存的 40%,该参数决定查询可以在节点上使用的最大内存。
以下是避免内存问题的建议:
当作业量过大,集群规模较小时,会出现该报错,建议用户加大服务内存,或通过扩容等方式处理。