Elasticsearch面试系列-01

1. 什么是 Elasticsearch?

ES是一种开源、RESTful、可扩展的基于文档的搜索引擎,它构建在Lucene库上。

用户使用Kibana就可以可视化使用数据,同时Kibana也提供交互式的数据状态呈现和数据分析。

Apache Lucene搜索引擎基于JSON文档来进行搜索管理和快速搜索。

Elasticsearch,可简称为ES(官方未给出简称名字,很多人都这么叫而已)一种开源、RESTful、可扩展的基于文档的搜索引擎,构建是在Apache Lucene库的基础上的搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要发挥其强大的作用,需使用Java并要将其集成到应用中。

Elasticsearch是使用Java编写并使用Lucene来建立索引并实现搜索功能,但是它的目的是通过简单连贯的RESTful API让全文搜索变得简单并隐藏Lucene的复杂性。

用户通过JSON格式的请求,使用CRUD的REST API就可以完成存储和管理文本、数值、地理空间、结构化或者非结构化的数据。

Elasticsearch不仅是Lucene和全文搜索引擎,它还提供:

1、分布式的实时文件存储,每个字段都被索引并可被搜索 2、实时分析的分布式搜索引擎 3、可以扩展到上百台服务器,处理PB级结构化或非结构化数据,而且所有的这些功能被集成到一台服务器,应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互。

Elasticsearch非常简单,它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。开箱即用(安装即可使用),只需很少的学习既可在生产环境中使用。Elasticsearch在Apache 2 license下许可使用,可以免费下载、使用和修改。

2. Elasticsearch 安装前需要什么环境?

ElasticSearch是基于lucence开发的,也就是运行时需要java jdk支持。所以要先安装JAVA环境。

注意:由于ElasticSearch 5.x往后依赖于JDK 1.8及以上版本,安装高版本ES需要考虑与JDK版本的兼容性问题。ElasticSearch早期版本需要JDK,在7.X版本后已经集成JDK,已无需第三方依赖。

3. ElasticSearch 的节点类型有什么区别?

ElasticSearch的节点类型主要包括主节点(Master Node)、数据节点(Data Node)和客户端节点(Client Node)。这些节点类型在ElasticSearch集群中各自扮演着不同的角色,共同协作以支持集群的正常运行。

  1. 主节点:
  • 职责:主节点主要用于控制整个集群的操作,如创建或删除索引,管理其他非主节点等。集群中任何时候只能有一个主节点负责这些任务,但可以有多个候选主节点以防当前主节点失败。
  • 特点:主节点不参与数据的存储和检索操作,因此其硬件资源(如CPU、内存、磁盘)的要求相对较低。在大型集群中,通常会使用专用的主节点来提高集群的稳定性。
  1. 数据节点:
  • 职责:数据节点主要用于存储索引数据,并执行与数据相关的操作,如文档的增删改查(CRUD)、搜索和聚合等。数据节点的数量和性能直接影响Elasticsearch的数据处理能力。
  • 特点:数据节点对硬件资源的要求较高,特别是在处理大量数据和高并发请求时。因此,在优化Elasticsearch集群时,需要监控数据节点的状态,并根据需要添加新的数据节点。
  1. 客户端节点:
  • 职责:当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等。它本质上是一个智能负载平衡器,协调主节点和数据节点的工作。客户端节点加入集群后可以获取集群的状态,并根据集群状态直接路由请求。
  • 特点:客户端节点不存储数据,也不参与数据的索引和检索操作。它主要用于处理来自客户端的请求,并将请求分发到合适的数据节点进行处理。因此,客户端节点的硬件资源要求相对较低。

总的来说,ElasticSearch的节点类型在职责和特点上有所区别。主节点负责集群的控制和管理,数据节点负责数据的存储和检索,而客户端节点则负责协调和处理客户端请求。这些节点类型共同协作,使得ElasticSearch集群能够高效地处理大量数据和高并发请求。

4. 说说 ElasticSearch 生产集群节点分配方案?

1、针对节点按照分工职责进行划分;

2、生产集群建议部署3台以上单独作为master节点,只负责成为主节点,维护整个集群的状态。

3、设置一批data节点,负责存储数据、建立索引和查询索引服务。对磁盘,内存要求相对较高。

4、设置一批client节点,只负责处理用户请求,实现请求转发,负载均衡等功能。<

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦睡了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值