搭建 es 集群

这篇具有很好参考价值的文章主要介绍了搭建 es 集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、VMware准备机器

首先准备三台机器

这里我直接使用 VMware 构建三个虚拟机 都是基于 CentOS7

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

然后创建新用户

部署 es 需要单独创建一个用户,我这里在构建虚拟机的时候直接创建好了

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

然后将安装包上传

可以使用 rz 命令上传,也可以使用工具上传

工具包地址:链接:https://pan.baidu.com/s/1sGJW4jErofM3aj2CeU1ncg?pwd=eo6a 
提取码:eo6a 

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

上传后进行解压

三台机器都需要

tar zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz 

解压完成

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

二、配置 jdk

es7 以上内置了 jdk 环境,

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

但是需要配置一下:

# linux  进入用户主目录,比如/home/heyue/es/目录下,设置用户级别的环境变量
vim .bash_profile
#设置ES_JAVA_HOME和ES_HOME的路径
export ES_JAVA_HOME=/home/heyue/es/elasticsearch-7.17.3/jdk
export ES_HOME=/home/heyue/es/elasticsearch-7.17.3
export PATH=$PATH:/home/heyue/es/elasticsearch-7.17.3/jdk/bin
#执行以下命令使配置生效
source .bash_profile

三、先单机启动

这里可以先启动三台单机的 es

然后配置 ElasticSearch

配置 elasticsearch.yaml 文件

vim elasticsearch.yml

#开启远程访问  
network.host: 0.0.0.0
#单节点模式   初学者建议设置为此模式 
discovery.type: single-node

修改 JVM 内存 我这里内存比较小,可以根据自己服务器情况进行设置

修改config/jvm.options配置文件,调整jvm堆内存大小

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

启动 es

bin/elasticsearch 

# -d 后台启动
bin/elasticsearch -d

启动成功后通过浏览器访问

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

如果访问不通,可以看下防火墙端口是否开放:

添加防火墙规则:
打开端口,例如打开端口 9200(HTTP):

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent

重新加载防火墙规则以应用更改:

sudo firewall-cmd --reload

查看已打开的端口:

sudo firewall-cmd --list-ports

然后可以看到 我这里三台 单机 es 已经启动成功

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

四、安装 kibana

然后随便找一台机器安装 kibana

同样的上传压缩包,解压

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

修改配置文件

vim config/kibana.yml

修改一下几个地方

端口:

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

 网卡监听:

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

es URL:

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

中文:

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

然后启动 kibana

nohup  bin/kibana &

可以看到启动成功

这里注意,别忘了 开放端口 5601

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

五、集群配置

域名映射

可以先进行域名映射,便于后面维护

执行命令:

vim /etc/hosts

注意:这里如果其实文件只读,可以对文件增加写入权限,也可以使用 root 进行修改

添加以下配置:

192.168.177.201 es-node1
192.168.177.202 es-node2
192.168.177.203 es-node3

三台机器同样的操作

然后修改 elasticsearch.yml 配置

首先把刚刚单机配置注释

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

其他配置:

# 指定集群名称3个节点必须一致
cluster.name: es-cluster
#指定节点名称,每个节点名字唯一
node.name: node-1
#是否有资格为master节点,默认为true
node.master: true
#是否为data节点,默认为true
node.data: true
# 绑定ip,开启远程访问,可以配置0.0.0.0
network.host: 0.0.0.0
#指定web端口
#http.port: 9200
#指定tcp端口
#transport.tcp.port: 9300
#用于节点发现
discovery.seed_hosts: ["es-node1", "es-node2", "es-node3"] 
#7.0新引入的配置项,初始仲裁,仅在整个集群首次启动时才需要初始仲裁。
#该选项配置为node.name的值,指定可以初始化集群节点的名称
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
#解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"

配置好之后,先 kill 掉刚刚启动的进程,三台机器同样的操作

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

 !!!注意修改完成之后,一定一定要记得切换用户,不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!不要使用 root!

然后由于刚刚进行单机启动了,所以还需要删除 data 文件夹

# 注意:如果运行过单节点模式,需要删除data目录, 否则会导致无法加入集群 
rm -rf data 
# 启动ES服务 bin/elasticsearch -d

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

重新启动:

bin/elasticsearch -d

报错以及解决方案

发现报错可以按照以下方案解决:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

然后进行配置:

注意需要先切换到 root 

#切换到root用户
vim /etc/security/limits.conf

末尾添加如下配置:
  *        soft     nofile     65536
  *     hard     nofile     65536
  *     soft     nproc     4096
  *        hard     nproc     4096

[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]

无法创建本地线程问题,用户最大可创建线程数太小

vim /etc/security/limits.d/20-nproc.conf

改为如下配置:
* soft nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

最大虚拟内存太小,调大系统的虚拟内存

vim /etc/sysctl.conf
追加以下内容:
vm.max_map_count=262144
保存退出之后执行如下命令:
sysctl -p

[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

#或者指定配置单节点(集群单节点)
discovery.type: single-node

 [5] 

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

 注意:es默认不能用root用户启动,生产环境建议为elasticsearch创建用户。

#为elaticsearch创建用户并赋予相应权限
adduser es
passwd es
chown -R es:es elasticsearch-7.17.3

配置完成后,注意,一定一定 要记得切换用户,es 不支持 root 启动

如果已经使用 root 启动报错了,需要先执行以下命令进行替换

回到 es 文件夹,执行以下命令,里面的 heyue 换成自己的用户名

chown -R heyue:heyue elasticsearch-7.17.3

如果出现以下信息,那么恭喜,集群搭建成功

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

六、更新 kibana 配置

然后还需要修改一下 kibana 配置,配置为集群

vim config/kibana.yml


elasticsearch.hosts: ["http://192.168.65.174:9200","http://192.168.65.192:9200","http://192.168.65.204:9200"]  

七、安装 Cerebro 客户端

先上传,然后解压

unzip cerebro-0.9.4.zip

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

 解压完成后直接启动

nohup bin/cerebro > cerebro.log &

然后页面上输入 es 地址链接

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建

到这里,看到这个页面,恭喜 es 集群已经完成搭建完成 

搭建 es 集群,elasticsearch,linux,运维,es 集群,es 集群搭建 这里是基于原生安装包的方式进行搭建,基于 docker 搭建也是一样的,使用docker 启动三个单机,然后修改里面的配置文件即可

未来的自己一定会感谢今天努力的自己,加油,我们一起进步!!!文章来源地址https://www.toymoban.com/news/detail-844027.html

到了这里,关于搭建 es 集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ElasticSearch系列-06】Es集群架构的搭建以及集群的核心概念

    ElasticSearch系列整体栏目 内容 链接地址 【一】ElasticSearch下载和安装 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【三】ElasticSearch的高级查询Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月04日
    浏览(35)
  • 磐基2.0搭建es集群 k8s安装elasticsearch集群

    参考: k8s安装elasticsearch集群_k8s部署elasticsearch集群_MasonYyp的博客-CSDN博客 1 环境简述搭建es集群需要使用的技术如下:k8s集群、StatefulSet控制器、Service(NodePort)服务、PV、PVC、volumeClaimTemplates(存储卷申请模板)。StatefulSet控制器创建的Pod适合用于分布式存储系统,它最大的特

    2024年02月09日
    浏览(21)
  • Linux搭建ElasticSearch单节点及集群

    1.虚拟机CentOS7.6 2.elasticsearch7.8.0:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0 将tar包解压到指定目录 1.Linux环境安装了jdk的,会和es自带jdk冲突,需要指定使用自带jdk,修改es的bin目录下elasticsearch如下: 2.如果机器内存不够用,需要调小启动内存,在es的config目录下

    2024年02月16日
    浏览(18)
  • linux查看es节点使用情况,elasticsearch(es) 如何查看当前集群中哪个节点是主节点(master)

    elasticsearch 查看当前集群中的 master 节点是哪个需要使用 _cat 监控命令,具体如下。 查看方法 es 主节点确定命令,以 kibana 上查看示例如下: GET _cat/nodesv 返回结果示例如下: ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.16.16.188 52 99 5 2.59 1.70 1.45 mdi - elastic3

    2023年04月15日
    浏览(21)
  • 【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(一)

    最近公司的电商项目越来越庞大,功能需求点也越来越多,各种C端对查询和检索的要求也越来越高,是时候在项目中引入全文检索了。 ElasticSearch 是一个基于 Lucene 的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,并且是基于Java 开发的,我记得很久之前ES还不

    2024年02月15日
    浏览(27)
  • elasticsearch系列四:集群常规运维

    概述  在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。 案例       起初我们es性能还跟得上,随着业务发展壮大,发现查询性能越来越不行了,我们可以通过cat api查

    2024年02月04日
    浏览(24)
  • 一站式 Elasticsearch 集群指标监控与运维管控平台

    上篇文章写了一下消息运维管理平台,今天带来的是ES的监控和运维平台。目前初创企业,不像大型互联网公司,可以重复的造轮子。前期还是快速迭代试错阶段,方便拿到市场反馈,及时调整自己的战略和产品方向。让自己活下去,话不多说 开始今天的分享。 一、项目介绍

    2024年02月10日
    浏览(20)
  • Elasticsearch 系列(六)- ES数据同步和ES集群

    本章将和大家分享ES的数据同步方案和ES集群相关知识。废话不多说,下面我们直接进入主题。 1、数据同步问题 Elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,Elasticsearch也必须跟着改变,这个就是Elasticsearch与mysql之间的数据同步。 在微服务中,负责酒

    2024年04月28日
    浏览(40)
  • 【ES专题】ElasticSearch集群架构剖析

    个人感觉集群架构其实都有点大同小异,看了这么多集群架构之后,感觉无非要考虑的地方就几点: 使用何种通信协议去同步数据,互相通信 采用何种策略同步数据(异步还是同步) 如何保证一致性,保证到什么程度(【最终一致性】 or【实时一致性 / 强一致性】) 使用何

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包