zoukankan      html  css  js  c++  java
  • Centos7.4 安装 elasticsearch 5.5.0(6.x也适用)

    一. 版本与java客户端选择

    es当前的大版本有7.x,6.x,5.x,2.x,  其中2.x无法向上升级。

    7.x太新,不建议上项目。

    pges之间的数据同步插件amazonriver,对es的版本有要求,只支持5.x版本,所以这里选择了5.5.0版本。

    二. Es下载

    官网下载

    elasticsearch-5.5.0.tar.gz

    三. 硬盘与内存的要求

    1)建索引需要把业务数据全部导入es,根据数据量估算存储需要的磁盘空间,选择磁盘剩余充足的目录安装es.

    2Es的性能很依赖内存,内存一般设置不超过机器可用内存总数的一半,最大不要超过32G(不然性能反而会下降),未占用的另一半会被lucene文件缓存占用。

    3Linux swapping 需要调整到最低,以避免es缓存的数据被交换到磁盘(和windows的虚拟内存机制一样),这会导致es性能大幅下降。

     

    四. 安装

    上传压缩包elasticsearch-5.5.0.tar.gz到目录:

    /opt/elasticsearch-5.5.0.tar.gz

    (已通过命令df -h   df /opt检查/opt 所在的挂载磁盘,所剩存储足够大)

    解压到/opt目录

    cd /opt

    tar -xzf /opt/elasticsearch-5.5.0.tar.gz

    五. 配置

    1)配置/opt/elasticsearch-5.5.0/config/elasticsearch.yml

    #集群名称,同局域网下cluster名称相同的节点会自动组成一个集群

    cluster.name: es-cluster-qj

    #节点名称,同集群下每个es节点名称都需要唯一,不相同

    node.name: node-1

    #手动先创建/opt/elasticsearch-5.5.0/data ,指定该目录用来存储索引

    #可指定多个目录,一般这些目录要位于不同磁盘

    path.data: /opt/elasticsearch-5.5.0/data

    #指定日志输出路径

    path.logs: /opt/elasticsearch-5.5.0/logs

    #本机ip

    network.host: 10.168.4.91

    #es rest api 监听端口

    http.port: 9200

    #head 插件配置 允许跨域访问head 插件提供一个简单的交互页面,支持对es rest api 进行简易的访问)(直接添加在文件末端)

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    http.cors.allow-credentials: true

    2)配置/opt/elasticsearch-5.5.0/config/jvm.options

    (检查机器内存 多少G可用:

    [root@10.168.4.60 ~]# cat /proc/meminfo

    MemTotal:       32781624 kB

    MemFree:        22576584 kB

    MemAvailable:   24901968 kB

    总共32G, 剩余24G, 所以准备给es配置内存10G。)

    修改配置:

    -Xms10g

    -Xmx10g

    -Xms-Xmx设置相同时可避免Java堆自动扩展

    一般配置为总内存 的一半,不要超过32G。超过32G,JVM优化策略Compressed OOPS会失效,同时对象指针从4位增加到8位,反而加大了无畏的消耗。

    3)系统内核配置

    a)vim /etc/sysctl.conf  添加如下配置

    vm.swappiness=1

    vm.max_map_count=262144

    保存退出,再执行如下命令,使配置立即生效

    sysctl -p

    (-p从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载)

    解释:

    vm.swappiness=1   调低swapping内存交换,和windows上的虚拟内存功能相同,Es内存中的数据被交换到磁盘上后,会导致性能大大降低。

    vm.swappiness这个值表示系统进行swapping的倾向度,不建议设置成0,完全关闭也会导致其他问题。设成最小的1即可。

    vm.max_map_count=262144 调大进程的虚拟内存区域上限,不然es启动会报错:“max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]”  

    b)调大进程文件描述符限制,用户线程数限制,否则es启动会报错

    报错内容:

    max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

    max number of threads [3818] for user [es] is too low, increase to at least [4096]

    通过下面2个命令查看当前进程文件描述符限制数量

    ulimit -Hn

    ulimit -Sn

    通过下面2个命令查看当前用户线程限制数量

    ulimit -Hu

    ulimit -Su

     

    vim /etc/security/limits.conf文件,增加配置,用户重新登录生效

    *                soft    nofile          65536

    *                hard    nofile          65536

    *                soft    nproc           4096

    *                hard    nproc           4096

    六. 新建es用户和用户组

    Es 禁止在root用户下运行,所以需要创建个新用户

    创建组

    groupadd elasticsearch

    创建用户es 并指定密码

    useradd es -g elasticsearch -p 123456

    es用户赋/opt/elasticsearch-5.5.0权限

    chown -R es:elasticsearch /opt/elasticsearch-5.5.0

    切换到 es用户 执行命令

    七. 启动es

    切换到es账户,启动 es

    su  es

    ./bin/elasticsearch -d -p pid

     

    关闭es

    kill `cat /opt/elasticsearch-5.5.0/pid`

    注意 这里 cat前面和 pid后面 不是 点‘  ,按键 esc 下面那个键

    lsof -i:9200   检查该端口进程是否存在

    查看es运行日志:

    tail -300f /opt/elasticsearch-5.5.0/logs/es-cluster-qj.log

    启动后通过浏览器验证es rest api 是否正常访问:

    http://10.168.4.91:9200/

    为了能在root用户下更方便的启停es,这里写了启停脚本 :

    先给脚本加可执行权限:

    chmod +x /opt/elasticsearch-5.5.0/start.sh

    chmod +x /opt/elasticsearch-5.5.0/stop.sh

    启动

    /opt/elasticsearch-5.5.0/start.sh

    #!/bin/bash

    echo "es不能运行在root用户!正在切换到es用户"

    home="/opt/elasticsearch-5.5.0"

    su  es <<EOF

    cd $home

    $home/bin/elasticsearch -d -p $home/pid

    echo "Starting! Please wait..."

    sleep 3s

    echo "Started!"

    EOF

    停止

    /opt/elasticsearch-5.5.0/stop.sh

    #!/bin/bash

    echo "es不能运行在root用户!正在切换到es用户"

    su  es <<EOF

    echo "Stopping! Please wait..."

    kill -9 `cat /opt/elasticsearch-5.5.0/pid`

    echo "Stoped!"

    EOF

    END

  • 相关阅读:
    呼叫中心获取sip数据报文
    【代码总结】GD库中简单的验证码
    【代码学习】PHP中GD库的使用
    【漏洞详解】文件包含漏洞
    讲两道常考的阶乘算法题
    如何高效解决接雨水问题
    如何判定括号合法性
    二分查找高效判定子序列
    一道数组去重的算法题把东哥整不会了
    如何高效寻找素数
  • 原文地址:https://www.cnblogs.com/gongxr/p/12217916.html
Copyright © 2011-2022 走看看