ElasticSearch学习(三)——Windows集群部署
2023-06-13 09:18:38 时间
Windows集群部署
创建elasticsearch-cluster
文件夹,在内部复制3个ElasticSearch服务(将之前的单点解压缩的那个es文件夹复制过来)
点开之后会看到有data,logs两个文件夹,因为之前使用过,所以里面是有数据和日志的,因为我们需要用一个全新的集群环境,所以把data文件夹删除,logs文件夹清空。
然后就是进行配置,集群和单点是不一样的,单点直接双击elasticsearch.bat
文件启动即可,但是集群的话是需要配置的。
打开elasticsearch.yml文件
修改的部分:
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
# 集群名称,必须要一致
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
# 节点名称,集群内要唯一
node.name: node-8001
node.master: true
node.data: true
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
# ip地址
network.host: localhost
# http端口
http.port: 8001
# tcp监听端口
transport.tcp.port: 9301
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
修改完之后:
进入bin目录,启动node-8001
,可以看到:
然后打开postman,查询集群健康状态:
响应:
{
"cluster_name": "my-application",
"status": "green", // 可以看到为健康状态为绿色
"timed_out": false,
"number_of_nodes": 1, // 当前的节点为1个
"number_of_data_nodes": 1, // 当前的数据节点为1个
"active_primary_shards": 1,
"active_shards": 1,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100.0
}
如此复制一份,并命名node-8002
,删除data
目录,清空logs
目录,修改elasticsearch.yml
文件(添加到对应模块即可):
# ---------------------------------- Cluster -----------------------------------
# 集群名称,必须要一致
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# 节点名称,集群内要唯一
node.name: node-8002
node.master: true
node.data: true
# ---------------------------------- Network -----------------------------------
# ip地址
network.host: localhost
# http端口
http.port: 8002
# tcp监听端口
transport.tcp.port: 9302
# --------------------------------- Discovery ----------------------------------
# discovery es中的一个特殊的查找模块,用来查找节点的。
# 你第一台机器启动就不用写了,因为他启动就他一个,但是第二台就需要,因为他要去找第一台去
# 9301为内部通讯端口,是第一台机器的tcp监听端口
discovery.seed_hosts: ["localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zne.fd.ping_retries: 5
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
然后启动node-8002
可以看到:
可以看到node-8001
找到了node-8001
服务。
使用postman,查询集群健康状态:
响应:
{
"cluster_name": "my-application",
"status": "green", // 健康状态为绿色
"timed_out": false,
"number_of_nodes": 2, // 当前集群中的节点为2个
"number_of_data_nodes": 2, // 当前集群中的数据节点为2个
"active_primary_shards": 1,
"active_shards": 2,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100.0
}
如此同node-8002
修改一份node-8003
,删除data
目录,清空logs
目录,修改elasticsearch.yml
:
# ---------------------------------- Cluster -----------------------------------
# 集群名称,必须要一致
cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# 节点名称,集群内要唯一
node.name: node-8003
node.master: true
node.data: true
# ---------------------------------- Network -----------------------------------
# ip地址
network.host: localhost
# http端口
http.port: 8003
# tcp监听端口
transport.tcp.port: 9303
# --------------------------------- Discovery ----------------------------------
# discovery es中的一个特殊的查找模块,用来查找节点的。
# 你第一台机器启动就不用写了,因为他启动就他一个,但是第二台就需要,因为他要去找第一台去
# 9301为内部通讯端口,是第一台机器的tcp监听端口
discovery.seed_hosts: ["localhost:9301","localhost:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zne.fd.ping_retries: 5
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
然后启动node-8003
服务,可以看到:
启动成功:
使用postman,查询集群健康状态:
响应:
{
"cluster_name": "my-application",
"status": "green", // 健康状态为绿色
"timed_out": false,
"number_of_nodes": 3, // 当前集群中的节点为3个
"number_of_data_nodes": 3, // 当前集群中的数据节点为2个
"active_primary_shards": 1,
"active_shards": 2,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 2,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 43810,
"active_shards_percent_as_number": 100.0
}
注意: 这种方式要按照顺序启动,如果修改了配置文件,需要删除data目录,重启elasticsearch
配置文件参考:
# 集群名称,必须要一致
cluster.name: my-application
# 节点名称,集群内要唯一
node.name: node-8001
node.master: true
node.data: true
# ip地址
network.host: localhost
# http端口
http.port: 8001
# tcp监听端口
transport.tcp.port: 9301
# 查找节点(第一个节点的配置文件无需添加)
discovery.seed_hosts: ["localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zne.fd.ping_retries: 5
# 集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1","node-2","node-3"]
# 跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:
很多问题都出现在第一次配置失败。假如你Es项目路径下有建立了data的目录,那就要在每次改配置的时候去清掉里面的东西,像是缓存垃圾,导致后面每次修改都不生效。
解决方法:
关闭es,删除data目录,重启es
相关文章
- windows显示Linux对话框程序,在cmd命令行中弹出Windows对话框(使用mshta.exe命令)…
- Windows server 2008 R2 AD升级迁移到windows server 2019
- Windows 文件管理 | 利用批处理实现一键将同名文件移动到对应文件夹
- 解决在 Windows 11 上使用 TranslucentTB 时任务栏上方出现的小白线问题
- 如何使用Suborner创建隐形Windows账号
- ORA-09362: Windows 3.1 Two-Task driver unable to deallocate context area ORACLE 报错 故障修复 远程处理
- windows 运行hadoop的WordCount报nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)详解大数据
- windows比较 Linux 与 Windows 的差异(linux和_)
- 如何从Windows到Linux服务器传输文件(windows上传文件到linux服务器)
- Windows登录MySQL数据库的步骤指南(windows登录mysql)
- windows把Exsi、Linux和Windows兼容:实现三端互联的技术之旅(exsilinux)
- 在Windows环境下启动MySQL服务(windows启动mysql服务)
- 一些微软应用程序将在Windows 11中获得新的设计
- 市调数据显示Windows 11市场占有率逼近1% 众多用户抢先体验新系统
- 和windows比较Octave在Linux和Windows上的性能(octavelinux)
- and windows切换Linux和Windows系统:实现自由转换(swaplinux)
- Windows与Linux的区别 – 深入比较两个操作系统(windows和linux区别)
- Docker 1.6:支持Windows的Docker客户端
- “Linux轻松与Windows双启:引导快速添加方法”(linux添加windows引导)
- 和windows双系统安装:Linux与Windows并存(安装双系统linux)
- windows混搭环境中的EGL、Linux和Windows(egllinux)
- 和windows简单实用:同时装双系统Linux和Windows(电脑装双系统linux)
- 解决Windows上删除Oracle服务器问题(win删除oracle)
- 安装Windows系统下的Redis服务(windows安装redis)
- Linux与Windows的文件夹共享(linux和windows共享文件夹)
- 切换双系统:Linux与Windows的交互(linux和windows双系统)
- 在Windows下使用cmd命令运行MySQL数据库(cmd命令运行mysql)
- [下载] 英特尔推出兼容Windows 11的30.0.100.9805 DCH图形驱动程序
- 安装KB5005033更新后部分Windows 10用户发现Alt+Tab切换出现问题
- 使用php+xslt在windows平台上