ElasticSearch学习笔记(1)

前言

很久就打算学习 Elasticsearch 的一些知识了,看了许多资料,把学习过程中的想法和笔记记录下来。

好了,废话不多说,我们开始吧。

正文

Elasticsearch简介

要了解 Elasticsearch,就不得不提到 Lucene。它是 Elasticsearch 底层使用的全文检索工具。

Lucene

Lucene 是一个开源、免费、高性能、纯 Java 编写的全文检索工具包,它是开源领域一款非常好的检索工具包。

早在2005年,Lucene 就成为了 Apache 顶级的开源项目,它的作者是 Doug Cutting,他的另外一个作品就是大名鼎鼎的 Hadoop。

需要注意的是 Lucene 只是一个全文检索工具包,并非一个完整的搜索引擎。开发者可以基于 Lucene 开发出自己的搜索引擎,比较著名的、现成解决方案比如 Solr。

当然,在目前分布式和大数据环境下,Elasticsearch 更胜一筹。

Lucene 主要有以下特点:

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

Elasticsearch

Elasticsearch 是一个分布式、可扩展、近实时性的高性能搜索引擎与数据分析引擎。

Elasticsearch 也是基于 Java 编写,通过进一步封装 Lucene ,将搜索的复杂性屏蔽起来,开发者只需要一套简单的 RESTful API 就可以操作全文检索。

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

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

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

Elasticsearch 主要有如下特点:

  1. 分布式实时文件存储;
  2. 实时分析的分布式搜索引擎;
  3. 高可扩展性;
  4. 可拔插的插件支持。

Elasticsearch 各种安装

单节点安装

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

然后点击下载按钮,选择合适的版本直接下载即可。

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

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

启动方式:

Mac: 进入到 bin 目录下,直接执行 ./elasticsearch 启动即可。

Windows: 进入到 bin 目录下,直接执行 elasticsearch.bat 启动即可。

看到started表示启动成功。

默认监听端口是9200,所以浏览器直接输入 localhost:9200 可以查看节点信息。

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

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

1
2
3
4
5
6
7
8
9
# Use a descriptive name for your cluster:
#
cluster.name: sakuratears
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: master

重启后生效。

Elasticsearch支持矩阵:

HEAD 插件安装

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

这里介绍两种安装思路。

浏览器插件

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

或者下载离线安装包。

下载插件本身

1
2
3
4
5
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/

如果不成功可以尝试如下镜像:

1
2
3
4
# 淘宝镜像
npm install -g grunt --registry=https://registry.npm.taobao.org #安装grunt工具
npm install -g cnpm --registry=https://registry.npm.taobao.org #安装cnpm,这是链接中国的镜像
cnpm install #使用cnpm代替npm编译es-head源码

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

解决办法如下:修改 config/elasticsearch.yml 文件。

1
2
3
# 跨域支持
http.cors.enabled: true
http.cors.allow-origin: "*"

重启即可。

分布式安装

假设我们集群结构如下:

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

则我们应该如下配置。

首先修改master的 config/elasticsearch.yml 文件。

1
2
3
4
# 集群支持
node.master: true
http.port: 9200
network.host: 127.0.0.1

配置完成后重启master。

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

分别对其进行配置。

slave01 的配置如下 config/elasticsearch.yml

1
2
3
4
5
6
7
# slave01
# 集群名称必须一致
cluster.name: sakuratears
node.name: slave01
http.port: 9201
network.host: 127.0.0.1
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

slave02 的配置如下 config/elasticsearch.yml

1
2
3
4
5
6
7
# slave02
# 集群名称必须一致
cluster.name: sakuratears
node.name: slave02
http.port: 9202
network.host: 127.0.0.1
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

然后分别启动slave01和slave02,然后可以在head插件上查看集群信息。

Kibana安装

Kibana 是 Elastic 公司推出的一个针对 Elasticsearch 的分析以及数据可视化平台,可以搜索、查看存放在 Elasticsearch 中的数据。

需要注意安装 Kibana 版本需要与 Elasticsearch 版本一致,不然可能会出现问题。

安装步骤如下:

  1. 下载 Kibana : https://www.elastic.co/cn/downloads/kibana
  2. 解压
  3. 配置 Elasticsearch 的地址信息(可选,如果ES 是默认地址及端口,可以不用配置,具体配置文件是 config/kibana.yml)
  4. 执行 /bin/kibana 文件(命令 Mac:./kibana Windows: kibana.bat)
  5. 访问 localhost:5601

Kibana 安装好之后,首次打开时,可以选择初始化 ES 提供的测试数据,也可以不使用。

结语

本节我们介绍了 Elasticsearch ,了解到其底层主要由 Lucene 实现,并对 Lucene 做了简单介绍,另外我们学习了如何安装 Elasticsearch 及其插件,以及 Kibana,这对我们后面Elasticsearch的学习是有帮助的。




-------------文章结束啦 ~\(≧▽≦)/~ 感谢您的阅读-------------

您的支持就是我创作的动力!

欢迎关注我的其它发布渠道