本篇文章是基于CentOS安装ElasticSearch 系统:CentOS7.9 CPU架构:x86 ElasticSearch 版本7.5.1
1 安装Elasticsearch
1.1 创建普通用户
ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。 创建一个es专门的用户(必须)
使用root 用户在机器上执行以下命令
useradd elastic
passwd elastic
1.2 为普通用户elastic添加sudo权限
为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作 三台机器使用root用户执行visudo 命令然后为es 用户添加权限
visudo
elastic ALL=(ALL) ALL
1.3 上传压缩包并解压缩
将es的安装包下载并上传到服务器的/opt/software 路径下,然后进行解压。使用elastic 用户来执行以下操作。
mkdir -p /opt/module/es
chown -R elastic /opt/module/es
su elastic
cd /opt/software/
tar -zvxf elasticsearch-7.5.1-linux-x86_64.tar.gz -C /opt/module/es
1.4 修改配置文件
1.4.1 修改elasticsearch.yml
服务器使用elastic用户来修改配置文件
cd /opt/module/es/elasticsearch-7.5.1/config
mkdir -p /opt/module/es/elasticsearch-7.5.1/log
mkdir -p /opt/module/es/elasticsearch-7.5.1/data
vim elasticsearch.yml
node.name: node-1
network.host: 192.168.88.90
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
1.4.2 修改jvm.option
修改jvm.option配置文件,调整jvm堆内存大小。使用elastic用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整。
cd /opt/module/es/elasticsearch-7.5.1/config
vim jvm.options
-Xms2g
-Xmx2g
1.5 修改系统配置, 解决启动时候的问题
由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚。
1.5.1 普通用户打开文件的最大限制
问题错误信息描述: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错。 使用elastic 用户执行以下命令解除打开文件数据的限制:
sudo vim /etc/security/limits.conf
添加如下内容,注意* 不要去掉
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
此文件修改后需要重新登录用户,才会生效
1.5.2 普通用户启动线程数限制
问题错误信息描述 max number of threads [1024] for user [es] likely too low, increase to at least [4096]
修改普通用户可以创建的最大线程数
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
原因:无法创建本地线程问题,用户最大可创建线程数太小 解决方案:修改90-nproc.conf 配置文件。 机器使用elastic 用户执行以下命令修改配置文件:
Centos6
sudo vim /etc/security/limits.d/90-nproc.conf
Centos7
sudo vim /etc/security/limits.d/20-nproc.conf
* soft nproc 1024
* soft nproc 4096
1.5.3 普通用户调大虚拟内存
错误信息描述: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
调大系统的虚拟内存 原因:最大虚拟内存太小 启动机器都手动执行下。
sudo sysctl -w vm.max_map_count=262144
sudo vim /etc/sysctl.conf
在最后添加一行
vm.max_map_count=262144
1.6 启动ES服务
使用elastic 用户执行以下命令启动es服务
nohup /opt/module/es/elasticsearch-7.5.1/bin/elasticsearch 2>&1 &
启动成功之后jsp即可看到es的服务进程,并且访问页面 http://192.168.88.90:9200/?pretty 能够看到es启动之后的一些信息
|