zoukankan      html  css  js  c++  java
  • elasticsearch安装

    安装过程

    安装jdk

    下载jdk,地址:https://www.oracle.com/technetwork/java/javase/downloads/

    # mkdir /opt/{softwares,modules} -p
    上传jdk包到modules下
    # tar xfz jdk
    -8u191-linux-x64.tar.gz -C /opt/softwares/ # echo -ne "export JAVA_HOME=/opt/softwares/jdk1.8.0_191 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}" >> /etc/profile # tail -5 /etc/profile export JAVA_HOME=/opt/softwares/jdk1.8.0_191 export JRE_HOME=/opt/softwares/jdk1.8.0_191/jre export CLASSPATH=.:/opt/softwares/jdk1.8.0_191/lib:/opt/softwares/jdk1.8.0_191/jre/lib:.:/opt/softwares/jdk1.8.0_191/lib:/jre/lib:.:/lib:/lib: export JAVA_PATH=/opt/softwares/jdk1.8.0_191/bin:/opt/softwares/jdk1.8.0_191/jre/bin export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin::/bin:/bin:/opt/softwares/jdk1.8.0_191/bin:/jre/bin # . /etc/profile 验证 # java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

    安装elasticsearch

    调整内核参数

    1、修改最大文件数和锁内存限制

    # echo -ne "elastic  -  hard  nproc  unlimited
    Elastic  -  soft  nproc  unlimited
    elastic  -  nofile       262144
    elastic  -  memlock      unlimited
    elastic  -  fsize        unlimited
    elastic  -  as           unlimited" >> /etc/security/limits.conf
    # tail -6 /etc/security/limits.conf
    elastic  -  hard  nproc  unlimited
    Elastic  -  soft  nproc  unlimited
    elastic  -  nofile       262144
    elastic  -  memlock      unlimited
    elastic  -  fsize        unlimited
    elastic  -  as           unlimited

    2、修改进程的最大内存限制

    # vim /etc/sysctl.conf 
    
    vm.max_map_count = 262144
    vm.swappiness = 1
    ~                  

    3、修改用户最大线程数

    # vim /etc/security/limits.d/20-nproc.conf
    *          soft    nproc     4096
    root       soft    nproc     unlimited

    创建用户

    elasticsearch不能使用root用户启动,所以创建普通用户elastic

    # useradd  elastic

    安装elasticsearch

    安装包下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz

    解压

    tar xfz modules/elasticsearch-7.12.0-linux-x86_64.tar.gz -C /opt/softwares/

    修改配置文件jvm.options和elasticsearch.yml

    配置文件在config目录下:

    1. jvm.options配置文件主要修改-Xms4g 和 -Xmx4g参数即可
    2. elasticsearch.yml文件内容如下:

     master节点配置文件

    # ---------------------------------- Cluster & Node -----------------------------------
    cluster.name: my-es          # 集群名称
    node.name: es-1              # 节点名称
    
    # ---------------------------------- Network ------------------------------------------
    network.host: 10.0.0.31
    transport.tcp.port: 9300     # 集群节点间通信端口

      cluster.initial_master_nodes: ["10.0.0.31:9300"]

    
    http.port: 9200              # 集群节点对外提供的通信端口
    
    # ----------------------------------- Paths -------------------------------------------
    # 日志路径配置,需要提前创建好
    path.data: /data/es
    path.logs: /data/logs
    
    # --------------------------------- Discovery -----------------------------------------
    discovery.zen.ping.unicast.hosts: ["10.0.0.31","10.0.0.32","10.0.0.33"]
    discovery.zen.minimum_master_nodes: 2
    discovery.zen.ping_timeout: 80s
    
    # ---------------------------------- Gateway ------------------------------------------
    gateway.recover_after_nodes: 3
    
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    # ----------------------------------- Memory -----------------------------------------
    ## 以下配置在centos6系统上需要设置为false,因为2.6.23内核版本以后才支持
    bootstrap.memory_lock: true
    bootstrap.system_call_filter: false
    
    # ---------------------------------- Customer setting --------------------------------
    node.master: true
    node.data: false
    node.ingest: true    #预处理节点,默认开启
    xpack.security.enabled: false
    xpack.graph.enabled: false
    xpack.watcher.enabled: false
    cluster.routing.allocation.disk.watermark.low: 80%
    cluster.routing.allocation.disk.watermark.high: 90%
    cluster.routing.allocation.same_shard.host: true

     data节点配置文件

    # ---------------------------------- Cluster  & Node-----------------------------------
    cluster.name: my-es
    node.name: es-2
    
    # ---------------------------------- Network -----------------------------------------
    networ.host: 10.0.0.32
    http.cors.allow-origin: "*"
    http.enable: false
    
    # ----------------------------------- Paths ------------------------------------------
    path.data: /data/es
    path.logs: /data/logs
    
    # --------------------------------- Discovery ----------------------------------------
    discovery.zen.ping_timeout: 80s
    discovery.zen.ping.unicast.hosts: ["10.0.0.31","10.0.0.32","10.0.0.33"]
    discovery.zen.minimum_master_nodes: 2
    
    # ---------------------------------- Gateway -----------------------------------------
    gateway.recover_after_nodes: 3
    
    # ----------------------------------- Memory -----------------------------------------
    bootstrap.memory_lock: true
    bootstrap.system_call_filter: false
    
    # ---------------------------------- Customer setting --------------------------------
    node.master: false
    node.data: true
    node.ingest: true
    xpack.security.enabled: false
    xpack.graph.enabled: false
    xpack.watcher.enabled: false
    cluster.routing.allocation.disk.watermark.low: 80%
    cluster.routing.allocation.disk.watermark.high: 90%
    cluster.routing.allocation.same_shard.host: true

    client节点配置

    # ---------------------------------- Cluster & Node -----------------------------------
    cluster.name: my-es
    node.name: es-3
    
    # ---------------------------------- Network ------------------------------------------
    network.host: 10.0.0.33
    http.port: 9200
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    # ----------------------------------- Paths -------------------------------------------
    path.logs: /data/logs
    
    # --------------------------------- Discovery -----------------------------------------
    discovery.zen.ping_timeout: 80s
    discovery.zen.ping.unicast.hosts: ["10.0.0.31","10.0.0.32","10.0.0.33"]
    discovery.zen.minimum_master_nodes: 2
    
    # ---------------------------------- Gateway ------------------------------------------
    gateway.recover_after_nodes: 3
    
    
    # ----------------------------------- Memory ------------------------------------------
    bootstrap.memory_lock: true
    bootstrap.system_call_filter: false
    
    # ---------------------------------- Customer setting ---------------------------------
    node.master: false
    node.data: false
    node.ingest: true
    xpack.security.enabled: false
    xpack.graph.enabled: false
    xpack.watcher.enabled: false
    cluster.routing.allocation.disk.watermark.low: 80%
    cluster.routing.allocation.disk.watermark.high: 90%
    cluster.routing.allocation.same_shard.host: true

    其他配置(可选)

    tcp重传配置

    sysctl -w net.ipv4.tcp_retries2=5 或者修改/etc/sysctl.conf

    授权

    # chown -R elastic.elastic /opt/softwares/elasticsearch-7.12.0/

    创建数据目录和日志目录

    # mkdir /data/{es,logs} -p
    
    # chown -R elastic.elastic /data

    将安装目录和数据目录拷贝到其他节点后,启动es

    [elastic@es1 logs]$ bin/elasticsearch -d

    es中的节点作用介绍 

    1. 客户端节点

      当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。独立的客户端节点在一个比较大的集群中是非常有用的,他协调主节点和数据节点,客户端节点加入集群可以得到集群的状态,根据集群的状态可以直接路由请求。

    2. 数据节点

      数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对cpu,内存,io要求较高, 在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。

    3. 主节点

      主资格节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点。稳定的主节点对集群的健康是非常重要的,默认情况下任何一个集群中的节点都有可能被选为主节点,索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。  

    4.建议

      在一个生产集群中我们可以对这些节点的职责进行划分,建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大,所以在集群中建议再设置一批client节点(node.master: false node.data: false),这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

    报错

    [2021-03-20T21:15:10,559][WARN ][o.e.c.c.ClusterFormationFailureHelper] [es-2] master not discovered yet, this node has not previously joined a bootstrapped (v7+) 
    cluster, and [cluster.initial_master_nodes] is empty on this node

    需要指定master_node

    在es配置文件中加入如下配置,指定初始化时的集群master节点
    cluster.initial_master_nodes: ["10.0.0.31:9300"]
  • 相关阅读:
    UVA138 Street Numbers(数论)
    UVA11388 GCD LCM(数论)
    POJ1088 滑雪(记忆化搜索)
    POJ1003 Hangover
    POJ1836 Alignment(LIS)
    POJ1062 昂贵的聘礼(最短路)
    POJ3083 Children of the Candy Corn(搜索)
    POJ1068 Parencodings(模拟)
    POJ1573 Robot Motion(模拟)
    POJ2632 Crashing Robots(模拟)
  • 原文地址:https://www.cnblogs.com/zh-dream/p/14618526.html
Copyright © 2011-2022 走看看