Win下的ES集群的配置+es-head的配置
1.安装包的准备
JDK准备:
由于ElasticSearch 5.x 往后依赖于JDK 1.8的,所以现在我们下载JDK 1.8或者更高版本。
下载JDK1.8,下载完成后安装。
ES安装包+es-head+node.js:
链接:百度云直达
提取码:1fiz
2.安装包解压
2.1 JDK环境检验: java -version
确保JDK为1.8+
2.2 es安装包解压备用:
es 包解压后,复制三份:
es-head解压备用: 直接解压zip包就行
node安装备用: 这个需要安装,自定义选择自己规划好的目录,我这边相关ES的都放在了一块,在安装的时候注意添加环境变量
3.环境配置
3.1 node环境配置
3.1.1 dos窗口查看是否安装成功,使用命令:node -v,出现如下截图,则说明安装成功:
3.1.2 安装grunt
在node安装路径下,使用命令安装:npm install -g grunt-cli
安装结束后,使用命令grunt -version查看是否安装成功,出现如下截图,说明安装成功。
选中目录,敲CMD进入dos窗口,并执行安装语句
3.2 安装pathomjs
在dos窗口进入到head路径下,执行:npm install
使用命令npm start启用服务,出现如下截图,则说明服务启动成功
退出:Ctrl + C
3.3 ES集群配置:
修改每个节点中config下的elasticsearch.yml配置文件
node-1:
# 配置es集群的名称:三个节点必须一样
cluster.name: my-application
# 节点名称:三个节点不相同:node-1 node-2 node-3
node.name: node-1
# 指定该节点是否有资格被选举成为node
node.master: true
# 指定该节点是否存储索引数据,默认为true
node.data: true
# 设置绑定的IP地址,还有其他节点和该节点交互的IP地址,本机ip
network.host: 127.0.0.1
# 指定http端口
http.port: 9200
# 设置节点间交互的tcp端口,默认9300
transport.tcp.port: 9300
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
# 因为另外两台节点的端口自会设置为9301和9302,所以写入两台es的完整地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 初始化主节点,在启动集群时,指定一个指定node-1为主节点
cluster.initial_master_nodes: node-1
# 使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
node-2:
cluster.name: my-application
node.name: node-2
node.master: true
node.data: true
network.host: 127.0.0.1
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
cluster.initial_master_nodes: node-1
http.cors.enabled: true
http.cors.allow-origin: "*"
node-3:
cluster.name: my-application
node.name: node-3
node.master: true
node.data: true
network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
cluster.initial_master_nodes: node-1
http.cors.enabled: true
http.cors.allow-origin: "*"
node-1节点中:http.port: 9200和transport.tcp.port: 9300切记使用默认,不然到最后会出现es-head挂载不上node-2,node-3节点,只显示master节点,解决办法:
- 进到节点2、3的/elasticsearch-7.6.1/data/目录下删除nodes文件,之后重启节点2、3的es进程即可
4 集群启动
4.1 启动ES集群
逐一启动每个es节点,运行每个节点下bin目录中的elasticsearch.bat文件
node-1:
node-2:
node-3:
在启动的过程中,若出现闪退的情况;更改JVM的配置:config\jvm.options,默认1g,改小即可
若想看报错日志的情况,此时可以通过cmd命令框执行bat启动文件,就可以看到报错信息了,然后进行对应的修改即可。
4.1 启动es-head插件
集群验证
登录es-head
5 问题总结:
5.1 grunt不是内部或外部命令
使用命令npm start启用服务时,报grunt不是内部或外部命令,如下所示:
解决办法:
将node安装路径,加到环境变量path路径下,重启dos窗口即可。
5.2 head服务启用失败
使用npm start命令启用服务,报错如下:
解决办法:
在es路径下执行命令 npm install,因为没有安装pathomjs,所以导致报错
5.3 提示未连接
head服务启用成功,通过localhost:9100访问,提示集群健康值:未连接
解决办法:
需要在elasticsearch.yml文件中增加以下配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
说明:
http.cors.enabled:true 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allowed.origin:“*” 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
重启服务,再次访问,则恢复正常
鲜衣怒马少年时,不负韶华行且知