• Cent OS7 安装ES7单机版和集群版


    ElasticSearch 环境搭建

    1. 单机、集群和节点概念。

    1.1单机

    单机ElasticSearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用。因此在生产环境下,一般都是运行在指定服务器集群上。

    除了负载能力,单点服务器也存在其他问题:

    • 单台机器存储容量有限
    • 单服务器容易出现单点故障,无法实现高可用
    • 单服务器的并发处理能力有限

    配置服务器集群时,集群中节点数量没有限制,大于等于 2 个节点就可以看做是集群了。一 般出于高性能及高可用方面来考虑集群中节点数量都是 3 个以上。

    1.2 集群

    一个集群就是由一个或多个服务器节点组织在一起,共同持有整个的数据,并一起提供

    索引和搜索功能。一个 Elasticsearch 集群有一个唯一的名字标识,这个名字默认就 是”elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入 这个集群。

    1.3 节点

    集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能。

    一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点 都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了 若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做 elasticsearch的集群中。

    在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运 行任何 Elasticsearch 节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的 集群。

    2. Linux单机版的安装

    可以采用安装tar.gz的方式,也可以采用rpm的方式进行,推荐使用rpm方式,注册到系统服务中,方便启动和停止。

    2.1 安装tar.gz包

    软件下载地址

    解压软件

    tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz -C /usr/local/
    

    修改配置文件

    /usr/local/elasticsearch-7.4.2/config
    vi elasticsearch.yml
    
    # 加入如下配置
    # 修改当前节点名称
    cluster.name: elasticsearch
    # 修改集群名称
    node.name: node-1
    # 修改data数据保存地址
    path.data=/usr/local/elasticsearch-7.4.2/data
    # 修改log数据保存地址
    path.log=usr/local/elasticsearch-7.4.2/log
    # 修改ip允许访问地址
    network.host: 0.0.0.0
    # 修改访问端口
    http.port: 9200 
    # 集群初始化节点
    cluster.initial_master_nodes: ["node-1"]
    

    修改JVM参数

    -Xms128m
    -Xmx256m
    

    创建用户

    因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户。

    # 添加esuser用户
    useradd esuser
    # 赋权
    chown -R esuser:esuser /usr/local/elasticsearch-7.4.2/
    

    修改 /etc/security/limits.conf

    # 每个进程可以打开的文件数的限制
    * soft nofile 65536
    * hard nofile 131072
    # 操作系统级别对每个用户创建的进程数的限制
    * soft nproc 2048
    * hard nproc 4096
    

    修改/etc/sysctl.conf

    # 在文件中增加下面内容
    # 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536 
    vm.max_map_count=655360
    

    sysctl.conf

    重新加载

    sysctl -p
    

    启动软件

    su esuser
    # 进入$ES_HOME/bin
    cd /usr/local/elasticsearch-7.4.2/bin
    # 后台启动es
    ./elasticsearch -d
    

    es启动

    测试启动是否正常

    访问虚拟机ip+端口9200.显示如图则正常

    ES启动正常

    停止服务

    # 查找es服务
    ps -ef |grep elastic
    # 杀掉es进程
    kill -9 xxx(进程号)
    

    ps下es信息

    2.2 安装rpm包

    下载地址同上,选择rpm包

    rpm -ivh elasticsearch-7.6.2.rpm
    

    修改配置文件

    # 加入如下配置
    # 修改当前节点名称
    cluster.name: elasticsearch
    # 修改集群名称
    node.name: node-1
    # 修改data数据保存地址
    path.data=/usr/local/elasticsearch-7.4.2/data
    # 修改log数据保存地址
    path.log=usr/local/elasticsearch-7.4.2/log
    # 修改ip允许访问地址
    network.host: 0.0.0.0
    # 修改访问端口
    http.port: 9200 
    # 集群初始化节点
    cluster.initial_master_nodes: ["node-1"]
    

    修改文件所有者

    chown elasticsearch:elasticsearch -R /usr/local/elasticsearch-7.4.2/
    

    启动elasticsearch

     systemctl start elasticsearc
    

    查看es启动状态

    systemctl status elasticsearch
    

    如果从系统服务不太容易观察到启动失败错误信息,也可以先通过安装路径启动es

    /usr/share/elasticsearch/bin/elasticsearch
    

    2.3 Linux集群版搭建

    与单机版基本相同,只是配置文件略有不同

    #集群名称
    cluster.name: cluster-es #节点名称,每个节点的名称不能重复 node.name: node-1
    #ip 地址,每个节点的地址不能重复
    network.host: node107 #是不是有资格主节点 node.master: true node.data: true http.port: 9200
    # head 插件需要这打开这两个配置
    http.cors.allow-origin: "*"
    http.cors.enabled: true
    http.max_content_length: 200mb
    #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master cluster.initial_master_nodes: ["node-1"]
    #es7.x 之后新增的配置,节点发现
    discovery.seed_hosts: ["node107:9300","node108:9300","node109:9300"] 
    gateway.recover_after_nodes: 2
    network.tcp.keep_alive: true
    network.tcp.no_delay: true
    transport.tcp.compress: true
    #集群内同时启动的数据任务个数,默认是 2 个 cluster.routing.allocation.cluster_concurrent_rebalance: 16 #添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个 cluster.routing.allocation.node_concurrent_recoveries: 16 #初始化数据恢复时,并发恢复线程的个数,默认 4 个 cluster.routing.allocation.node_initial_primaries_recoveries: 16
    

    Status 指示当前集群在总体上是否正常工作。三种颜色含义如下

    颜色 含义
    green 所有的主分片和副本分片都正常工作
    yellow 所有的主分片都正常运行,但不是所有的副本分片都正常运行
    red 有主分片没有正常运行
  • 相关阅读:
    memset
    无穷大无穷小的表示方法
    堆-STL
    3386 二分图 洛谷luogu [模版]
    jquery——幻灯片(只动一屏)
    jquery——整屏滚动
    jquery——元素节点操作
    jquery——事件冒泡、事件委托
    jquery——解决鼠标移入移出导致盒子不停移动的bug
    jquery——无缝滚动
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/15502541.html
Copyright © 2020-2023  润新知