elasticsearch/elasticsearch-rtf安装及错误问题处理

本地mac安装没出现什么问题,直接安装都运行了,最近在阿里云服务器安装的时候各种坑不断的踩,平时也没有习惯写出来的习惯,但是每次安装都好费时间,而且还容易忘记,就自己写一写,留作以后备用.仅是个人安装遇到的问题.

什么是Elasticsearch-RTF

RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,Elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,目的是让你可以下载下来就可以直接的使用(虽然es已经很简单了,但是很多新手还是需要去花时间去找配置,中间的过程其实很痛苦),当然等你对这些都熟悉了之后,你完全可以自己去diy了,跟linux的众多发行版是一个意思。

一、Java环境安装。

因为Elasticsearch是Java环境编写的,所以要有Java环境来支持运行

  1. 检查是否有java(我直接输入java -version看的)


  2. 下载安装包并上传服务器
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


    我这边放到了根目录

     scp jdk-8u162-linux-x64.rpm root@*:/root   - *为ip
    
  3. 安装JDK

     rpm -ivh jdk-8u162-linux-x64.rpm
    
  4. 查看是否安装正常


  5. 就是我们的常规配置环境变量了

     1. vim /etc/profile
     2. JAVA_HOME=/usr/java/jdk1.8.0_162
        JRE_HOME=/usr/java/jdk1.8.0_162/jre
        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
        CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
        export JAVA_HOME JRE_HOME PATH CLASSPATH
     3. source /etc/profile 
    
  6. 手工,开始继续安装我们的主角

二、安装Elasticsearch-rtf

  1. 下载(安装git)

     git clone git://github.com/medcl/elasticsearch-rtf.git -b master --depth 1
    
  1. 运行
    Mac/Linux:

     cd elasticsearch-rtf/bin
     ./elasticsearch
    
  2. 满怀惊喜,结果...

    3.1.

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1973026816 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/wangyw/elasticsearch-rtf/bin/hs_err_pid28563.log

错误原因:由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配
解决方案:

    vim config/jvm.options 
修改如上就可以了

3.2 继续运行

[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.1.1.jar:5.1.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
    ... 6 more

错误原因:因安全因素,不能在root用户下运行
解决方案:

    groupadd es
    useradd es -g es -p es
    chown -R es:es es/elasticsearch-rtf
    su es

然后再次启动
3.3 又出错了,快崩溃了

ERROR: bootstrap checks failed
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法:切换到root用户,编辑limits.conf 添加类似如下内容

    ~ vim /etc/security/limits.conf
    修改内容:* soft nofile 65536

然后重新登录一下用户输入

    ~ ulimit -Hn
      65536

在切回root用户

    ~ vim /etc/sysctl.conf 
      vm.max_map_count=262144
    ~ sysctl -a|grep vm.max_map_count
      sysctl: reading key "net.ipv6.conf.all.stable_secret"
      sysctl: reading key "net.ipv6.conf.default.stable_secret"
      sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
      sysctl: reading key "net.ipv6.conf.lo.stable_secret"
      vm.max_map_count = 262144

然后执行sysctl -p,然后,重新启动elasticsearch,即可启动成功。
阿里云服务器访问外网修改了config/elasticsearch.yml 后还需要添加安全组

  1. 开启外网访问并且验证

     ~ vim config/elasticsearch.yml 
      翻到下面找到并修改
      network.host: 0.0.0.0
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
      http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length, X-User"
    

然后保存退出,重新运行

     ~ ./elasticsearch

三、安装 elasticsearch-head

elasticsearch-head是集群管理工具、数据可视化、增删改查工具

    git clone git://github.com/mobz/elasticsearch-head.git

elasticsearch-head的使用需要基于nodejs,所以需要安装nodejs

    cd /usr/local/
    wget https://npm.taobao.org/mirrors/node/v8.9.3/node-v8.9.3-linux-x64.tar.xz

不知道为什么我下载下来就是xz格式 一开始不能直接解压然后

    xz -d node-v8.9.3-linux-x64.tar.xz
    tar -xvf node-v8.9.3-linux-x64.tar
    名字太长了重命名
    mv node-v8.9.3-linux-x64 node
    配置环境变量
    vim /etc/profile
    export NODE_HOME=/usr/local/node  
    export PATH=$NODE_HOME/bin:$PATH  
    保存退出,执行生效
    source /etc/profile

然后使用命令查看版本


然后切回刚才下载的elasticsearch-head 目录执行

    npm install
    npm run start
    正常执行  http://localhost:9100 就可以访问了

你可能感兴趣的:(elasticsearch/elasticsearch-rtf安装及错误问题处理)