You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS上MarkLogic集群启动失败,报DynamoDB错误

MarkLogic 11.0.2 3节点集群启动失败问题解决

问题描述

通过CloudFormation模板部署3节点MarkLogic 11.0.2集群,CloudFormation配置执行正常,但MarkLogic服务无法启动。手动启动服务时出现以下错误:

[root@ip-100-202-30-37 etc]# service MarkLogic start
Set configuration: JAVA_HOME="/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.372.b07-1.amzn2.0.1.x86_64"
Set configuration: MARKLOGIC_MDB_TYPE="ddb"
Set configuration: AWS_REGION="us-east-1"
Set configuration: AWS_DEFAULT_REGION="us-east-1"
Set configuration: MARKLOGIC_ZONE="us-east-1c"
Set configuration: MARKLOGIC_HOSTNAME="ip-100-202-30-37.ec2.internal"
Initialize Configuration.
AWS Region: us-east-1, ZONE: us-east-1c. INSTANCE: i-0sdeftghyuj908yt
Configured node name. MARKLOGIC_NODE_NAME: NodeC#
Set configuration: MARKLOGIC_MDB_TYPE="ddb"
Managed cluster initialization
Localized name pattern to NodeC-us-east-1c#
No MDB found: ml-cluster-v11-MarkLogicDDBTable-2DRFTGHU67OKL   - aborting

已确认CloudFormation中主集群节点配置正确,报错提及的DynamoDB表已创建但为空。

排查与解决方案

  • 确认主节点初始化状态:Managed Cluster模式下,主节点需先完成初始化并将集群元数据写入DynamoDB表,从节点才能读取并加入集群。检查主节点的MarkLogic服务是否成功启动,若主节点也未启动,优先查看主节点的启动日志(路径:/var/opt/MarkLogic/Logs/ErrorLog.txt)。
  • 验证IAM角色权限:确保所有EC2实例的IAM角色拥有DynamoDB的PutItem、GetItem、Scan等权限。主节点需要写入权限,从节点需要读取权限,权限不足会导致主节点无法写入元数据,从节点读取为空。
  • 核对DDB表名称一致性:检查CloudFormation模板中定义的DDB表名称,与节点启动时报错的表名ml-cluster-v11-MarkLogicDDBTable-2DRFTGHU67OKL完全匹配,避免模板参数或输出变量错误导致名称不匹配。
  • 检查节点启动顺序:必须先启动主节点,等待主节点完成集群初始化(可通过主节点的ErrorLog确认元数据已写入DDB),再启动从节点。若从节点先启动,会因DDB表为空触发启动失败。
  • 验证网络连通性:确认EC2实例能正常访问DynamoDB。检查安全组是否允许出站到443端口,VPC环境下需确认是否配置了DynamoDB VPC端点,或是否有网络ACL限制了DDB访问。
  • 查看主节点详细日志:在主节点的ErrorLog.txt中搜索DynamoDB相关日志,确认是否存在写入失败的报错(如权限拒绝、网络超时),这是DDB表为空的直接原因。

内容的提问来源于stack exchange,提问作者JayantKYadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:50:06