安装es集群

作者: 拿着沙齿的纳兰公子 | 来源:发表于2018-05-21 20:48 被阅读0次

    安装es集群

    官网文档地址:https://www.elastic.co/guide/index.html

    一、创建es用户

    ps: 由于es不允许root直接启动,所以需要为es创建一个单独的用户

    groupadd es  #添加用户组
    useradd es -g es  #添加用户es
    passwd es #为用户es设置密码
    

    二、安装Java运行环境

    es要求Java8(安装方式不做赘述)

    三、修改系统限制文件

    vim /etc/security/limits.conf
    es - nofile 65536#open files
    es soft nproc 65536#max user processes
    es hard nproc 65536#max user processes
    es soft memlock unlimited#virtual memory
    es hard memlock unlimited#virtual memory
    

    四、修改系统配置

    vim /etc/sysctl.conf添加配置信息
    vm.max_map_count=262144
    
    /sbin/sysctl -p#生效配置
    

    五、安装es5

    六、配置

    • es主配置文件[vim config/elasticsearch.yml]
      cluster.name: elasticsearch#集群名,同一个集群中的节点集群名称相同
      node.name: node1#节点名称
      path.data: /data1/es5/#索引数据存放目录,可以指定多个,提升IO性能
      path.logs: /var/log/es5/#日志存放目录
      bootstrap.memory_lock: true#是否开启内存锁定,默认为false。建议开启
      network.host: 10.210.136.34#节点绑定的IP地址
      http.port: 9200#http端口,一台机器启动多个实例时,修改端口
      node.master: true#是否为master节点,默认为true
      node.data: true#是否为数据节点,默认为true
      node.ingest: true#是否为数据转换节点,默认为true
      discovery.zen.ping.unicast.hosts: ["10.0.0.1","10.0.0.2:9300"]#配置集群内其它节点的IP
      discovery.zen.minimum_master_nodes: 3
      script.inline: true
      script.stored: true

    • 配置JVM参数
      【vim config/jvm.options】
      -Xms12g#初始化堆内存大小 具体看机器
      -Xmx12g#堆内存 具体看机器

    七、安装ik分词器

    ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/

    mv elasticsearch-analysis-ik-5.0.0.zip %ES_HOME%/plugins/
    unzip elasticsearch-analysis-ik-5.0.0.zip -d analysis-ik
    chown -R es:es analysis-ik
    
    cd analysis-ik
    cp config %ES_HOME%/config
    cd %ES_HOME%/config/
    mv config ik
    chown -R es:es ik
    

    八、启动es

    ps: 以上都是在root用户下操作的,因为es不允许直接用root用户运行,所以现在要切换用户到es用户:

    su es
    cd %ES_HOME%
    nohup bin/elasticsearch 2>&1 & #后台运行
    

    九、验证

    通过url:http://127.0.0.1:9200/_cat 里面的众多接口接口进行验证。

    健康值验证路径:http://127.0.0.1:9200/_cat/health?v, 如果无法连接需要确认配置中network.host配的是啥。

    {
       "cluster_name": "elasticsearch",
       "status": "green",
       "timed_out": false,
       "number_of_nodes": 1,
       "number_of_data_nodes": 1,
       "active_primary_shards": 10,
       "active_shards": 10,
       "relocating_shards": 0,
       "initializing_shards": 0,
       "unassigned_shards": 0
    }
    

    status健康值的意思:

    • green
      所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
    • yellow
      所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果 更多的 分片消失,你就会丢数据了。把 yellow 想象成一个需要及时调查的警告。
    • red
      至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。

    green/yellow/red 状态是一个概览你的集群并了解眼下正在发生什么的好办法。剩下来的指标给你列出来集群的状态概要:

    • number_of_nodes 和 number_of_data_nodes 这个命名完全是自描述的。
    • active_primary_shards 指出你集群中的主分片数量。这是涵盖了所有索引的汇总值。
    • active_shards 是涵盖了所有索引的所有分片的汇总值,即包括副本分片。
    • relocating_shards 显示当前正在从一个节点迁往其他节点的分片的数量。通常来说应该是 0,不过在 Elasticsearch 发现集群不太均衡时,该值会上涨。比如说:添加了一个新节点,或者下线了一个节点。
    • initializing_shards 是刚刚创建的分片的个数。比如,当你刚创建第一个索引,分片都会短暂的处于 initializing 状态。这通常会是一个临时事件,分片不应该长期停留在 initializing 状态。你还可能在节点刚重启的时候看到 initializing 分片:当分片从磁盘上加载后,它们会从 initializing 状态开始。
    • unassigned_shards 是已经在集群状态中存在的分片,但是实际在集群里又找不着。通常未分配分片的来源是未分配的副本。比如,一个有 5 分片和 1 副本的索引,在单节点集群上,就会有 5 个未分配副本分片。如果你的集群是 red 状态,也会长期保有未分配分片(因为缺少主分片)。

    相关文章

      网友评论

        本文标题:安装es集群

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