先准备 集群环境和安装包,elasticsearch 的集群搭建很方便,不需要任何第三方的支持,只需要再配置文件里配置一些参数即可。

一、虚拟机的话先关防火墙

systemctl stop firewalld
systemctl disable firewalld

二、没有java 需要安装java (1.8版本或以上)

腾讯、阿里云服务器安装java全流程(yum安装java超简单详细版)_Swing_yue的博客-CSDN博客_服务器怎么安装java
参考:

https://blog.csdn.net/Swing_yue/article/details/121194673?spm=1001.2014.3001.5501

三、安装elasticsearch


下载安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz


解压

tar -xzf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /usr/local/


然后去到这个文件夹下

cd /usr/local/elasticsearch-7.2.1/


进入cofig目录修改elasticsearch.yml配置文件 

vim elasticsearch.yml 


#修改内容
 

#集群名称(此名称在任何节点的配置文件下都是一致的)
cluster.name: my-application
#节点名称(这里需要修改,第一个节点是 node-1,配置第二个节点的时候就是 node-2)
node.name: node-1
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最⼤集群节点数
node.max_local_storage_nodes: 3
#⽹关地址
network.host: 0.0.0.0
#端⼝
http.port: 9200
#内部节点之间沟通端⼝
transport.tcp.port: 9300
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点
# 部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址
discovery.seed_hosts: ["localhost:9300","localhost:9400","localhost:9500"]
#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#数据和存储路径
path.data: /usr/local/elasticsearch-7.2.1/data
path.logs: /usr/local/elasticsearch-7.2.1/logs


去掉前边的 # 然后修改内容就好。

特别是network.host: 0.0.0.0 配置,次配置为允许任何ip地址访问。

然后修改 jvm.options 配置文件

vim jvm.options


#因为是在虚拟机进行安装的ES,所以内存不是很大建议修改一下。若是生产环境不用修改
 

-Xms128m
-Xmx128m


ok

尝试启动

如果是root账号登录的话,是不能够启动的,elasticsearch有安全保护,这点很恶心。

需要用别的用户启动,如果没有或者不知道别的用户名密码就创建一个新的。

adduser test //创建一个账号为 test 的用户
passwd test //为test用户设置密码
//这里需要输入两遍密码,如果密码输入过于简单的时候,会提示密码简单,可以忽略继续设置
chown -R test /usr/local/elasticsearch-7.2.1/ //给test用户赋予操作此文件夹的权限
su test // 使用 test账户操作,如果是 su root 意为使用 root用户操作


然后进入bin目录下启动

sh elasticsearch //为直接执行
sh elasticsearch -d //为后台执行。


我们先直接运行,可以看到日志信息。

启动时提示建议更高版本,可以忽略,不影响正常启动和使用。

 第一次启动报错内存不够。

需要切换回root账户修改两个地方,如果是从root账户su 到其他的用户下,可以直接 exit回到 root用户。

vi /etc/security/limits.conf


//增加4个变量 然后 :wq 保存
 

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096 

vim /etc/sysctl.conf


//增加1个变量然后 :wq 保存
 

vm.max_map_count = 262145


刷新配置:

source /etc/profile


然后用 test 用户再次启动

如果还是报错,用 reboot 命令重启一下,再次启动就好。

然后按照此种方法,重复做就好,如果需要三台服务,那就做三遍,需要注意的是,在修改elasticsearch.yml配置文件的时候,将#节点名称 node.name: node-1 改掉。如果是伪集群,还需要把端口改成不同的,比如 node-1 节点是9200,node-2节点就改成9201.

集群互相访问的端口可以改为9300,9400这样,至于该成什么干个人需要,不冲突就好。

另外一点就是discovery.seed_hosts要改成自己配置节点的ip地址和端口号。

需要注意:这个ip地址为节点之间相互沟通的端口transport.tcp.port: 9300

不是外部访问的端口http.port: 9200
discovery.seed_hosts: ["localhost:9300","localhost:9400","localhost:9500"]

cluster.initial_master_nodes 改为对应的节点名称。

cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

三台集群启动完成后打开浏览器输⼊:

http://localhost:9200/_cat/health?v

,如果返回的node.total是3,代表集 群搭建成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐