我正在尝试在 AWS ECS 中创建一个 elasticsearch 集群,但收到警告 ps -ef | grep dhcli
。我的 elasticsearch.yml 和任务定义对于所有节点都是相同的。我如何区分主节点和其他节点?我应该为主节点单独定义 elasticsearch.yml/task 吗?
我的 elasticsearch.yml :
"message": "master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes
答案 0 :(得分:0)
我也遇到过类似的问题。首先,您需要创建一个初始集群并准备好形成集群。可以通过在 elasticsearch.yml 上使用初始节点配置开始。我使用的解决方案是托管在一个 ECS 实例上,该实例运行一个 elasticsearch docker 容器(因为 elasticsearch 需要大量内存)
function f(params: {x: number, y: number}): number;
function f(params: {x: number, z: number}): number;
function f(params: {x: number, y: number} | {x: number, z: number}): number {
if ('y' in params) return params.x + params.y;
if ('z' in params) return params.x * params.z;
return -1;
}
const pass = { y: 1, z: 2 };
console.log(f(pass)); // error No overload matches
以上配置启动了集群,这意味着 elasticsearch 已准备好加入节点。在下一步中添加以下配置
cluster.initial_master_nodes: '<<INITIAL_NODE_IPADDRESS>>'
然后您可以根据需要添加任意数量的数据节点。这取决于您拥有多少数据。
注意:IPADDRESS 来自不同的节点,因此请使用 AWS SSM Parameter store 安全地存储 IP,并使用 engtrypoint.sh 获取这些信息并在构建 docker 映像时动态更新 elasticsearch.yml 文件。
我希望这能解决问题。