elasticsearch 6 伪集群部署

本文详细介绍了如何从解压Elasticsearch压缩包开始,配置elasticsearch.yml文件以搭建和启动Elasticsearch集群,包括多节点配置、数据路径设置、网络参数调整等关键步骤,并提供了测试集群健康状况的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解压 elasticsearch.rar ,配置elasticsearch_node1\config\elasticsearch.yml 文件


cluster.name: es2019

network.host: 0.0.0.0

http.port: 9201
node.master: true
node.data: true
path.data: D:/all/env/elasticsearch_node1/data
path.logs: D:/all/env/elasticsearch_node1/logs
bootstrap.memory_lock: true
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["192.168.20.180:9301", "192.168.20.180:9302", "192.168.20.180:9303"]
# 要启动两个节点作为主节点
discovery.zen.minimum_master_nodes: 2

http.cors.enabled: true
http.cors.allow-origin: /.*/

复制三份,修改下面的属性

1503319-20190227172654424-102498023.png

http.port: 9201
transport.tcp.port: 9301
path.data: D:/all/env/elasticsearch_node1/data
path.logs: D:/all/env/elasticsearch_node1/logs

启动三个es,斌测试是否成功。

通过地址访问

http://127.0.0.1:9201/_cluster/health

http://127.0.0.1:9201/_cat/health?v

http://localhost:9202/_cat/nodes?v

1503319-20190227173427385-1361347025.png

注意:
由于配置文件配置的master节点至少有两个,会报错 Master not discovered exception"
data文件夹中有数据是,启动es时es集群会一致报错,

[node-2] failed to send join request to master [{node-1}{WbcP0pC_T32jWpYvu5is1A}{2_LCVHx1QEaB
原因是:是因为复制的elasticsearch文件夹下包含了data文件中示例一的节点数据,需要把示例二data文件下的文件清空。删除es集群data数据库文件夹下所有文件即可

集群使用

参考 https://www.cnblogs.com/wenbronk/p/6477252.html

参考:https://blog.51cto.com/zero01/2285604

转载于:https://www.cnblogs.com/mumian2/p/10445359.html

### 如何使用容器化方式部署Elasticsearch集群 #### 使用Docker部署Elasticsearch集群 为了确保Elasticsearch能够在Docker环境中稳定运行,需预先调整宿主机内核参数。具体来说,在启动前应提高虚拟内存区域数量限制: ```bash sysctl -w vm.max_map_count=262144 ``` 此操作可防止由于`vm.max_map_count`过低而引发的服务无法正常启动问题[^4]。 创建用于存储数据的卷有助于保持节点间的数据持久性和迁移便利性。通过定义配置文件来指定集群名称、发现种子主机以及网络绑定地址等关键属性,可以有效促进多实例间的协作通信。下面是一个简单的docker-compose.yml模板示例,适用于快速构建单机上的伪分布式环境: ```yaml version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 container_name: es01 environment: - node.name=es01 - cluster.name=demo-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - elastic es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 container_name: es02 environment: - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-1 hard: -1 volumes: - esdata02:/usr/share/elasticsearch/data networks: - elastic es03: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 container_name: es03 environment: - node.name=es03 - cluster.name=demo-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata03:/usr/share/elasticsearch/data networks: - elastic volumes: esdata01: driver: local esdata02: driver: local esdata03: driver: local networks: elastic: driver: bridge ``` 上述YAML文件描述了一个由三个成员组成的Elasticsearch集群架构,并指定了相应的资源分配策略和网络连接关系。执行如下命令即可依据该配置自动完成整个集群的初始化过程: ```bash docker-compose up -d ``` 对于Kubernetes平台而言,则可以通过编写自定义的StatefulSet对象定义来实现更复杂的场景支持,比如高可用性的主从复制机制或是跨数据中心灾备方案的设计实施。同时考虑到安全性因素的影响,在实际应用过程中往往还需要额外引入身份验证组件以便更好地保护敏感信息的安全传输与访问控制[^2]。 当涉及到用户管理时,可以在容器内部通过交互式命令行工具为预设的角色设定密码,从而增强系统的整体防护能力: ```bash docker exec -it elasticsearch bash cd /usr/share/elasticsearch/bin/ ./elasticsearch-setup-passwords interactive ``` 以上指令能够引导管理员分别为内置账户(如`elastic`, `apm_system`, `kibana_system`等)设置强口令,进而满足企业级应用场景下的合规性需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值