搭建
搞定三台阿里云轻量级服务器
ip内网 | ip公网 | 角色 |
172.116.1.100 | 47.100.1.100 | master |
172.116.1.101 | 47.100.1.101 | salve |
172.116.1.102 | 47.100.1.102 | salve |
搞定三台机器的网络配置,
前提:在阿里云轻量级应用管理控制台开启端口9200
1.上传ElasticSearch部署包,以elasticsearch.tar.gz elasticsearch-7.2.0为例
2.修改jvm内存 jvm.options
vim jvm.options
设置堆内存(根据自己机器决定)
-Xms512m
-Xmx512m
3.修改elasticsearch.yml
#集群名称
cluster.name: es-jyong
#节点名称
node.name: jyong-node
#是否是主节点
node.master: true
#ip 本机地址
network.host: 0.0.0.0
#是否存储数据
node.data: true
#数据存储的路径
path.data: /usr/local/share/software/elasticsearch-7.2.0/data
#logs日志存储的信息
path.logs: /usr/local/share/software/elasticsearch-7.2.0/logs
#公网ip(一点要设置)
network.publish_host: 47.116.1.156
#端口
http.port: 9200
#trasnport端口
transport.tcp.port: 9300
#初始化主节点
cluster.initial_master_nodes: ["47.116.1.156"]
#是否跨域
http.cors.enabled: true
#锁定物理内存,防止es内存被交换出去,避免es使用swap交换分区
bootstrap.memory_lock: false
#操作系统检测
bootstrap.system_call_filter: false
http.cors.allow-origin: "*"
## ping超时时长,默认3S,适当修改,防止脑裂
discovery.zen.fd.ping_timeout: 1000s
discovery.zen.fd.ping_retries: 10
3.将配置文件分别分发到各台服务器上
4.将ElasticSearch 权限赋与权限
5.增加用户 使用命令 useradd xxx
6.给所有Elasticsearch
chown -r elasticsearch-7.2.0/*
7.使用xxx用户进行启动
su xxx
集群启动
到bin目录下
./elasticsearch
#后台启动
./elasticsearch -d
通常会出现异常
异常解决
ERROR: [1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked
需要设置下系统配置文件,首先要切换到root用户,接着做以下修改:
1、修改/etc/security/limits.conf
文件最后添加以下内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited
2、然后再修改limits.conf
文件,我们同样切换到root用户,打开limits.conf
文件,
vim /etc/security/limits.conf
#在文件的最后添加elasticsearch - nofile 65535,然后保存退出。
elasticsearch - nofile 65535
3.修改/etc/sysctl.conf文件配置项:
# 一个进程可以拥有的VMA(虚拟内存区域)的数量:
vm.max_map_count=262144
# 调用虚拟内存的阈值数:
vm.swappiness=1
#禁用IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
若出现端口占用问题:
使用命令:
ps -aux | grep 9200
然后杀掉即可
kill -9 端口
若找不到,使用命令netstat,然后kill掉
netstat -anltp|grep 端口
解决后重新启动集合
常用配置信息:
基本信息
属性 | 缺省值 | 描述 |
cluster.name | federated_cluster | Elasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。 |
node.name | node1 | Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。 |
transport.tcp.port | 9300 | 用于某个集群中 Elasticsearch 节点之间的通信的端口。 |
discovery.zen.ping.unicasts.hosts | localhost | 提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。 例如: discovery.zen.ping.unicast.hosts: ["192.168.2.10", "192.168.2.11","192.168.2.12"]
有关更多信息,请参阅 Elasticsearch 文档 。 |
配置属性
属性 | 缺省值 | 描述 |
cluster.name | federated_cluster | Elasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。 |
node.name | node1 | Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。 |
node.master | true | 指示某个节点是否符合成为主节点的条件。主节点管理 Elasticsearch 集群的状态。在运行时,Elasticsearch 服务会自动提名某一个合格的集群成员成为主节点。 仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。 |
node.data | true | 指示节点是否为数据节点。数据节点包含并管理索引的一部分。 仅当您想要对专用主节点和数据节点采用高级配置时,才将该值设置为 false。此类型的配置并不常用。 |
network.host | 127.0.0.1 | 将绑定地址设置为特定的IP |
http.port | 9200 | 如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口。 |
http.cors.enabled | true | 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。 |
http.cors.allowed.origin | localhost | 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。 |
transport.tcp.port | 9300 | 用于某个集群中 Elasticsearch 节点之间的通信的端口。 |
discovery.zen.minimum_master_nodes | 1 | 指示某个集群定额所需的 Process Federation Server 的数量。 缺省值为 1 表示单服务器环境。对于生产环境,请将该值设置为组成定额所需的 Process Federation Server 的数量。例如,如果在集群中总计有三个 Process Federation Server,请将该值设置为"2",如果在集群中总计有五个 Process Federation Server,请将该值设置为"3"。 有关更多信息,请参阅 Elasticsearch 文档。 |
discovery.zen.ping.multicast.enabled | false | 通过发送节点所接收和响应的一个或多个多点广播请求来提供对其他 Elasticsearch 服务节点的多点广播 ping 发现功能。有关更多信息,请参阅 Elasticsearch 文档。 |
discovery.zen.ping.unicasts.hosts | localhost | 提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。 例如: discovery.zen.ping.unicast.hosts="localhost:9300,localhost:9301,localhost:9302
有关更多信息,请参阅 Elasticsearch 文档 。 |
discovery.zen.ping.timeout | 3s | Elastic 搜索节点等待加入 Elasticsearch 集群的时间。 |