ElasticSearch部署到Centos7

本文介绍了ElasticSearch的概述,强调它是一个基于Apache Lucene的分布式搜索和分析引擎。接着,详细阐述了如何在Centos7上进行ElasticSearch的安装过程,包括Java环境的准备、配置文件的修改、最大文件数量限制的调整以及启动和检查服务状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是ElasticSearch

Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。
  Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库——无论是开源还是私有,但它也仅仅只是一个库。为了充分发挥其功能,你需要使用 Java 并将 Lucene 直接集成到应用程序中。 更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理,因为Lucene 非常复杂。
  为了解决Lucene使用时的繁复性,于是Elasticsearch便应运而生。它使用 Java 编写,内部采用 Lucene 做索引与搜索,但是它的目标是使全文检索变得更简单,简单来说,就是对Lucene 做了一层封装,它提供了一套简单一致的 RESTful API 来帮助我们实现存储和检索。
  当然,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确地形容:

  • 一个分布式的实时文档存储,每个字段可以被索引与搜索;
  • 一个分布式实时分析搜索引擎;
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。

由于Elasticsearch的功能强大和使用简单,维基百科、卫报、Stack Overflow、GitHub等都纷纷采用它来做搜索。现在,Elasticsearch已成为全文搜索领域的主流软件之一。

二、安装(Centos7)

1、安装java1.8(自行安装)

2、关闭防火墙和SELINUX

[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalld
#设置selinux为disable
[root@localhost ~]#vi /etc/selinux/config 
SELINUX=disabled
#使修改生效
[root@localhost ~]#setenforce 0

3、创建非root用户

#创建普通用户
useradd es
#修改用户密码(密码为es)
passwd es
#创建一个普通组
groupadd -r es
#创建一个普通用户并加入组
useradd -r -g es es
#进入普通用户模式
su - es
#切换到root用户
exit
#查看用户信息
more /etc/passwd

5、下载安装文件并解压

可以从 elastic 的官网 elastic.co/downloads/elasticsearch 获取最新版本的Elasticsearch,解压后把文件夹权限给普通用户

#给普通用户访问文件夹权限
chown -R es:es /opt/elasticsearch-7.13.4

6、切换到普通账号

su - es

7、修改配置文件

修改解压文件夹config中的elasticsearch.yml配置文件中的如下信息:

#集群名称,每个节点需要配置相同的集群名才能加入同一个集群中,一个节点只能加入一个集权
cluster.name: es-cathl
#节点名称,默认使用主机名,
node.name: node-101-68
#网络地址
network.host: 192.168.101.68
#索引数据的存储路径
path.data: /home/es/es7-data
#日志文件的存储路径
path.logs: /home/es/es7-logs
#对外服务的HTTP端口
http.port: 9200
#节点间交互的TCP端口
transport.port: 9300
#种子主机列表
discovery.seed_hosts: ["192.168.101.68"]
#初始主节点
cluster.initial_master_nodes: ["node-101-68"]
#hot节点,配置大内存和SSD,用来扛平常的用户请求;warm节点,机械硬盘小内存,用来存储历史不常用的数据,和偶尔的后台任务查询
node.attr.box_type: warm
#Elasticsearch第一次加载一个新脚本时, 会将新脚本编译并存储在缓存中,5分钟执行脚本编译5000个
script.max_compilations_rate: 5000/5m
#开启收集Elasticsearch监视数据
xpack.monitoring.collection.enabled: true

修改配置文件jvm.options信息如下:(详细Heap Size的配置信息,可参考官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html

#设置最小和最大Heap Size默认为1G,修改为3G,Xms建议不超过物理内存的50%,尽可能提交配置来提高ES处理性能
-Xms3g
-Xmx3g

7、修改es用户能打开的最大文件数量

#查看es用户当前打开文件数量限制
[es@localhost opt]$ ulimit -n
1024
#退出es,在root用户下修改文件/etc/security/limits.conf,添加以下内容:
[root@localhost opt]$vi /etc/security/limits.conf
es soft memlock unlimited
es hard memlock unlimited
es hard nofile 65536
es soft nofile 65536
#在/etc/sysctl.conf文件中添加以下内容
[root@localhost opt]$vi /etc/sysctl.conf
vm.max_map_count=655360
#修改完成后,使用sysctl -p执行生效
[root@localhost opt]$sysctl -p
#登录到es账号
[root@localhost opt]$su - es
#查看文件数量限制
[es@localhost opt]$ulimit -n
65536

8、启动

cd elasticsearch-7.13.4
./bin/elasticsearch -d

9、查看是否安装成功

[es@localhost elasticsearch-7.13.4]$ jps
11115 Elasticsearch
13310 Jps

10、如需备份ES到HDFS需要安装插件

#安装插件
[root@localhost elasticsearch-7.13.4]# bin/elasticsearch-plugin install repository-hdfs
#重启服务
[es@localhost elasticsearch-7.13.4]$ ./bin/elasticsearch -d

在浏览器中输入:http://192.168.101.68:9200 查看节点状态

在浏览器中输入:http://192.168.101.68:9200/_cluster/health   查看集群状态

状态说明(全部启用后再查看状态):

  • status一共有3个状态:

    • green:表示所有主分片及备份分片都分配好了,集群100%健康;
    • yellow:表示所有主分片都分配好了,但至少有一个备份分片未分配。数据没有丢失,搜索结果时完整的。但高可用性会缺失,存在丢失数据风险,以黄色表示警告;
    • red:表示至少有一个主分片未分配,并且这个主分片的所有分片都丢失了。数据已经丢失了,搜索结果不完整,并且往这个分片索引数据会发生异常。
  • number_of_nodes和number_of_data_nodes,分别是节点数和数据节点数。

  • active_primary_shards,集群中所有index的主分片数量的总和。

  • active_shards,集群中所有index的分片数量的总和,包括备份分片

10、停止服务

[es@localhost elasticsearch-7.13.4]$ kill -9 11115

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值