资讯专栏INFORMATION COLUMN

Elastic search 集群搭建

IT那活儿 / 2921人阅读
Elastic search 集群搭建
一. Elasticsearch介绍

开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。


二. Es集群搭建

1. 环境准备

2. 系统参数设置

vm.max_map_count参数调整

max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。安装es该值最少要求262144。否则启动时候报如下错误:

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

vi /etc/sysctl.conf 中增加

vm.max_map_count=252144

sysctl -p使参数生效

3. 修改用户可创建文件大小

vi /etc/security/limits.conf 中添加
es soft nofile 65536
es hard nofile 65536

4. 修改用户线程限制

vi /etc/security/limits.d/20-nproc.conf中添加

es soft nofile 65536

es hard nofile 65536

* hard nproc 4096


三. 软件部署

1. 在两个节点上传软件及解压

tar –xvf elasticsearch-7.13.2-linux-x86_64.tar.gz

2. 给es用户赋予对应目录权限,因为安全问题,在linux中不能使用root运行Elasticsearch

chown -R es:es elasticsearch-7.13.2

3. 修改Elasticsearch-7.4.0文件的配置文件

vi elasticsearch-7.13.2/config/elasticsearch.yml

elasticsearch.yml中参数说明

  • cluster.name:

    es集群名称,某个节点只有和集群下的其他节点共享它的 cluster.name 才能加入一个集群。默认是elasticsearch。一定要确保不要在不同的环境中使用相同的集群名称。否则,节点可能会加入错误的集群中。

  • node.name:   

    节点名称,默认情况下,Elasticsearch 将使用随机生成的uuid的前7个字符作为节点id,请注意,节点ID是持久化的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改。

  • http.port:

    es的HTTP访问端口

  • network.host:

    IP地址,为了与其他服务器上的节点进行通信并形成集群,你的节点将需要绑定到非环回地址。虽然这里有很多网络相关的配置,但通常只需要配置一下 network.host

  • node.master:

    是否有资格主节点

  • node.data:

    是否存储数据

  • node.max_local_storage_nodes:

    最大集群节点数

  • transport.tcp.port:

    内部节点沟通端口

  • discovery.seed_hosts:

    节点发现,Elasticsearch将绑定到可用的环回地址,并将扫描本地端口9300到9305以尝试连接到在同一服务器上运行的其他节点。这提供了自动集群体验,无需进行任何配置。如果要在其他主机上形成包含节点的群集,则必须使用discovery.seed_hosts设置提供群集中其他节点的列表,这些节点符合主要条件且可能是实时且可联系的,以便为发现过程设定种子。此设置通常应包含群集中所有符合主节点的节点的地址。此设置包含主机数组或逗号分隔的字符串。每个值应采用host:port或host的形式(其中port默认为设置transport.profiles.default.port,如果未设置则返回transport.port)。

  • cluster.initial_master_nodes:

    初始化新的集群时配置选举master, 当您第一次启动全新的Elasticsearch集群时,会出现一个集群引导步骤,该步骤确定在第一次选举中计票的主要合格节点集。在开发模式下,如果未配置发现设置,则此步骤由节点本身自动执行。

  • path.data:

    数据存储路径,如果您正在使用.zip或.tar.gz文件归档,data和logs 目录在 $ES_HOME 下。如果这些重要文件夹保留在默认位置,则Elasticsearch升级到新版本时,很有可能被删除。补充说明:在生产环境下,应用程序的数据和日志一般需要配置到独立的磁盘分区下。比如/data目录作为独立的数据分区,/var/log作为应用程序日志分区。这样做的好处是,防止因应用程序数据或日志增长,撑爆OS分区。

  • path.log:

    日志存储路径,如果您正在使用.zip或.tar.gz文件归档,data和logs 目录在 $ES_HOME 下。如果这些重要文件夹保留在默认位置,则Elasticsearch升级到新版本时,很有可能被删除。补充说明:在生产环境下,应用程序的数据和日志一般需要配置到独立的磁盘分区下。比如/data目录作为独立的数据分区,/var/log作为应用程序日志分区。这样做的好处是,防止因应用程序数据或日志增长,撑爆OS分区。

node1配置:

cluster.name: my-elasticsearch 
node.name: es_node1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 192.168.23.131
http.port: 9200
transport.tcp.port: 9700
discovery.seed_hosts: ["192.168.23.131","192.168.23.132"]
cluster.initial_master_nodes: ["es_node1"]
path.data: /es_soft/es_data
path.logs: /es_soft/es_log
node2配置:
cluster.name: my-elasticsearch 
node.name: es_node2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 192.168.23.132
http.port: 9200
transport.tcp.port: 9700
discovery.seed_hosts: ["192.168.23.131","192.168.23.132"]
cluster.initial_master_nodes: ["es_node1"]
path.data: /es_soft/es_data
path.logs: /es_soft/es_log

启动es:

cd /es_soft/elasticsearch-7.13.2/bin
./ elasticsearch


四. 遇到的问题

1. 启动不能使用root,必须创建es用户,环境搭建可以使用root,然后chown到es用户。

报错如下:

2. elasticsearch.yml中参数配置,冒号后面必须有空格,不然启动es会报错

报错信息如下:


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129848.html

相关文章

  • docker环境搭建elasticsearch

    摘要:搭建系列环境搭建集群搭建集群环境搭建搭建集群环境搭建序本文主要讲如何使用使用搭建。下载镜像这里利用搭好的镜像,不过是的版本。 docker搭建系列 docker环境搭建zk集群 docker搭建redis集群 docker环境搭建elasticsearch docker搭建rabbitmq集群 docker环境搭建ELK 序 本文主要讲如何使用使用docker搭建elasticse...

    NicolasHe 评论0 收藏0
  • Elastic Search搜索引擎在SpringBoot中的实践

    摘要:注本文首发于公众号,可长按或扫描下面的小心心来订阅实验环境版本版本首先当然需要安装好环境,最好再安装上可视化插件来便于我们直观地查看数据。 showImg(https://segmentfault.com/img/remote/1460000015723674); 注: 本文首发于 My 公众号 CodeSheep ,可 长按 或 扫描 下面的 小心心 来订阅 ↓ ↓ ↓ showI...

    Me_Kun 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<