ElasticSearch----分布式搜索引擎

ElasticSearch

ElasticSearch

RESTful

在这里插入图片描述
在这里插入图片描述

全文检索

在这里插入图片描述

Lucene

Lucene 是一个开源、免费、高性能、纯 Java 编写的全文检索引擎,可以算作是开源领域最好的全文检索工具包。

在实际开发中,Lucene 几乎适用于任何需要全文检索的场景,所以 Lucene 先后发展出好多语言版本,例如 C++、C#、Python 等。

早在 2005 年,Lucene 就升级为 Apache 顶级开源项目。它的作者是 Doug Cutting,有的人可能没听过这这个人,不过你肯定听过他的另一个大名鼎鼎的作品 Hadoop。

不过需要注意的是,Lucene 只是一个工具包,并非一个完整的搜索引擎,开发者可以基于 Lucene 来开发完整的搜索引擎。比较著名的有 Solr、ElasticSearch,不过在分布式和大数据环境下,ElasticSearch 更胜一筹。

Lucene 主要有如下特点:

  • 简单
  • 跨语言
  • 强大的搜索引擎
  • 索引速度快
  • 索引文件兼容不同平台

ElasticSearch

ElasticSearch 是一个分布式、可扩展、近实时性的高性能搜索与数据分析引擎。ElasticSearch 基于 Java 编写,通过进一步封装 Lucene,将搜索的复杂性屏蔽起来,开发者只需要一套简单的 RESTful API 就可以操作全文检索。

ElasticSearch 在分布式环境下表现优异,这也是它比较受欢迎的原因之一。它支持 PB 级别的结构化或非结构化海量数据处理

在这里插入图片描述

整体上来说,ElasticSearch 有三大功能:

  • 数据搜集
  • 数据分析
  • 数据存储

ElasticSearch 的主要特点:

  • 分布式文件存储。
  • 实时分析的分布式搜索引擎。
  • 高可拓展性。
  • 可插拔的插件支持。

ElasticSearch安装

安装ES服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • /etc/security/limits.conf
* soft nproc 4096

* hard nproc 4096

* soft nofile 65536

* hard nofile 65536

在这里插入图片描述
在这里插入图片描述

  • /etc/sysctl.conf
vm.max_map_count=655360

在这里插入图片描述

单节点安装

首先打开 Es 官网,找到 Elasticsearch:

然后点击下载按钮,选择合适的版本直接下载即可。
在这里插入图片描述

将下载的文件解压,解压后的目录含义如下:

目录 含义
modules 依赖模块目录
lib 第三方依赖库
logs 输出日志目录
plugins 插件目录
bin 可执行文件目录
config 配置文件目录
data 数据存储目录

启动方式:

进入到 bin 目录下,直接执行 ./elasticsearch 启动即可。
在这里插入图片描述
看到 started 表示启动成功。

默认监听的端口是 9200,所以浏览器直接输入 localhost:9200 可以查看节点信息。
在这里插入图片描述

节点的名字以及集群(默认是 elasticsearch)的名字,我们都可以自定义配置。

打开 config/elasticsearch.yml 文件,可以配置集群名称以及节点名称。配置方式如下:

cluster.name: javaboy-es
node.name: master

配置完成后,保存配置文件,并重启 es。重启成功后,刷新浏览器 localhost:9200 页面,就可以看到最新信息。

在这里插入图片描述
Es 支持矩阵:

HEAD 插件安装

Elasticsearch-head 插件,可以通过可视化的方式查看集群信息。

浏览器插件安装

Chrome 直接在 App Store 搜索 Elasticsearch-head,点击安装即可。

在这里插入图片描述

下载插件安装

在这里插入图片描述
在这里插入图片描述

四个步骤:

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

启动成功,页面如下:
在这里插入图片描述

注意,此时看不到集群数据。原因在于这里通过跨域的方式请求集群数据的,默认情况下,集群不支持跨域,所以这里就看不到集群数据。

解决办法如下,修改 es 的 config/elasticsearch.yml 配置文件,添加如下内容,使之支持跨域:

http.cors.enabled: true
http.cors.allow-origin: "*"

配置完成后,重启 es,此时 head 上就有数据了。

在这里插入图片描述

分布式安装

  • 一主二从
  • master 的端口是 9200,slave 端口分别是 9201 和 9202

首先修改 master 的 config/elasticsearch.yml 配置文件:

cluster.name: javaboy-es	#(自定义的集群名称)

node.name: master	#(自定义的节点名称)

node.master: true	#(作为master节点)

network.host: 127.0.0.1	#(主机IP地址)

配置完成后,重启 master。

将 es 的压缩包解压两份,分别命名为 slave01 和 slave02,代表两个从机。

分别对其进行配置。

slave01/config/elasticsearch.yml:

cluster.name: javaboy-es	#(自定义的集群名称,同master节点的配置一致)

node.name: slave01	#(自定义的节点名称)

network.host: 127.0.0.1	#(主机IP地址)

http.port: 9201	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值