修改配置
在最后一行新增
立即生效
修改es节点配置
第一个节点
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
39
#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-1
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
#node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
#然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.168.239.129
#设置映射端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9301
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.168.239.129:9300","192.168.239.129:9301","192.168.239.129:9302"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 1
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
#可以跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
第二个节点
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
39
#集群名称
cluster.name: my-es
#当前该节点的名称
node.name: node-2
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#给当前节点自定义属性(可以省略)
#node.attr.rack: r1
#是否开启时锁定内存(默认为是)
#bootstrap.memory_lock: true
#设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,
#然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0
network.host: 0.0.0.0
#设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,
#如果是docker安装节点的IP将会是配置的IP而不是docker网管ip
network.publish_host: 192.168.239.129
#设置映射端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9301
#集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上
discovery.seed_hosts: ["192.168.239.129:9300","192.168.239.129:9301","192.168.239.129:9302"]
#当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,
#其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,
#如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#在群集完全重新启动后阻止初始恢复,直到启动N个节点
#简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,
gateway.recover_after_nodes: 2
#删除索引是是否需要显示其名称,默认为显示
#action.destructive_requires_name: true
#可以跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
遇到问题
启动失败
启动代码
1
2
3
4
5
6
7
8
9
10
11
docker run --name es1 -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/es1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged=true -d elasticsearch:7.14.0
docker run --name es2 -p 9201:9201 -p 9301:9301 \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/es2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d --privileged=true elasticsearch:7.14.0
启动时设置了内存,报错:ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: initial heap size [67108864] not equal to maximum heap size [134217728]; this can cause resize pauses
把xms和xmx设置一样大小启动成功
<h2><a id="_0"></a>修改配置</h2>
<pre><div class="hljs"><code class="lang-bash">vi /etc/sysctl.conf
</code></div></pre>
<p>在最后一行新增</p>
<pre><div class="hljs"><code class="lang-shell">vm.max_map_count=262144
</code></div></pre>
<p>立即生效</p>
<pre><div class="hljs"><code class="lang-shell">/sbin/sysctl -p
</code></div></pre>
<h2><a id="es_18"></a>修改es节点配置</h2>
<h3><a id="_19"></a>第一个节点</h3>
<pre><div class="hljs"><code class="lang-shell"><span class="hljs-meta">#</span><span class="bash">集群名称</span>
cluster.name: my-es
<span class="hljs-meta">#</span><span class="bash">当前该节点的名称</span>
node.name: node-1
<span class="hljs-meta">#</span><span class="bash">是不是有资格竞选主节点</span>
node.master: true
<span class="hljs-meta">#</span><span class="bash">是否存储数据</span>
node.data: true
<span class="hljs-meta">#</span><span class="bash">最大集群节点数</span>
<span class="hljs-meta">#</span><span class="bash">node.max_local_storage_nodes: 3</span>
<span class="hljs-meta">#</span><span class="bash">给当前节点自定义属性(可以省略)</span>
<span class="hljs-meta">#</span><span class="bash">node.attr.rack: r1</span>
<span class="hljs-meta">#</span><span class="bash">是否开启时锁定内存(默认为是)</span>
<span class="hljs-meta">#</span><span class="bash">bootstrap.memory_lock: <span class="hljs-literal">true</span></span>
<span class="hljs-meta">#</span><span class="bash">设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,</span>
<span class="hljs-meta">#</span><span class="bash">然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0</span>
network.host: 0.0.0.0
<span class="hljs-meta">#</span><span class="bash">设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,</span>
<span class="hljs-meta">#</span><span class="bash">如果是docker安装节点的IP将会是配置的IP而不是docker网管ip</span>
network.publish_host: 192.168.239.129
<span class="hljs-meta">#</span><span class="bash">设置映射端口</span>
http.port: 9201
<span class="hljs-meta">#</span><span class="bash">内部节点之间沟通端口</span>
transport.tcp.port: 9301
<span class="hljs-meta">#</span><span class="bash">集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写</span>
<span class="hljs-meta">#</span><span class="bash">es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上</span>
discovery.seed_hosts: ["192.168.239.129:9300","192.168.239.129:9301","192.168.239.129:9302"]
<span class="hljs-meta">#</span><span class="bash">当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,</span>
<span class="hljs-meta">#</span><span class="bash">其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,</span>
<span class="hljs-meta">#</span><span class="bash">如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上</span>
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
<span class="hljs-meta">#</span><span class="bash">在群集完全重新启动后阻止初始恢复,直到启动N个节点</span>
<span class="hljs-meta">#</span><span class="bash">简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,</span>
gateway.recover_after_nodes: 1
<span class="hljs-meta">#</span><span class="bash">删除索引是是否需要显示其名称,默认为显示</span>
<span class="hljs-meta">#</span><span class="bash">action.destructive_requires_name: <span class="hljs-literal">true</span></span>
<span class="hljs-meta">#</span><span class="bash">可以跨域访问</span>
http.cors.enabled: true
http.cors.allow-origin: "*"
</code></div></pre>
<h3><a id="_63"></a>第二个节点</h3>
<pre><div class="hljs"><code class="lang-shell"><span class="hljs-meta">#</span><span class="bash">集群名称</span>
cluster.name: my-es
<span class="hljs-meta">#</span><span class="bash">当前该节点的名称</span>
node.name: node-2
<span class="hljs-meta">#</span><span class="bash">是不是有资格竞选主节点</span>
node.master: true
<span class="hljs-meta">#</span><span class="bash">是否存储数据</span>
node.data: true
<span class="hljs-meta">#</span><span class="bash">最大集群节点数</span>
node.max_local_storage_nodes: 3
<span class="hljs-meta">#</span><span class="bash">给当前节点自定义属性(可以省略)</span>
<span class="hljs-meta">#</span><span class="bash">node.attr.rack: r1</span>
<span class="hljs-meta">#</span><span class="bash">是否开启时锁定内存(默认为是)</span>
<span class="hljs-meta">#</span><span class="bash">bootstrap.memory_lock: <span class="hljs-literal">true</span></span>
<span class="hljs-meta">#</span><span class="bash">设置网关地址,我是被这个坑死了,这个地址我原先填写了自己的实际物理IP地址,</span>
<span class="hljs-meta">#</span><span class="bash">然后启动一直报无效的IP地址,无法注入9300端口,这里只需要填写0.0.0.0</span>
network.host: 0.0.0.0
<span class="hljs-meta">#</span><span class="bash">设置其它结点和该结点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址,设置当前物理机地址,</span>
<span class="hljs-meta">#</span><span class="bash">如果是docker安装节点的IP将会是配置的IP而不是docker网管ip</span>
network.publish_host: 192.168.239.129
<span class="hljs-meta">#</span><span class="bash">设置映射端口</span>
http.port: 9201
<span class="hljs-meta">#</span><span class="bash">内部节点之间沟通端口</span>
transport.tcp.port: 9301
<span class="hljs-meta">#</span><span class="bash">集群发现默认值为127.0.0.1:9300,如果要在其他主机上形成包含节点的群集,如果搭建集群则需要填写</span>
<span class="hljs-meta">#</span><span class="bash">es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点,也就是说把所有的节点都写上</span>
discovery.seed_hosts: ["192.168.239.129:9300","192.168.239.129:9301","192.168.239.129:9302"]
<span class="hljs-meta">#</span><span class="bash">当你在搭建集群的时候,选出合格的节点集群,有些人说的太官方了,</span>
<span class="hljs-meta">#</span><span class="bash">其实就是,让你选择比较好的几个节点,在你节点启动时,在这些节点中选一个做领导者,</span>
<span class="hljs-meta">#</span><span class="bash">如果你不设置呢,elasticsearch就会自己选举,这里我们把三个节点都写上</span>
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
<span class="hljs-meta">#</span><span class="bash">在群集完全重新启动后阻止初始恢复,直到启动N个节点</span>
<span class="hljs-meta">#</span><span class="bash">简单点说在集群启动后,至少复活多少个节点以上,那么这个服务才可以被使用,否则不可以被使用,</span>
gateway.recover_after_nodes: 2
<span class="hljs-meta">#</span><span class="bash">删除索引是是否需要显示其名称,默认为显示</span>
<span class="hljs-meta">#</span><span class="bash">action.destructive_requires_name: <span class="hljs-literal">true</span></span>
<span class="hljs-meta">#</span><span class="bash">可以跨域访问</span>
http.cors.enabled: true
http.cors.allow-origin: "*"
</code></div></pre>
<h2><a id="_107"></a>遇到问题</h2>
<h3><a id="_108"></a>启动失败</h3>
<p>启动代码</p>
<pre><div class="hljs"><code class="lang-shell">docker run --name es1 -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/es1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged=true -d elasticsearch:7.14.0
docker run --name es2 -p 9201:9201 -p 9301:9301 \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/es2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d --privileged=true elasticsearch:7.14.0
</code></div></pre>
<p>启动时设置了内存,报错:ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.<br />
bootstrap check failure [1] of [1]: initial heap size [67108864] not equal to maximum heap size [134217728]; this can cause resize pauses</p>
<p>把xms和xmx设置一样大小启动成功</p>