一、认识ElasticSearch
Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合。
Elasticsearch 使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。
然而,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索
- 一个分布式实时分析搜索引擎
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
Elasticsearch 将所有的功能打包成一个单独的服务,这样你可以通过程序与它提供的简单的 RESTful API 进行通信, 可以使用自己喜欢的编程语言充当 web 客户端,甚至可以使用命令行(去充当这个客户端)。
二、环境依赖
因Elasticsearch 使用 Java 编写,故服务端需具备Java运行环境。
三、服务(集群)搭建
准备工作:
- 官网下载最新版本程序:https://www.elastic.co/products/elasticsearch
- 解压到服务端指定目录
重点需要关注两个文件:
- ./bin/elasticsearch 服务启动程序
- ./config/elasticsearch.yml 服务配置文件
1.运行单节点实例
单节点实例无需修改配置文件,直接启动即可。
./bin/elasticsearch #启动服务 (./bin/elasticsearch -d #后台运行服务)
在浏览器中访问http://localhost:9200/?pretty,看到此界面表明ES服务启动成功
2.搭建集群
如图所示,ElasticSearch集群由一个主节点多个从节点组成。
ElasticSearch集群搭建十分简单,每个节点都运行起来,且都有自己的配置信息。故每个节点都需要copy一份程序代码,修改各自配置文件信息并运行。
具体配置如下:
- 主节点配置信息:
//跨域设置
http.cors.enabled: true
http.cors.allow-origin: "*"
//集群配置
cluster.name: Jack-ElasticSearch
node.name: master
node.master: true
network.host: 127.0.0.1
- 从节点配置信息
cluster.name: Jack-ElasticSearch
node.name: slave2
network.host: 127.0.0.1
http.port: 9202
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
3.运行各节点
参照运行单节点实例