环境

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

踩坑之路1

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

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

这里写图片描述

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

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

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

这里写图片描述

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

[elsearch@192 bin]$ ./elasticsearch

这里写图片描述

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

踩坑之路2

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

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

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

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

#启动后这点应该是只有虚拟机会发生的错误
#进程限制、线程限制、虚拟机内存限制。。。
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]

这里参考各界前辈的博客加以解决:
http://www.cnblogs.com/sloveling/p/elasticsearch.html
https://www.cnblogs.com/woxpp/p/6061073.html

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

这里写图片描述
节点正常启动,最后一行输出为started,即启动成功!

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

这里写图片描述

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐