环境

  1. 一台linux虚拟机(centos7)
  2. 此虚拟机安装好了JDK1.8(SUN公司的)
  3. 下载最新的elasticsearch6.1.1

踩坑之路1

首先去官网下载:​​https://www.elastic.co/cn/downloads​​,我这里下载的是最新版,版本迭代很快,现在是6.1.1版本的。

下载好tar包后随意找一个路径进行压缩,我这里是在/opt下创建的。解压好后:

elasticsearch6.1.1单例初体验(虚拟机下安装)_elasticsearch6.1.1

#注意这里,我是用root账号执行的命令
[root@192 elasticsearch-6.1.1]# ./bin/elasticsearch
./bin/elasticsearch

因为root账号涉及到安全权限的问题,elasticsearch处于安全考虑,会限制root启动,于是有了第一次的报错,如下:

elasticsearch6.1.1单例初体验(虚拟机下安装)_虚拟机centos7_02

can not run elasticsearch as root

解决方案:

#创建一个用户组
1.groupadd elasearch
#添加用户到用户组下
2.useradd elsearch -g elsearch -p elasticsearch
#赋予权限
3.chown -R elsearch:elasearch elasticsearch
#在root权限下,使用如下命令赋权给文件夹,没有此步会报错如下图的错
4.chown -R elsearch /opt/elasticsearch-6.1.1

elasticsearch6.1.1单例初体验(虚拟机下安装)_elasticsearch_03

创建好新的账号后,用elsearch这个账号去启动程序:

[elsearch@192 bin]$ ./elasticsearch

elasticsearch6.1.1单例初体验(虚拟机下安装)_虚拟机centos7_04

虚拟机到此启动完毕,且没有报错,如果不是用xshell进行连接的话,我可能就直接用虚拟机中的浏览器进行127.0.0.1:9200的测试了,最终目的是想用本机访问虚拟机ip以及端口测试成功!于是有了下面的踩坑之路2……

踩坑之路2

启动成功后,发现用本机对虚拟机的ip地址进行访问,居然报出404,第一个想到的就是防火墙没有关闭。于是用下面命令关掉防火墙:

#centos7 的命令有可能不一样,这里我也不太熟悉,反正是百度的
systemctl stop firewalld.service

经修改后,测试还是未果。于是看了一下elasticsearch默认的配置文件,里面有项network的属性,这点和大部分开源软件一样的外网访问配置。

#修改之前建议备份一下原来初始的
vim config/elasticsearch.yml

elasticsearch6.1.1单例初体验(虚拟机下安装)_虚拟机centos7_05

保存后继续启动。启动后发现又报错了。。

elasticsearch6.1.1单例初体验(虚拟机下安装)_单例安装_06

看了一下英文,发现是刚才修改的格式有问题,所以导致解析配置文件失败了。于是再次寻找。。。。

elasticsearch6.1.1单例初体验(虚拟机下安装)_elasticsearch_07

保存后退出,继续启动。。。。。

elasticsearch6.1.1单例初体验(虚拟机下安装)_elasticsearch6.1.1_08

#启动后这点应该是只有虚拟机会发生的错误
#进程限制、线程限制、虚拟机内存限制。。。
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3782] for user [elsearch] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


具体我就不写了,真正的测试环境下应该是不会出现这种情况的,虚拟机的限制太低了。
将这三个问题配置解决好后,再次启动,如下:

elasticsearch6.1.1单例初体验(虚拟机下安装)_各种安装错误_09


节点正常启动,最后一行输出为started,即启动成功!

在用本机浏览器进行访问如下:

elasticsearch6.1.1单例初体验(虚拟机下安装)_各种安装错误_10

可以看到,已经配置成功啦!到此完成。。。。这次是被虚拟机坑了一波。。时间略长了…..