下载安装包

下载地址为:Elasticsearch 5.5.2 | Elastic,下载tar版本的安装包

安装

安装jre1.8

运行Elasticsearch5.5.2需要jre1.8及以上,安装jre过程查看博客:CentOS7 安装和配置 jre1.8 | LeDao 的博客 (zoutl.cn)

上传到Linux服务器

在/home目录下创建一个名称为es的目录,然后将下载好的文件上传到这个目录

解压安装包

通过以下命令解压完成后,就已经安装完成了

1
tar -zxvf elasticsearch-5.5.2.tar.gz

运行

新建用户并赋予权限

新建一个用户elastic专门运行Elasticsearch,因为root用户一般不用来运行Elasticsearch的,输入以下三条命令:

1
2
3
4
5
6
7
8
#新建一个名为elastic的用户
useradd elastic

#把目录权限赋予给elastic
chown -R elastic:elastic /home/es/elasticsearch-5.5.2/

#切换当前身份为elastic
su elastic

第一次运行

输入以下命令运行Elasticsearch:

1
sh /home/es/elasticsearch-5.5.2/bin/elasticsearch

可能出现的报错

报错1

之所以会报错,是因为Elasticsearch需要的运行内存过大(Elasticsearch默认需要的运行内存为2G,而我的虚拟机的运行内存也是2G,所以这个虚拟机是运行不了Elasticsearch的),解决办法:修改Elasticsearch默认需要的运行内存,该配置文件在/home/es/elasticsearch-5.5.2/config目录下,文件名称为jvm.options,我修改为128M(内存过小Elasticsearch会自动挂掉,所以还是将虚拟机内存修改为4G比较好)

报错2

关于[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]的解决办法如下:(每个进程最大同时打开文件数太小)

切换到root用户

修改/etc/security/limits.conf文件,添加或修改如下行:

1
2
*               hard    nofile            65536
* soft nofile 65536

然后再切换到elastic用户,一定要切换,不然上面的配置不会立即生效,查看当前每个进程最大同时打开文件数的两个命令如下:

1
2
ulimit -Hn
ulimit -Sn

关于[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]的解决办法如下:

切换root用户

  1. 方法一:输入命令,不推荐使用此方法,此方法只是临时有效,系统重启后就会失效

    1
    sudo sysctl -w vm.max_map_count=2621441
  2. 方法二:修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144,保存后要执行下面一条命令让配置生效,推荐使用此方法,系统重启后也有效

    1
    sudo sysctl -p /etc/sysctl.conf

再次运行

切换到elastic用户,再次输入以下命令运行Elasticsearch

1
sh /home/es/elasticsearch-5.5.2/bin/elasticsearch

上面的命令是在前台运行Elasticsearch,一般都是在后台运行以方便进行其它操作,停止Elasticsearch使用快捷键CTRL+C,后台运行的命令如下:(也就是在之前的命令后面加上-d

1
sh /home/es/elasticsearch-5.5.2/bin/elasticsearch -d

使用以下命令查看Elasticsearch是否启动成功,出现下图的信息说明启动成功

1
ps -ef | grep elasticsearch

验证服务是否正常

验证服务是否正常运行,执行以下命令:

1
curl http://localhost:9200

如果正常就会出现下图的信息

允许外网连接

修改配置

在/home/es/elasticsearch-5.5.2/config/elasticsearch.yml中找到并修改下图的配置

重启Elasticsearch服务

  1. 查看Elasticsearch服务的进程号

    1
    ps -ef | grep elasticsearch

  2. 关闭进程

    1
    kill -9 2328
  3. 再次启动Elasticsearch

    1
    sh /home/es/elasticsearch-5.5.2/bin/elasticsearch -d

关闭防火墙

通过以下两条命令关闭防火墙并且设置开机不要启动

1
2
3
4
5
#关闭
systemctl stop firewalld

#禁止开机启动
systemctl disable firewalld

在电脑上的浏览器输入虚拟机IP:9200,出现下图的结果说明外网连接成功

PS.

如果修改了配置不生效,那就切换一下当前身份:在root身份修改了配置后,再将当前身份切换到elastic身份