zoukankan      html  css  js  c++  java
  • 本地虚拟机搭建ES集群

    一、环境说明
       1、物理机信息(主要):
          内存:8G
          系统/主频:Win7(旗舰版)64位/3.70GHZ 
       2、虚拟机信息: 
          VMware Workstation 14 Pro
          下载地址: 链接:https://pan.baidu.com/s/1X4RtZdQxL6HWGH1pAYyBhg 提取码:26iv 
       3、镜像信息:
          CentOS-7-x86_64-DVD-1804.iso
          下载地址:http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/
       4、ElasticSearch:
          版本:elasticsearch-6.5.3.tar.gz
          下载地址:https://www.elastic.co/downloads/elasticsearch
    二、安装步骤
        1、安装VMware/系统镜像
           具体安装步骤参考:https://blog.csdn.net/alan_gaohaodong/article/details/79867052
           说明:
           <1> 为后期操作方便建议将"GONME桌面"安装上
           <2> 如果在内网环境安装,建议全量安装(即"开发工具"、"安全性工具"、"传统X Windows系统的兼容性"、"调试工具"等安装上)
           <3> 本次需要3个ES节点,故需要创建3个虚拟机
           
        2、配置通信网络(root用户登录操作)
           最终目标:物理机与3个虚拟机之间互相ping通、3个虚拟机之间互相ping通
           <1> 设置网络连接模式为 NAT
           <2> 设置IP(实际环境文件名:ifcfg-eth0  文件示例) 
               vi /etc/sysconfig/network-scripts/ifcfg-ens33
               生效:重启系统 命令:reboot
               假设配置的三台虚拟机地址分别为:192.168.1.1  192.168.1.2 192.168.1.3 
           <3> 设置主机名  
               vi /etc/hostname  新增如下内容 (若没生效则需要重启)
               如果当前主机IP为192.168.1.1,则新增es1
               如果当前主机IP为192.168.1.2,则新增es2
               如果当前主机IP为192.168.1.3,则新增es3
           <4> 配置主机名、IP映射关系
               vi /etc/hosts  新增如下内容
               192.168.1.1 es1
               192.168.1.2 es2
               192.168.1.3 es3
           <5> 开放端口(9200:与ES通信的http端口 5601:与kibana通信的http端口)       
               查询端口是否开放:firewall-cmd --query-port=9200/tcp
               开放9200端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
               生效:firewall-cmd --relaod
               解决问题:通过curl或者浏览器不能访问ES(集群)节点
           
        
        3、虚拟机系统配置
           说明:a、3个虚拟机都需要配置  b、以root用户登录操作
           <1> limits.conf
               vi /etc/security/limits.conf   新增如下内容
               *    soft nofile 65536
               *    hard nofile 131072
               *    soft nproc  4096
               *    hard nproc  4096
               避免问题max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
           <2> 20-nproc.conf
               vi /etc/security/limits.d/20-nproc.conf  修改
               *    soft nproc  4096
               *    hard nproc  4096       
               避免问题: max number of threads [3764] for user [xx] is too low, increase to at least [4096];
           <3> sysctl.conf
               vi /etc/sysctl.conf 新增如下内容
               vm.max_map_count = 655360
               执行操作,更新生效:sysctl -p
               避免问题:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]   
           <4> 关闭防火墙
               查看防火墙状态:firewall-cmd --state
               关闭防火墙:systemctl stop firewalld.service
               参考:https://blog.csdn.net/qq_34077993/article/details/82889558
               避免问题:org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [30s]
               
        4、创建用户
           说明:a、3个虚拟机都需要配置  b、以root用户登录操作
           创建用户组:groupadd es
           创建用户:   useradd es -g es    
           更改密码:  passwd es            
        
        5、创建安装包、数据、日志存放目录
           说明:a、3个虚拟机都需要配置  b、以root用户登录操作
           <1> 创建软件包存放位置,如 
                mkdir /app/es
           <2> 创建数据存放目录,如 
                mkdir /app/es/data
           <3> 创建日志存放目录,如 
               mkdir /app/es/log
               说明: <2> <3> 可以一起创建 
               命令:mkdir /app/es/data /app/es/log
           <4> 为上述目录赋es用户相关权限
               chown -R es:es /app
               
        6、上传、解压软件包(elasticsearch-6.5.3.tar.gz)至上述目录(es用户操作)
           解压elasticsearch-6.5.3.tar.gz
           cd /app/es/
           tar -zxvf elasticsearch-6.5.3.tar.gz elasticsearch-6.5.3
    
        7、配置elasticsearch.yml(es用户操作)
           <1> 进入elasticsearch解压后的目录
               cd /app/es/elasticsearch-6.5.3/config
               vi elasticsearch.yml 
               编辑内容 参见附件:
               说明:
                   a、改一个节点的elasticsearch.yml,其他节点可直接远程复制,只用修改节点名称、节点IP2个地方即可
                   b、远程复制命令:scp -r 用户名@主机名:源文件路径  源文件存放路径
            <2> 主要配置项说明
    cluster.name: 集群名(一个集群所有节点的集群名称必须一致)
    node.name: 节点名(不同节点,名称不能一致)
    node.master: 主节点(true:是 false:不是)
    node.data: 存储数据(true:存储 false:不存储)
    node.ingest: 参与选举(true:参与 false:不参与)
    path.data: 数据存放路径
    path.logs: 日志存放路径
    bootstrap.memory_lock: 避免内存交换(需设置为false),参考:https://elasticsearch.cn/article/149
    bootstrap.system_call_filter: Centos6不支持SecComp---需设置为false,如果为CentOS7则可设置为true
    network.host: 节点ip
    http.port: 节点端口
    transport.tcp.port: 节点之间通信端口
    http.cors.enabled: 跨域访问(一般为true)
    http.cors.allow-origin: 跨域访问(一般为"*")
    discovery.zen.ping.unicast.hosts: 主节点:节点通信端口 数组形式呈现 示例["192.168.1.1:9300","192.168.1.2:9300"]
    注意:示例中 192.168.1.1和192.168.1.2 两个节点node.master、node.ingest这两个属性都得为true
    discovery.zen.minimum_master_nodes: 设置最小主节点个数,一般为:(master_node_count+1)/2 说明:master_node_count:设置node.master=true的节点个数
        8、启动ES集群(es用户操作)
           <1> 进入es1(节点1)elasticsearch解压目录bin路径下,示例:
               cd /app/es/elasticsearch-6.5.3/bin   
           <2> 启动 
               ./elasticsearch &
           <3> 启动另外两个节点
    三、验证   
       <1>方式一:浏览器
             http://192.168.1.1:9200/_cat/nodes?v
             示例:
              
       
       <2>方式二:安装ElasticSearch-Head.crx查看
             示例:
            
    
       
       

    参考:

    https://elasticsearch.cn/article/6152

    https://blog.csdn.net/gamer_gyt/article/details/59077189

    https://blog.csdn.net/qq_22211217/article/details/80740873    (centos7下部署elasticsearch常见错误)

    https://www.cnblogs.com/zhi-leaf/p/8484337.html          (ES启动常见错误)

    https://blog.csdn.net/wanderstarrysky/article/details/52924434  

    https://blog.csdn.net/zx110503/article/details/78787483            (端口开放)

  • 相关阅读:
    优秀开源项目
    详细解读Android中的搜索框(四)—— Searchable配置文件
    详细解读Android中的搜索框(三)—— SearchView
    详细解读Android中的搜索框(二)—— Search Dialog
    判断listview滑动方向的代码片段
    详细解读Android中的搜索框(一)—— 简单小例子
    通过Spannable对象设置textview的样式
    用开源项目circular progress button实现有进度条的Button
    低版本系统兼容的ActionBar(七)自定义Actionbar标题栏字体
    WebView入门
  • 原文地址:https://www.cnblogs.com/lvlin241/p/10150687.html
Copyright © 2011-2022 走看看