Elasticsearch5.3.2 安装以及遇到的一些问题

18 2017-05-11 07:07:39

前言

随着网站里面的数据越来越多,并且网站有时候成绩的上传并不是结构化的数据,所以现在准备把网站升级成为真正的搜索。于是准备使用Elasticsearch+scarpy+django升级网站服务。

Elasticsearch安装

Elasticsearch安装对我来说主要考虑的问题是中文分词,支持Elasticsearch的分词有jieba分词和ik分词。jieba分词只支持到2.x版本的Elasticsearch,所以最终选择了5.3.2版本。

下载地址

Elasticsearch历史版本,挑选版本进行下载。

Elasticsearch运行

下载了以后,直接解压,然后运行/bin/elasticsearch。

运行中遇到的问题

  1. 不能以root运行
    Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at 
    org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at 
    org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at 
    org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) at
    org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.
    
    解决方法: elasticsearch安装以及解决root不能启动的方法

  2. 内存不足
    There is insufficient memory for the Java Runtime Environment to continue.
    

    解决方法: 打开vim config/jvm.options 找到-Xms2g -Xmx2g改成如下


    #Xms represents the initial size of total heap space #Xmx represents the maximum size of total heap space -Xms512m -Xmx512m
  3. 硬限制

    max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] max number of threads [1024] for user [hadoop] is too low, increase to at least [2048] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    解决方法: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 切换到root用户 ulimit -Hn 查看硬限制 vim /etc/security/limits.conf 添加下面设置 hadoop是用户 hadoop soft nofile 65536 hadoop hard nofile 65536 退出用户重新登录,使配置生效 重新 ulimit -Hn 查看硬限制 会发现数值有4096改成65535 vim /etc/security/limits.d/90-nproc.conf 找到如下内容: soft nproc 1024 修改为 soft nproc 2048 vi /etc/sysctl.conf 添加下面配置: vm.max_map_count=655360 并执行命令: sysctl -p

    来源:https://my.oschina.net/u/2510243/blog/810520