ElasticSearch集群的搭建

#相关技术点

in-memory buffer是通过refresh操作写到文件缓冲区的,refresh的过程除了在文件缓冲区生成这个文件以外,还会让底层Lucene的index reader打开这个文件,让新生成的这个文件对搜索可见。

周五的时候跟同事讨论下了,不知道这样理解对不对–refresh类似于 outputstream flush(此时数据从 java heap 写到 memory buffer),之后(按照大神上面说的)index reader读取新文件,然后等待触发flush(这个则类似于 outputstream close,此时数据从 memory buffer 写到 disk),请大神赐教

集群配置

集群包括3台物理机共12个节点,每台物理机部署1个Master节点,1个Client节点,2个Data节点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# ---------------------------------- Cluster -----------------------------------
#集群名称
cluster.name:
# ------------------------------------ Node ------------------------------------
#节点名称
node.name:
#是否是Master Node
node.master: true
#是否是Data Node
node.data: false
#是否是Ingest Node
node.ingest: false
node.attr.rack: first
# ----------------------------------- Paths ------------------------------------
# Path to log files:
#可以指定es的数据存储目录,默认存储在es_home/data目录下
#path.data: /path/to/data
#可以指定es的日志存储目录,默认存储在es_home/logs目录下
#path.logs: /path/to/logs
# ----------------------------------- Memory -----------------------------------
#锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区
bootstrap.memory_lock: true
#CentOS下不支持SecComp,故而需要设置成false
bootstrap.system_call_filter: false
# ---------------------------------- Network -----------------------------------
network.host: 192.168.1.97
http.port: 9200
transport.tcp.port: 9300
# --------------------------------- Discovery ----------------------------------
#
discovery.zen.ping.unicast.hosts: ["192.168.1.97:9300","192.168.1.98:9300","192.168.1.113:9300"]
#理论上是 masternum/2+1,防止脑裂
discovery.zen.minimum_master_nodes: 2
# ---------------------------------- Various -----------------------------------
xpack.security.enabled: false
#支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

参考文档

Linux sandboxing机制

从内核文件系统看文件读写过程

评论