Elasticsearch(ES)角色介绍与集群部署

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

由于我们后面的要讲解的概念需要在集群环境里面更容易体现,所以我们这里先部署集群。

环境规划

IP

角色

192.168.31.171

master,data,Ingest

192.168.31.172

master,data,Ingest

192.168.31.173

master,data,Ingest

master:管理集群状态(索引元数据、分片分配、节点加入/离开)。不存储数据,不处理用户请求。

data:存储索引数据,执行数据的增删改查、搜索、聚合等操作。消耗大量CPU、内存、磁盘IO

 Ingest:接收客户端请求,将请求路由到正确的数据节点,聚合结果返回给客户端。分担数据节点的负载,尤其在复杂搜索/聚合时。

环境配置

我们在上个小节里面没有配置的,部署集群就需要配置。这里需要用root来实现。

# 1. 永久修改文件描述符限制
echo "elasticsearch - nofile 65535" >> /etc/security/limits.conf
echo "root soft nofile 65535" >> /etc/security/limits.conf
echo "root hard nofile 65535" >> /etc/security/limits.conf
# 2. 永久修改虚拟内存映射数
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
# 3. 立即应用新配置
sysctl -p
ulimit -n 65535
# 4. 为 Elasticsearch 用户添加额外权限(解决 memlock 问题)
echo "elasticsearch - memlock unlimited" >> /etc/security/limits.conf

基础准备

同单机没有区别。

yum -y install java-1.8.0-openjdk
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.29-linux-x86_64.tar.gz
      #root用户操作
      useradd es
      mv elasticsearch-7.17.29-linux-x86_64.tar.gz /home/es/
      chown es.es /home/es/elasticsearch-7.17.29-linux-x86_64.tar.gz 
      su es
      #es用户操作
      cd ~
      tar xvf elasticsearch-7.17.29-linux-x86_64.tar.gz
      cd elasticsearch-7.17.29

      配置文件

      其他节点替换对应的node.name和network.host,当然这里仅仅指定了很少的配置,时间这里可以指定很多配置的。​​​​​​​

      # ===== 核心配置 =====
      cluster.name: three-node-cluster
      node.name: node-171
      node.roles: [master, data]
      path.data: /home/es/data
      
      # ===== 网络配置 =====
      network.host: 192.168.31.171
      http.port: 9200
      transport.port: 9300
      
      # ===== 集群发现 =====
      discovery.seed_hosts:
        - "192.168.31.171:9300"
        - "192.168.31.172:9300"
        - "192.168.31.173:9300"
      
      # ===== 首次启动配置(集群形成后注释) =====
      cluster.initial_master_nodes:
        - "node-171"
        - "node-172"
        - "node-173"
      
      
      #启动
      ./bin/elasticsearch -d

      检查集群状态

      状态是green就代表集群状态是ok的。​​​​​​​

      [root@localhost ~]# curl -XGET 'http://192.168.31.171:9200/_cluster/health?pretty'
      {
        "cluster_name" : "three-node-cluster",
        "status" : "green",
        "timed_out" : false,
        "number_of_nodes" : 3,
        "number_of_data_nodes" : 3,
        "active_primary_shards" : 3,
        "active_shards" : 6,
        "relocating_shards" : 0,
        "initializing_shards" : 0,
        "unassigned_shards" : 0,
        "delayed_unassigned_shards" : 0,
        "number_of_pending_tasks" : 0,
        "number_of_in_flight_fetch" : 0,
        "task_max_waiting_in_queue_millis" : 0,
        "active_shards_percent_as_number" : 100.0
      }

      查看节点

      这里会显示3个节点的一些统计信息。

      [root@localhost ~]# curl -XGET 'http://192.168.31.171:9200/_cat/nodes?v'
      ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
      192.168.31.172           13          97   3    0.01    0.15     0.15 dm        *      node-172
      192.168.31.171           15          88   2    0.22    0.18     0.14 dm        -      node-171
      192.168.31.173            5          95   4    0.01    0.14     0.13 dm        -      node-173
      [root@localhost ~]# 

      ​​​​​​​

      到这里我们的集群版本就算部署完成。

      运维小路

      一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

      关注微信公众号《运维小路》获取更多内容。

      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
      红包 添加红包
      表情包 插入表情
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值