ElasticSearch集群
一、ElasticSearch集群
二、集群的相关概念
1、集群 cluster
2、 节点 node
3、分片和复制 shards&replicas
三、环境选择
1、方案一:准备三台机器 每一台机器一个节点
2、方案二:准备一台机器 启动三个节点,用端口号区分即可
3、ES启动依赖于JVM环境 每一个节点默认使用2G内存,可以找到配置文件jvm配置文件修改内存
4、搭建ES集群时,保证每一个节点都是没有数据的
四、环境搭建(方案二)
1、修改JVM配置为512m
2、准备三个ES节点
确保每一个ES节点都有ik分析器和elasticsearch.yml配置文件
http.cors.enabled: true
http.cors.allow-origin: "*"
3、配置ES节点的elasticsearch.yml文件–node1
elasticsearch.yml:
#节点1的配置信息:
#集群名称,保证唯一 每一个节点都是相同的集群名称
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9200
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9300
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
4、配置ES节点的elasticsearch.yml文件–node2
elasticsearch.yml:
#节点2的配置信息:
#集群名称,保证唯一 每一个节点都是相同的集群名称
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
5、配置ES节点的elasticsearch.yml文件–node3
elasticsearch.yml:
#节点3的配置信息:
#集群名称,保证唯一 每一个节点都是相同的集群名称
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
6、依次启动集群
7、启动node.js
grunt server
8、访问 localhost:9100
9、创建新的索引库
请求方式:PUT http://ip:9200/es_test01
请求体:
{
"mappings": {
"article": {
"properties": {
"id": {
"type": "long",
"store": true,
"index":"not_analyzed"
},
"title": {
"type": "text",
"store": true,
"index":"analyzed",
"analyzer":"ik_max_word"
},
"content": {
"type": "text",
"store": true,
"index":"analyzed",
"analyzer":"ik_max_word"
}
}
}
}
}
10、访问localhost:9100查看
11、添加文档document
请求为:POST http://localhost:9200/es_test01/article/1
请求体:
{
"id":1,
"title":"ElasticSearch是一个基于Lucene的搜索服务器", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时 搜索,稳定,可靠,快速,安装使用方便。"
}
12、访问localhost:9100查看
13、多个索引库分片效果