CentOS7上ElasticSearch安装填坑记

作者: CodeSheep | 来源:发表于2018-01-08 19:16 被阅读1254次
    Apple

    下载elastic search 5.3.0

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
    mv elasticsearch-5.3.0.tar.gz /opt
    cd /opt
    tar -xzvf elasticsearch-5.3.0.tar.gz
    cd elasticsearch-5.3.0/
    

    启动ES

    cd /bin
    ./elasticsearch
    

    按照道理应该就可以了,然而接下来各种坑一一出现,分别阐述

    错误1error='Cannot allocate memory' (errno=12)

    error='Cannot allocate memory'

    solutions:
    由于elasticsearch5.0默认分配jvm空间大小为2g,需要改小一点

    vim config/jvm.options  
    -Xms2g  →  -Xms512m
    -Xmx2g  →  -Xmx512m
    

    错误2: can not run elasticsearch as root

    can not run elasticsearch as root

    solutions:
    在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非root用户,以非root用户来起es

    groupadd elk  # 创建用户组elk
    useradd elk -g elk -p 111111  # 创建新用户elk,-g elk 设置其用户组为 elk,-p 111 设置其密码6个1
    chown -R elk:elk /opt  # 更改 /opt 文件夹及内部文件的所属用户及组为 elk:elk
    su elk # 切换到非root用户elk下来
    

    错误3:(1) max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
    (2) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    此错误出现在修改config/elasticsearch.yml中的network.host为network.host: 0.0.0.0以便让外网任何IP都能来访问时。

    solutions:
    切换到root用户,然后

    vim /etc/security/limits.conf
    * soft nofile 300000
    * hard nofile 300000
    * soft nproc 102400
    * soft memlock unlimited
    * hard memlock unlimited
    
    /etc/security/limits.conf

    错误4:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    vm.max_map_count is too low

    solutions:
    先要切换到root用户;
    然后可以执行以下命令,设置 vm.max_map_count ,但是重启后又会恢复为原值。

    sysctl -w vm.max_map_count=262144
    

    持久性的做法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 参数:

    echo "vm.max_map_count=262144" > /etc/sysctl.conf
    sysctl -p
    
    image.png

    最后终于在外网访问成功:

    外网访问成功!

    安装可视化插件 elasticsearch-head

    git clone git://github.com/mobz/elasticsearch-head.git
    cd elasticsearch-head
    npm install   # 此处我试图用cnpm install有问题,用npm可以
    npm run start 
    
    image.png

    然后在外网访问http://你的安装机IP:9100

    访问elasticsearch-head可视化界面成功

    最后实际简单测试一下

    新建 Index,可以直接向 Elastic 服务器发出 PUT 请求。下面的例子是新建一个名叫weather的 Index。

    用rest接口向es添加index

    然而刷新elasticsearch-head可视化界面可以看到索引已经成功插入

    索引已经插入

    后记

    关于作者更多的elastic search实践在此

    作者更多的原创文章在此

    相关文章

      网友评论

      • 0ba8a76bfc3f:大哥写的很棒! 但是小弟想问下 怎么没有node的安装 。还有启动了head,但是es和head应该是跨域访问。难道不需要设置就可以在浏览器直接从head访问到es?
        CodeSheep:目前安装的是单个节点的呢,涉及多个节点的部署后续再尝试一下

      本文标题:CentOS7上ElasticSearch安装填坑记

      本文链接:https://www.haomeiwen.com/subject/qovbnxtx.html