elasticSearch的安装与集群

本文详细介绍Elasticsearch 6.3.2版本在CentOS 7上的安装步骤,包括单节点与集群安装过程,以及常见配置项说明,如网络绑定、集群节点设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

elasticSearch的安装

本次安装采用官网最新版本6.3.2,虚拟机采用centos7,es需要依赖jdk环境且最低版本要求jdk8最好是8u131以上,这里jdk的安装不再赘述,自己搞定哦。

单节点安装

1.官网下载最新版的安装包elasticSearch-6.3.2.tar.gz

2.root用户下解压

#解压
tar -xvf elasticsearch-6.3.2.tar.gz

得到解压文件夹elasticsearch-6.3.2这里我们定义为${ES_HOME}

3.创建elasticSearch用户并赋予该用户对${ES_HOME}文件夹的可执行权限

#添加用户
adduser elasticSearch
passwd elasticSearch 根据提示输入两次密码即可
#赋予可执行权限
chown -R elasticSearch@elasticSearch /opt/elasticSearch/
其中后面的路径是我的解压路径

4.su - elasticSearch切换到elasticSearch用户,切换到${ES_HOME}/bin目录下然后执行./elasticsearch命令,若在你的机器配置正常的情况下不会出现任何问题,会看到控制台输出started字样代表启动成功,但是当你Ctrl+C退出当前的session时,服务自动停止,这就是es的前台启动方式。

5.es的后台启动方式

./bin/elasticsearch -d -p pid

其中-d参数代表后台启动,-p参数代表将es的进程id输出到文件pid里面。当我们执行上面的命令时,控制台并没有日志输出。默认的日志输出路径是${ES_HOME}/logs下。我们可以通过查看该目录下的日志文件来查看服务是否启动,或者用jps命令查看是否有es的进程id。

6.es启动遇到的问题

因为我提前配置好了系统参数,所以并没有报错,这里推荐一篇博客es安装过程中常见的问题和处理。下面也贴出我的配置。主要涉及两个文件/etc/security/limits.conf 

es - nofile 65536
es - nproc 4096
es - memlock unlimited

和/etc/sysctl.conf

vm.max_map_count=655360

并执行命令sysctl -p

7.注意事项

默认我们启动依赖的配置文件是${ES_HOME}/config/elasticsearch.yml。因为我们刚刚启动的时候没有修改配置文件,es启动都是默认的配置参数,如果我们注意看启动日志会发现两个端口9200和9300这两个端口是es启动时默认分配的,9200是对外服务端口,外部所有的API请求都是通过这个端口和es服务器通信的,9300是集群间的通信端口,集群中的各个节点就是通过这个端口来发现当前节点并组成集群的。默认没有配置的情况下,es绑定的host地址是回环测试地址127.0.0.1所以此时外部机器是无法通过虚拟机ip加端口的方式访问es的。此时我们需要在elasticsearch.yml中配置一个参数network.host: ip,这里的ip就是我们的虚拟机ip,注意冒号和ip之间有一个空格。最后在防火墙开放端口9200,9300和9100(后面安装插件会用到),具体命令如下 

firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --zone=public --add-port=9100/tcp --permanent
firewall-cmd --reload

此时在你的window机的浏览器上输入ip:9200就可以看到es的节点信息了。

集群安装

前面介绍了单节点的安装,集群安装其实很简单,分别找三天虚拟机,在每台机器上分别按照上面单节点的安装方式安装。这里只贴出其中一个节点的配置:

#集群名字,默认不指定是elasticSearch
cluster.name: my_es_cluster
#节点名字
node.name: es_node1
#是否有成为master的资格
node.master: true
#index数据存放的路径
path.data: /var/elasticSearch/node2/data
#日志输出路径,日志文件以集群名为开始
path.logs: /var/elasticSearch/node2/logs
#启动检查,当我们指定了network.host参数不为回环测试地址而是某一个具体的ip地址时,es集群启动时会认为集群是以production mode模式而非development mode模式启动的,会有引导检查,因为频繁的内存交换会降低es的性能,所以这里是锁住jvm内存,使其不与磁盘发生数据交换,注意指定这个参数时,在config文件夹下还有一个配置文件是jvm.options,用来指定es启动所依赖的jvm环境参数。其中两个参数xms和xmx参数很重要,一定要分配够,官网推荐的最优的是26G最多不超过32G,并且这两个参数的值要相等,防止jvm垃圾回收导致的内存重新分配会使下面的这个参数配置失效
bootstrap.memory_lock: true
#绑定的ip地址,对外服务所依赖
network.host: 192.168.190.131
#api请求服务所依赖的端口
http.port: 9200
#集群内各节点通信端口
transport.tcp.port: 9300
#初始化集群中的节点地址
discovery.zen.ping.unicast.hosts: ["192.168.190.131:9300", "192.168.190.130:9300"]
#这个参数很重要,一般的取值规则是master.node/2+1,可以防止脑裂的情况发生
discovery.zen.minimum_master_nodes: 2 
#下面这两个参数提钱贴出,是安装head插件锁需要的
http.cors.enabled: true
http.cors.allow-origin: "*"

按照上面的配置分别配置三个节点,需要注意的是对data和logs文件夹需要root权限授权,配置完成后逐个启动,通过查看es的日志输出可以看到三个节点已经组成了一个集群。也可以通过执行如下命令查看:

curl -X GET "ip:9200/_cat/health?v"

看到输出如下(这里我是采用的2个节点):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值