zoukankan      html  css  js  c++  java
  • 安装和启动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,使永久生效。

          

  • 相关阅读:
    word2vec原理推导与代码分析
    vim 删除
    HanLP 配置与使用
    python import 其他 package的模块
    mysql 修改root密码
    Spring Boot 整合 PageHelper
    MyBatis SQL语句构建器
    webpack4
    MySql DCL数据控制语言(对用户权限的设置)
    MySql DQL数据查询语言
  • 原文地址:https://www.cnblogs.com/kumu/p/11443049.html
Copyright © 2011-2022 走看看