接上一篇,es部署很简单,很快就弄好了。

但是还是有很多不玩美。

比如说:主机是本地的ip或机器名,端口是固定的9200. 而且是只有一个节点,我要在一台机器上部署多个节点呢。

经过一段时间的摸索,做起来也很简单,但过程切实很痛苦。

具体做法是:你想部署多少个节点,你就重复多少次上一步的做法。启动就可以啦。

但是仅仅这样,所有的配置都是默认的,看起来很不舒服,这时你就要更改一个配置文件:..\elasticsearch-7.2.0\config\elasticsearch.yml

1.  我部署了三个节点, 具体如下:

node-1:

# ======================== elasticsearch configuration =========================
#
# note: elasticsearch comes with reasonable defaults for most settings.
# before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# the primary way of configuring a node is via this file. this template lists
# the most important settings you may want to configure for a production cluster.
#
# please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ———————————- cluster ———————————–
#
# use a descriptive name for your cluster:
#
cluster.name: owen
#
# ———————————— node ————————————
#
# use a descriptive name for the node:
#
node.name: node-1
node.master: true
node.data: true
#
# add custom attributes to the node:
#
#node.attr.rack: r1
#
# ———————————– paths ————————————
#
# path to directory where to store the data (separate multiple locations by comma):
#
#path.data: e:/services/elk/data/node-1
#
# path to log files:
#
#path.logs: e:/services/elk/logs/node-1
#
# ———————————– memory ———————————–
#
# lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# elasticsearch performs poorly when the system is swapping the memory.
#
# ———————————- network ———————————–
#
# set the bind address to a specific ip (ipv4 or ipv6):
#
network.host: 0.0.0.0
#
# set a custom port for http:
#
http.port: 9200
transport.tcp.port: 9300
#
# for more information, consult the network module documentation.
#
# ——————————— discovery ———————————-
#
# pass an initial list of hosts to perform discovery when this node is started:
# the default list of hosts is [“127.0.0.1”, “[::1]”]
#
discovery.seed_hosts: [“127.0.0.1:9300”, “127.0.0.1:9301”, “127.0.0.1:9302”]
#
# bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: [“127.0.0.1:9300”]
#
# for more information, consult the discovery and cluster formation module documentation.
#
# ———————————- gateway ———————————–
#
# block initial recovery after a full cluster restart until n nodes are started:
#
#gateway.recover_after_nodes: 3
#
# for more information, consult the gateway module documentation.
#
# ———————————- various ———————————–
#
# require explicit names when deleting indices:
#
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: “x-requested-with, content-type, content-length, x-user”

 

node-2:

 

# ======================== elasticsearch configuration =========================
#
# note: elasticsearch comes with reasonable defaults for most settings.
# before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# the primary way of configuring a node is via this file. this template lists
# the most important settings you may want to configure for a production cluster.
#
# please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ———————————- cluster ———————————–
#
# use a descriptive name for your cluster:
#
cluster.name: owen
#
# ———————————— node ————————————
#
# use a descriptive name for the node:
#
node.name: node-2
node.master: false
node.data: true
#
# add custom attributes to the node:
#
#node.attr.rack: r1
#
# ———————————– paths ————————————
#
# path to directory where to store the data (separate multiple locations by comma):
#
#path.data: e:/services/elk/data/node-2
#
# path to log files:
#
#path.logs: e:/services/elk/logs/node-2
#
# ———————————– memory ———————————–
#
# lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# elasticsearch performs poorly when the system is swapping the memory.
#
# ———————————- network ———————————–
#
# set the bind address to a specific ip (ipv4 or ipv6):
#
network.host: 0.0.0.0
#
# set a custom port for http:
#
http.port: 9201
#
# for more information, consult the network module documentation.
#
# ——————————— discovery ———————————-
#
# pass an initial list of hosts to perform discovery when this node is started:
# the default list of hosts is [“127.0.0.1”, “[::1]”]
#
discovery.seed_hosts: [“127.0.0.1:9300”, “127.0.0.1:9301”, “127.0.0.1:9302”]
#
# bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: [“127.0.0.1:9300”]
#
# for more information, consult the discovery and cluster formation module documentation.
#
# ———————————- gateway ———————————–
#
# block initial recovery after a full cluster restart until n nodes are started:
#
#gateway.recover_after_nodes: 3
#
# for more information, consult the gateway module documentation.
#
# ———————————- various ———————————–
#
# require explicit names when deleting indices:
#
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: “x-requested-with, content-type, content-length, x-user”

node-3:

# ======================== elasticsearch configuration =========================
#
# note: elasticsearch comes with reasonable defaults for most settings.
# before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# the primary way of configuring a node is via this file. this template lists
# the most important settings you may want to configure for a production cluster.
#
# please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ———————————- cluster ———————————–
#
# use a descriptive name for your cluster:
#
cluster.name: owen
#
# ———————————— node ————————————
#
# use a descriptive name for the node:
#
node.name: node-3
node.master: false
node.data: true
#
# add custom attributes to the node:
#
#node.attr.rack: r1
#
# ———————————– paths ————————————
#
# path to directory where to store the data (separate multiple locations by comma):
#
#path.data: e:\services\elk\data\node-3
#
# path to log files:
#
#path.logs: e:\services\elk\logs\node-3
#
# ———————————– memory ———————————–
#
# lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# elasticsearch performs poorly when the system is swapping the memory.
#
# ———————————- network ———————————–
#
# set the bind address to a specific ip (ipv4 or ipv6):
#
network.host: 0.0.0.0
#
# set a custom port for http:
#
http.port: 9202
#
# for more information, consult the network module documentation.
#
# ——————————— discovery ———————————-
#
# pass an initial list of hosts to perform discovery when this node is started:
# the default list of hosts is [“127.0.0.1”, “[::1]”]
#
discovery.seed_hosts: [“127.0.0.1:9300”, “127.0.0.1:9301”, “127.0.0.1:9302”]
#
# bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: [“127.0.0.1:9300”]
#
# for more information, consult the discovery and cluster formation module documentation.
#
# ———————————- gateway ———————————–
#
# block initial recovery after a full cluster restart until n nodes are started:
#
#gateway.recover_after_nodes: 3
#
# for more information, consult the gateway module documentation.
#
# ———————————- various ———————————–
#
# require explicit names when deleting indices:
#
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: “*”
http.cors.allow-headers: “x-requested-with, content-type, content-length, x-user”

具体代表什么意思请参考: