Elasticsearch基本概念和安装

一、什么是Elasticsearch?

1、基本概念及特征

(1)天生支持分布式:不需要借助其他组件,比如zookeeper

(2)搜索:重点在搜索与海量数据存储

(3)聚合分析:也支持数据聚合分析

(4)存储引擎:是一个存储引擎

(5)由java开发的,基于Lucene的,开源分布式搜索引擎

2、Elastic Stack技术栈,除了elasticsearch,还有(ELK):

(1)Kibana:图形化界面

(2)Elsticsearch:存储搜索引擎

(3)Logstash:消息采集器

(4)Beats(新出来的,取代了logstah的部分功能),有些老项目依然在用logstash

二、解决哪些业务问题:

1、适合的场景:

(1)海量数据

(2)全文检索

2、不适合的场景:

(1)管理数据:

(2)事务场景:不支持事务

(3)大单页查询:如从100亿查询10亿为一页

(4)数据实时写入和更新:海量数据实时写入有问题

3、引入两个概念:OLAP和OLTP

(1)OLTP:联机事务处理类数据库,具备ACID,属性如mysql,MongoDB(也支持事务)

(2)OLAP:联机分析处理类数据库,es,查询,全文搜索;

(3)各个数据库的技术选型:

创始人:Shay Banon

4、业务场景:

(1)搜索引擎

(2)电商平台

(3)导航、打车、外卖

(4)音频视频软件

(5)github

(6)ELK日志系统

(7)站内搜索

5、技术特性:

java开发,Lucene框架,json格式的数据格式,支持分布式、PB级海量数据、高性能、高可用、易扩展;

三、安装

两种安装模式:开发模式和生产模式

1、开发模式,一般用于非生产环境,windows,非集群;

2、由于ES是基于java语言开发的,因此需要安装与jdk版本匹配的ES版本;

版本兼容:

es6                      jdk8

es7.17-7.18         jdk17-

es8.0+                  jdk17

es8.5 +                 jdk18-19

3、安装jdk17,由于版本兼容问题,尽量使用ES7+和jdk17;

(1)jdk17下载地址:

https://www.oracle.com/java/technologies/downloads/?er=221886#jdk22-windows

因为本地还有安装jdk8,用于跑其他项目,因此下载的压缩包版本:

(2)配置ES的java环境变量,注意,变量名一定要写ES_JAVA_HOME,因为ES默认会在本地找这个变量名,如果找不到,才会使用自带的jdk;

(3)官网下载windows版本的压缩包,解压后启动即可:

  • ES解压目录下双击启动脚本即可:

  • 启动第一行日志,忽略JAVA_HOME环境变量,使用ES_JAVA_HOME:

  • 查看日志,启动成功,默认单节点启动:

  • 输入https://localhost:9200,输入用户名:elastic/****************,即可登录:
  • 注意:es默认的账号是elastic,密码会在启动日志里面输出
  • 使用浏览器访问,注意必须是https,使用谷歌浏览器,提示不安全链接时,点击高级,继续访问

四、ES多种运行模式:单节点发现、单节点集群、多节点集群

1、单节点发现模式:在配置文件配置:

discovery.type:single-node

特点:选举自己作为主节点并且不允许其他节点加入

2、单节点集群:选举自己作为主节点,但是允许其他节点加入

  • 将ES压缩包在本地复制多份:
  • 所有节点关闭securety安全检查

  • 配置elasticsearch.yml:
cluster.name: elastic_name
node.name: elastic_node_01
xpack.security.enabled: false
  • cluster.name: 集群名称,多个节点取一个集群名称即可,默认是elsaticsearch
  • node.name: 节点名称,同一个集群内多个节点名称不能重复
  • http.port:默认9200,默认递增
  • transport.port:节点之间的通讯端口,默认9300,默认递增
  • 编写bat启动文件,并双击启动bat文件:

  • 浏览器访问:三个节点端口递增,都可以访问

注意:如果之前已经启动过单节点,先删除es安装目录下的data文件夹和config文件夹下的elasticsearch.keystore文件,否则启动报错;

如果启动时,报错:

解决,配置elasticsearch.yml,禁用地图更新:

ingest.geoip.downloader.enabled: false

ES的集群是基于ES的自动发现策略实现的,什么是自动发现策略?即只需要关闭安全检查,在本地,不需要增加任何配置,es会自动组件集群,根据默认端口自增,生成多个节点组成的集群;

这种集群模式的优点:

简单、一劳永逸

缺点:多个节点复制多份,非常浪费磁盘空间

为了解决磁盘空间的问题,也可以使用一份节点文件,通过启动时指定不同的参数来启动多个节点

-Epath.data=data1 

-Epath.logs=logs1  

-Enode.name=node1

-Ecluster.name=elastic

-Expack.security.enabled=false

-Ehttp.port=9200

指定不同的data和log存放的目录,使用相同的解压文件来启动es

五、ES官方推荐的客户端Kibana

1、下载及安装:

官方下载: Kibana 8.4.1 | Elasticicon-default.png?t=N7T8https://www.elastic.co/cn/downloads/past-releases/kibana-8-4-12、直接启动

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch是一个基于Lucene的分布式全文搜索引擎,它可以快速地存储、搜索和分析大量数据。下面是Elasticsearch基本概念和架构: 1. 索引(Index): 索引是Elasticsearch中最基本的概念,它类似于数据库中的表。每个索引都包含多个文档,每个文档包含一些字段。在Elasticsearch中,每个索引都有一个唯一的名称,用于标识和检索索引中的文档。 2. 文档(Document): 文档是Elasticsearch中的基本数据单元,类似于数据库中的行。每个文档都包含一些字段,用于描述文档的内容。每个文档都有一个唯一的ID,用于标识和检索文档。 3. 类型(Type): 类型是在索引级别上对文档进行逻辑分区的方式。在Elasticsearch 6.x及以后的版本中,类型已经逐渐被弃用,使用_doc代替。 4. 节点(Node): 节点是Elasticsearch集群中的一个服务器,它可以存储索引和处理搜索请求。一个集群可以包含多个节点,每个节点都有一个唯一的名称和地址。 5. 分片(Shard): 为了支持大规模数据存储和搜索,Elasticsearch将每个索引分成多个分片,每个分片都是一个独立的Lucene索引。分片可以分布在不同的节点上,以实现分布式存储和搜索。 6. 副本(Replica): 为了提高搜索请求的响应速度和数据的可靠性,Elasticsearch可以为每个分片创建多个副本。副本分布在不同的节点上,可以提供负载均衡和故障转移的功能。 7. 集群(Cluster): 集群是由多个节点组成的Elasticsearch系统,提供分布式的存储和搜索功能。集群中的每个节点都知道其他节点的存在,并通过通信来协调数据的存储和搜索。 Elasticsearch的架构非常灵活,可以根据实际需求进行扩展和配置。它的分布式存储和搜索功能可以支持海量数据的存储和搜索,同时也提供了丰富的API和插件,可以方便地集成到其他应用中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值