安装和启动ElasticSearch服务遇到的几个问题

首先安装和启动服务的教程是参考文章:ES入门之一 安装ElasticSearch

然后在最后的启动es服务时遇到了几个小问题,因此在这里记录一下。

因为我对linux并不是很熟悉,因此文中如果有说错的或者是使用了笨拙的方式的,欢迎指出。

 

1、内存不足问题
  因为练手使用的是aliyun,内存只有1GB,而es默认设置jvm最少需要1GB的堆内存,因此在启动时会报一个内存分配错误,具体的错误截图没保留,因此就不贴了。
  解决方法:修改config/jvm.options里面的-Xms和-Xmx的值为合适大小。

2、can not run elasticsearch as root
  看网上的文章说是不能用root用户启动,需要换其它用户。
  解决方法:我是执行adduser命令新增了一个esuser用户,再把es的文件夹移动到home/esuser下面,再更改es文件夹的拥有者sudo chown -R esuser es文件夹,su esuser然后再执行脚本启动成功。
 
3、es启动是在前台
  启动es后,启动信息都显示在前台,无法切换出去,用ctrl+c会把es的进程关掉
  解决方法:我是用sh ./ bin/elasticsearch -d 来后台启动es的。

4、在aliyun启动服务后,无法在自己的浏览器上访问es服务

  就像开头那个文章链接里说的,服务启动成功后要访问下127.0.0.1:9200来看看服务启动成功没 ,但是在aliyun启动后,ssh里访问127.0.0.1:9200是没问题的,但是我PC浏览器上无法访问。

  这里有两个问题,1是没把9200端口添加到aliyun后台的安全组规则白名单里面,2是es启动默认只监听127.0.0.1(本地环回)

  针对阿里云的安全组规则白名单我就不细说了,网上都有文章的,我这里只说说修改es只监听本地环回问题

  解决方法:修改config/elasticsearch.yml,把network.host前面的注释符号去掉,并把值改为0.0.0.0;把discovery.seed_hosts前面的注释符号去掉,并把值改为0.0.0.0,修改完之后重启服务,然后就能在自己的PC浏览器上访问9200端口了。

  改成0.0.0.0的一个弊端就是公网任何IP段都能直接访问你这个es的端口服务了,这个问题自己斟酌。

        

 

5、当把es监听从本地环回改为0.0.0.0之后,会触发es的启动检查,然后可能会报出如下图的错误(max virtual memory area vm.max_map_count [65530] is too low)

  其中第二条我已经在第4步提前处理了,所以正确执行第4步的是不会出现第2条的。

  至于第一条是因为esUser用户的权限问题,稍微调整一下就行了

  解决方法(针对第1条):先执行sysctl -w vm.max_map_count=262144(具体的值可以根据服务器配置修改下,2的n次方),然后在/etc/sysctl.conf文件最后添加一行vm.max_map_count=262144,使永久生效。

      

 

posted @ 2019-09-01 18:07  枯木fc  阅读(4940)  评论(0编辑  收藏  举报