zoukankan      html  css  js  c++  java
  • 4. es集群搭建

    es集群搭建

    一 . 单机集群搭建 - windows

    单机集群部署,需要通过设置不同的IP和集群IP来实现区分各节点。
    
    windows单机集群的特点是,搭建简单,好理解,能快速入门,了解es集群的特点。
    搭建环境: win10 + elasticsearch-6.8.0 + kibana-6.8.0
    

    1.windows安装JAVA环境

    1.下载点击jdk-8u201-windows-x64.exe安装Java,Java目录下会有两个目录: jdk,jre
    2.配置环境变量:
    	- 此电脑 -> 右键属性 -> 高级系统设置 -> 环境变量 -> 系统变量
    	- 新建系统变量:
    		变量名:JAVA_HOME
    		变量值:安装Java目录下的jdk
        - 点击Path,编辑环境变量,新建-> %JAVA_HOME%in  相当jdk目录下的bin
    3.检查:
    	win+R -> cmd -> java -version
    

    2.创建es集群节点

    为了便于管理,我在E盘的根目录下创建一个es_cluster目录,然后将elasticsearch压缩包和kibana压缩包解压到该目录内,并且对es节点重命名node-1,node-2,node-3

    我们为这个集群增加一些单播配置,打开各节点内的configelasticsearch.yml文件。每个节点的配置如下:

    node-1

    cluster.name: s33   # 集群名称要一致
    node.name: node-1 # 节点名称
    network.host: 127.0.0.1 
    http.port: 9200  # 监听端口
    transport.tcp.port: 9300  # 广播端口,集群端口
    #  ping地址
    discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
    discovery.zen.minimum_master_nodes: 2   # 脑裂值 = 节点数 // 2 + 1
    node.master: true  # 是否允许成为主节点
    node.data: false  # 是否允许储存数据
    

    node-2

    cluster.name: s33
    node.name: node-2
    network.host: 127.0.0.1
    http.port: 9201
    transport.tcp.port: 9301
    discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
    discovery.zen.minimum_master_nodes: 2
    node.master: true
    node.data: true
    

    node-3

    cluster.name: s33
    node.name: node-3
    network.host: 127.0.0.1
    http.port: 9202
    transport.tcp.port: 9302
    discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
    discovery.zen.minimum_master_nodes: 2
    node.master: false
    node.data: true
    

    运行es: 右键各个节点inelasticsearch.bat以管理员身份打开

    查看节点:

    ​ 1.使用elasticsearch head浏览器插件,输入监听端口http://127.0.0.1:9200

    ​ 2.使用kibana查看,编辑配置文件configkibana.yml

    # 监听es地址
    elasticsearch.hosts: ["http://127.0.0.1:9200"]
    

    ​ 3.运行kibana,右键binkibana.bat以管理员身份打开

    ​ 4.浏览器输入网址: 127.0.0.1:5601

    二 . 多机集群搭建 - centOS

    搭建环境:centos7.9 + elasticsearch-6.8.15
    演示如何在三台服务器上搭建es集群,基于rpm包的安装方式。
    复制三台centOS7.9虚拟机,分别为node-1,node-2,node-3三个节点
    

    环境部署

    集体环境部署 - 三台虚拟机都需要部署

    1.安装上传下载与不全功能:

    yum install lrzsz bash-completion -y
    

    2.JAVA环境安装:

    yum install java-1.8.0-openjdk.x86_64 -y
    查看:
    java -version
    

    3.安装elasticsearch

    1.上传或下载rpm包
    [root@cs ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.15.rpm
    [root@cs ~]# rz
    2.解压
    [root@cs tmp]# rpm -ivh elasticsearch-6.8.15.rpm  
    [root@cs tmp]# systemctl daemon-reload
    删除安装包
    [root@cs tmp]# rm -rf elasticsearch-6.8.15.rpm
    查看elasticsearch目录
    [root@cs tmp]# rpm -qc elasticsearch
    
    

    4.更改目录权限:

    ​ 注意: elasticsearch服务的运行需要以非root权限运行,但rpm安装时,默认帮我们创建了一个elasticsearch用户,所以,接下来,这里,我手动创建一个数据文件目录,然后给相关目录进行授权:

    mkdir -p /data/elasticsearch
    chown -R elasticsearch:elasticsearch /data/elasticsearch/
    chmod -R g+s  /data/elasticsearch/
    chown -R elasticsearch:elasticsearch /etc/elasticsearch/
    chown -R elasticsearch:elasticsearch /etc/init.d/elasticsearch 
    chown -R elasticsearch:elasticsearch /etc/sysconfig/elasticsearch 
    chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
    chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
    chown -R elasticsearch:elasticsearch /usr/lib/sysctl.d/elasticsearch.conf   
    chown -R elasticsearch:elasticsearch /usr/lib/systemd/system/elasticsearch.service 
    

    5.为了后续能正常启动集群,需要提前对系统参数和内核参数做些配置。

    修改系统参数:

    [root@cs tmp]# vim /etc/security/limits.conf
    
    # 可打开的文件句柄最大数
    * soft nofile 65535
    * hard nofile 65535
    # 单个用户可用的最大进程数
    * soft nproc 4096
    * hard nproc 4096
    # 可打开的文件描述符的最大数,unlimited:无限制
    * soft memlock unlimited
    * hard memlock unlimited
    

    修改内核参数:

    [root@cs tmp]# vim /etc/sysctl.conf
    
    # JAM能开启的最大线程数
    vm.max_map_count = 262144
    
    [root@cs tmp]# sysctl -p    # 使修改的内核参数生效
    vm.max_map_count = 262144
    

    6.为了避免内存锁定失败,还需要编译文件输入内容:

    [root@cs tmp]# sudo systemctl edit elasticsearch
    
    [Service]
    LimitMEMLOCK=infinity
    
    [root@cs tmp]# sudo systemctl daemon-reload
    

    节点配置

    node-1
    # 复制 清空 编辑 elasticsearch配置文件
    [root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    [root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
    [root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml
    
    cluster.name: my_cluster  # 集群名称
    node.name: node-1         # 节点名称
    node.master: true		# 是否允许做主节点
    node.data: true			# 是否允许储存数据
    path.data: /data/elasticsearch  # 数据储存目录
    path.logs: /var/log/elasticsearch # 日志目录
    bootstrap.memory_lock: true  # 是否锁定内存
    network.host: 192.168.189.132,127.0.0.1  # 监听地址 - 虚拟机ip地址
    http.port: 9200 # 监听端口
    discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  # ping地址:三个虚拟机地址
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    # discovery.zen.minimum_master_nodes: 2  # 脑裂值,先注释掉,集群搭建成功,再解开注释
    
    node-2
    # 与node-1相比,质数改变了节点名称和ip地址
    # 复制 清空 编辑 elasticsearch配置文件
    [root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    [root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
    [root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml
    
    cluster.name: my_cluster  
    node.name: node-2         
    node.master: true		
    node.data: true			
    path.data: /data/elasticsearch 
    path.logs: /var/log/elasticsearch 
    bootstrap.memory_lock: true  
    network.host: 192.168.189.133,127.0.0.1  
    http.port: 9200 
    discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    # discovery.zen.minimum_master_nodes: 2  
    
    node-3
    # 与node-1相比,质数改变了节点名称和ip地址
    # 复制 清空 编辑 elasticsearch配置文件
    [root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    [root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
    [root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml
    
    cluster.name: my_cluster  
    node.name: node-3         
    node.master: true		
    node.data: true			
    path.data: /data/elasticsearch  
    path.logs: /var/log/elasticsearch 
    bootstrap.memory_lock: true  
    network.host: 192.168.189.134,127.0.0.1 
    http.port: 9200 
    discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    # discovery.zen.minimum_master_nodes: 2  
    

    启动es服务

    [root@cs tmp]# systemctl start elasticsearch 
    [root@cs tmp]# systemctl status elasticsearch 
    [root@cs tmp]# curl http://127.0.0.1:9200 
    {
      "name" : "node-2",
      "cluster_name" : "my_cluster",
      "cluster_uuid" : "sPQePmgpSi6c9AQkpWm6oA",
      "version" : {
        "number" : "6.8.15",
        "build_flavor" : "default",
        "build_type" : "rpm",
        "build_hash" : "c9a8c60",
        "build_date" : "2021-03-18T06:33:32.588487Z",
        "build_snapshot" : false,
        "lucene_version" : "7.7.3",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }
    
    [root@cs tmp]# curl http://127.0.0.1:9200/_cat/nodes  # 查看集群节点
    或者使用elasticsearch head 插件查看节点 输入: http://192.168.189.132:9200
    
  • 相关阅读:
    VS2005下安装boost
    NOIP2017宝藏 [搜索/状压dp]
    SCOI2008奖励关 [状压dp]
    莫队算法解析
    SCOI2005 互不侵犯 [状压dp]
    Codeforces ----- Kefa and Dishes [状压dp]
    TSP问题之状压dp法
    NOI2001炮兵阵地 [状压dp]
    状压dp入门
    「网络流24题」餐巾计划问题
  • 原文地址:https://www.cnblogs.com/jia-shu/p/14805496.html
Copyright © 2011-2022 走看看