【Elasticsearch】Elasticsearch集群搭建详细手册

一、集群搭建

1.1.资源准备

  • 服务器
    • 192.168.X.26
    • 192.168.X.25
    • 192.168.X.24
  • 安装包
    • elasticsearch-6.8.10.tar.gz
  • 防火墙
    • 所有服务器均开通9200,9300端口

1.2.安装组件

  • 第一步:创建es安装目录
#在opt目录下创建soft目录
cd /opt
mkdir soft
  • 第二步:上传安装包到soft目录下
  • 第三步:解压安装包
#解压安装包(解压即安装)
tar -zxvf elasticsearch-6.8.10.tar.gz

注意:当前步骤每台服务器均相同!!!

1.3.修改配置

  • 节点1、节点2、节点3

    • 第一步:修改elasticsearch.yml配置文件
    #执行命令:
    #进入配置目录
    cd /opt/soft/elasticsearch/elasticsearch-6.8.1/config
    #编辑elasticsearch.yml配置文件
    vim elasticsearch.yml
    #设置如下配置:
    #集群名称: (应用连接配置需要)三个节点相同
    cluster.name: 自定义
    #节点名称(按节点顺序命名:node-1、node-2、node-3)
    node.name: node-1
    #数据存放目录:(需要提前创建好)
    path.data: /opt/soft/elasticsearch/elasticsearch-6.8.10/data
    #日志存放目录:(需要提前创建好)
    path.logs: /opt/soft/elasticsearch/elasticsearch-6.8.10/logs
    #当前节点地址:
    network.host: 当前服务的ip地址
    #开始http访问端口
    http.port: 9200
    transport.tcp.port: 9300
    #关闭程序内存锁定器和程序系统调用筛选器(视情况而定)
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    #集群节点配置
    discovery.zen.ping.unicast.hosts: ["192.168.X.26", "192.168.X.25", "192.168.X.24"]
    #配置可用master节点数量(一般ES集群的节点至少要有3个,quorum设置为2)
    discovery.zen.minimum_master_nodes: 2
    
    • 第二步:创建data目录
    #进入es根目录
    cd /opt/soft/elasticsearch/elasticsearch-6.8.1
    mkdir data
    
    • 第三步:创建elasticsearch的专属操作用户
    #执行命令:
    #创建系统用户:(这里不用设置密码)
    adduser esuser
    #授权用户访问操作权限
    chown -R esuser:esuser /opt/soft/elasticsearch/elasticsearch-6.8.10
    
    • 第四步:修改elasticsearch默认分配内存配置
    #执行命令
    #进入配置目录:
    cd /opt/soft/elasticsearch/elasticsearch-6.8.1/config
    #编辑内存配置文件:jvm.options (根据服务器情况设置如下值)
    vim jvm.options
    #将JVM堆大小改为最合适,一般建议不超过当前服务器内存的1/2
    -Xms2g
    -Xmx2g
    

1.4.启动ES

  • (1)、启动全部节点elasticsearch

    #执行命令
    #切换用户:(从root用户切换到ES用户)
    su esuser
    #进入bin目录
    cd /opt/soft/elasticsearch/elasticsearch-6.8.10/bin
    #启动es并且后台运行
    ./elasticsearch -d
    
  • (2)、访问全部节点elasticsearch组件

    #通过浏览器访问ES组件
    http://ip:9200
    
  • (3)、访问集群状态

#请求任意节点
http://192.168.X.26:9200/_cat/nodes?pretty
#响应如下证明集群搭建成功
192.168.X.24  9 37 1 0.06 0.06 0.05 mdi - node-3
192.168.X.25  5 35 0 0.01 0.03 0.05 mdi - node-2
192.168.X.26 10 91 1 0.02 0.09 0.15 mdi * node-1

1.5.启动问题

  • 问题1:initial heap size [2147483648] not equal to maximum heap size [4294967296]; this can cause resize pauses
#jvm配置内存需要一样
#修改配置文件:/opt/soft/elasticsearch/elasticsearch-6.8.10/config/jvm.options 这里修改jvm占用内存 
-Xms4g
-Xmx4g
  • 问题2:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
#es需要增大系统默认的文件打开数和用户可支配内存数
#编辑环境配置
vim /etc/security/limits.conf
#文件末尾追加  (esuser为启动elasticsearch的用户名)
esuser soft nofile 65535
esuser hard nofile 65537
  • 问题3:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
#错误原因:elasticsearch用户拥有的内存权限太小,至少需要262144
#编辑环境配置
vim /etc/sysctl.conf
#文件末尾追加
vm.max_map_count=262144
#配置立刻生效
sysctl -w vm.max_map_count=262144
  • 问题4:org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
#错误原因:es不能使用root用户启动
#需要切换到创建的es用户启动
#切换用户:(从root用户切换到ES用户)
su esuser

1.6.X-pack秘钥

  • 第一步:关闭所有节点的es服务
#找到elasticsearch进程杀掉
ps -ef|grep elasticsearch
#杀掉对应进程
kill -9 PID
  • 第二步:在node-1节点生成秘钥证书
#执行命令
#进入elasticsearch-6.8.10目录
cd /opt/soft/elasticsearch/elasticsearch-6.8.10
#开始生成ca.crt证书 会生成ca.zip文件 并且设置有效期100年
/opt/soft/elasticsearch/elasticsearch-6.8.10/bin/elasticsearch-certutil ca --pem --out ca.zip --days 36500 -s 
#解压文件验证有效期
unzip ca.zip
# 查看证书有效期
openssl x509 -in ca/ca.crt -noout -dates
#开始生成instance.crt证书 会生成instance.zip 并且设置有效期100年
/opt/soft/elasticsearch/elasticsearch-6.8.10/bin/elasticsearch-certutil cert --ca-cert ca/ca.crt --ca-key ca/ca.key --pem --name instance  --out instance.zip --days 36500 -s
#解压文件
unzip instance.zip
# 查看证书有效期
openssl x509 -in instance/instance.crt -noout -dates
  • 第三步:秘钥配置(所有节点)
#将解压完的秘钥证书拷贝到各节点的ES目录下的config目录下
#可以下载上传,也可以远程服务器拷贝
#拷贝完成后解压秘钥文件
unzip ca.zip
unzip instance.zip
  • 第四步:修改配置elasticsearch.yml(所有节点)
#新增如下配置
http.cors.enabled:  true
http.cors.allow-origin: "*"
#开启安全验证功能
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
http.cors.allow-headers: Authorization
xpack.security.transport.ssl.key: instance/instance.key
xpack.security.transport.ssl.certificate: instance/instance.crt
xpack.security.transport.ssl.certificate_authorities: ca/ca.crt
xpack.ssl.verification_mode: certificate
xpack.ssl.client_authentication: required
  • 第五步:启动服务-设置用户密码
#执行命令
#先切换用户
su esuser
#再启动
/opt/soft/elasticsearch/elasticsearch-6.8.10/bin/elasticsearch -d
#进入bin目录:
cd /opt/soft/elasticsearch/elasticsearch-6.8.10/bin
#执行设置密码命令:(会对所有es的用户进行密码设置,一直输入密码直到设置完所有)
./elasticsearch-setup-passwords interactive
#设置完密码后,再次打开浏览器访问即可发现需要密码登录
#账号默认为:elastic;密码为刚设置的值
http://ip:9200
  • 第六步:再次通过浏览器访问,即可需要输入密码才可访问
#通过浏览器访问ES组件
http://ip:9200

1.7.Springboot代码配置

#在application.properties 新增ES配置
spring.data.elasticsearch.cluster-nodes=节点1:9300,节点2:9300,节点3:9300
spring.data.elasticsearch.cluster-name=集群名称
spring.data.elasticsearch.xpack.security.user=账号
spring.data.elasticsearch.xpack.security.password=密码
spring.data.elasticsearch.xpack.security.transport.ssl.enabled=true
spring.data.elasticsearch.xpack.ssl.key=服务器路径/instance/instance.key
spring.data.elasticsearch.xpack.ssl.certificate=服务器路径/instance/instance.crt
spring.data.elasticsearch.xpack.ssl.certificate_authorities=服务器路径/ca/ca.crt
spring.data.elasticsearch.xpack.ssl.verification_mode=certificate
spring.data.elasticsearch.xpack.security.http.ssl.enabled=false
spring.data.elasticsearch.client.transport.sniff=true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/616914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java内存模型之原子性

文章目录 1.什么是原子性2.Java中的原子操作有哪些3.long和double的原子性4.原子操作 原子操作 ! 原子操作 1.什么是原子性 一系列的操作,要么全部执行成功,要么全部不执行,不会出现执行一半的情况,是不可分割的。 注意&#x…

探索SQL性能优化之道:实用技巧与最佳实践

SQL性能优化可能是每个数据库管理员和开发者在日常工作中必不可少的一个环节。在大数据时代,为确保数据库系统的响应速度和稳定性,掌握一些实用的SQL优化技巧至关重要。 本文将带着开发人员走进SQL性能优化的世界,深入剖析实用技巧和最佳实践…

Vue3访问不到$refs?

我试过了,getCurrentInstance()的方法 我试过 // 伪代码 <tinymce :ref"tinymceDate" />setup(){ let tinymceDate ref(null) const publish () > {console.log("hfq",tinymceDate.value)} return{...} }都不行 后面我试着在setup中使用setup…

深度学习笔记(四)——TF2构建基础网络常用函数+简单ML分类网络实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解&#xff0c;如有遗漏或错误&#xff0c;欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换&#xff1a; a1 tf.constant([1,2,3], dtypetf.floa…

装机必看:电脑Bios里的CSM兼容模块是啥?打开有啥用?

前言 最近朋友装了一台新的电脑&#xff0c;用的i5-13490f的CPU。但是由于预算有限&#xff0c;手边只有一块GTX650ti&#xff0c;没办法&#xff0c;只好先这么用着了。 谁知道出现了个大问题&#xff1a;电脑开机居然没办法显示。 由于电脑所有的配件基本上都是全新的&…

随身WiFi选购要点!从此不再踩坑!高性价比高口碑随身wifi推荐,随身WiFi哪个牌子最好用

一、买随身WiFi注意事项 1.随身WiFi常见的芯片高通、马维尔和中兴微&#xff0c;其中高通芯片大部分都是报废手机拆下来的二手芯片&#xff0c;价格相对来说比较低&#xff0c;那种一二十块的随身WiFi&#xff0c;常用这种&#xff0c;优点便宜&#xff0c;缺点设备发烫&#…

ORACLE报错:ORA-04091 表XXX发生了变化,触发器/函数不能读它

ORACLE报错:ORA-04091 表发XXX生了变化&#xff0c;触发器/函数不能读它 问题描述问题分析解决办法拓展&#xff1a;自治事务的特点 问题描述 在开发校验函数FUNCTION的时候&#xff0c;用数据跑批测试的时候报错。经排查这个校验函数FUNCTION的被一个存储过程中的update语句调…

统计项目5000+,出具报表5分钟......捷顺科技数据中台怎么做?

捷顺创立于1992年&#xff0c;以智慧车行、人行出入口软硬件产品为依托&#xff0c;致力于智慧停车生态建设和运营&#xff0c;是出入口智能管理和智慧生态环境建设的开创者和引领者。 历经近三十年的发展&#xff0c;已经成为国内智慧停车领域的领军企业。公司集研、产、销一…

视频转码:掌握mp4视频格式转FLV视频的技巧,视频批量剪辑方法

在多媒体时代&#xff0c;视频格式的转换成为一种常见的需求。把MP4格式转换为FLV格式&#xff0c;FLV格式的视频文件通常具有较小的文件大小&#xff0c;同时保持了较好的视频质量。批量剪辑视频的方法能大大提高工作效率。下面来看云炫AI智剪如何进行MP4到FLV的转码&#xff…

轻量化的yolov8部署到安卓Android手机端

一、pytorch环境配置和yolov8源码安装 首先在电脑上需要配置好pytorch环境&#xff0c;和yolov8源码的下载 然后针对yolov8做自己的轻量化改进 二、下载Android Studio和ncnn-android-yolov8 1. Android Studio官网链接&#xff1a; 下载 Android Studio 和应用工具 - And…

企业数据中台整体介绍及建设方案:文件全文51页,附下载

关键词&#xff1a;数据中台解决方案&#xff0c;数据治理&#xff0c;数据中台技术架构&#xff0c;数据中台建设内容&#xff0c;数据中台核心价值 一、什么是数据中台&#xff1f; 数据中台是指通过数据技术&#xff0c;对海量数据进行采集、计算、存储、加工&#xff0c;…

面试算法119:最长连续序列

题目 输入一个无序的整数数组&#xff0c;请计算最长的连续数值序列的长度。例如&#xff0c;输入数组[10&#xff0c;5&#xff0c;9&#xff0c;2&#xff0c;4&#xff0c;3]&#xff0c;则最长的连续数值序列是[2&#xff0c;3&#xff0c;4&#xff0c;5]&#xff0c;因此…

2024年前端面试中JavaScript的30个高频面试题之中级知识

基础知识 高级知识 13. 什么是闭包?闭包的用例有哪些? 闭包是一个功能,它允许函数捕获定义该函数的环境(或保留对作用域中变量的访问)即使在该作用域已经关闭后。 我们可以说闭包是函数和词法环境的组合,其中定义了该函数。 换句话说,闭包为函数提供了访问自己的作用域、…

爬虫利器一览

前言 爬虫&#xff08;英文&#xff1a;spider&#xff09;&#xff0c;可以理解为简单的机器人&#xff0c;如此一个“不为名利而活&#xff0c;只为数据而生&#xff0c;目标单纯&#xff0c;能量充沛&#xff0c;不怕日晒雨淋&#xff0c;不惧寒冬酷暑”的家伙&#xff0c;…

Casper Labs 与 IBM Consulting 合作,AI透明度、审计能力的新方案

​ “全新解决方案&#xff0c;旨在帮助企业更有效地管理训练数据&#xff0c;这些数据由不同的组织通过生成式人工智能系统产生” 企业区块链软件和服务提供商 Casper Labs 与 IBM Consulting 共同宣布&#xff0c;它们将联手推出新的解决方案&#xff0c;以帮助客户在其人工…

Elasticsearch初识之脚本查询附加示例代码(script)

概念 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能&#xff0c;ES支持多种脚本语言&#xff0c;如painless&#xff0c;其语法类似于Java,也有注释、关键字、类型、变量、函数等&#xff0c;其就要相对于其他脚本高出几倍的性能&…

计算机基础(存储单位)

1. 计算机中的存储单位有哪些 1.1 常见的计算机存储单位 计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示&#xff0c;如下所示&#xff1a; bit位、比特byte&#xff08;B&#xff09;字节、字Kill Byte&#xff08;KB&#xff09;千字…

VSCode 搭建Java开发环境

笔者使用最多的语言是C&#xff0c;也使用过不少其它语言&#xff0c;像Erlang&#xff0c;Python&#xff0c;Lua&#xff0c;C#等等&#xff0c;目前项目中在使用Go&#xff0c;但是没使用过Java。最近看到C#夺冠&#xff0c;首次荣获 TIOBE 年度编程语言&#xff0c;同时也看…

拯救者y9000p安装linux、windows双系统。

首先需要准备启动盘 我用的是Win32DiskImager来做的。资源使用的是ubuntu-20.04.6-desktop-amd64.iso。别用低版本&#xff0c;失败很多次之后的教训。 磁盘管理-磁盘分区-右键-压缩卷 这边分区出来之后&#xff0c;不要分配。安装时候会自动分配的。 重启之后F2进去BIOS设置…

np.polyfit

np.polyfit 是 NumPy 库中用于多项式拟合的函数。这个函数用于拟合一组数据点到一个多项式模型&#xff0c;返回多项式系数。 具体来说&#xff0c;np.polyfit(x, y, deg) 接受三个参数&#xff1a; x: 数据点的 x 坐标。y: 数据点的 y 坐标。deg: 多项式的阶数。 函数返回一…