博主自主知识产权《Spring Boot深入浅出系列课程》(16章97节文档) 已经上线,请关注

ElasticSearch集群的搭建

ELK 字母哥 0评论

一:简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。结合logstash,kibana使用,可以用于大型分布式系统数据分析,展现。

官网:https://www.elastic.co/

二:ElasticSearch的特性:

1.开源的(不解释)
2.它是分布式和高度可用的搜索引擎。
2.1每个索引根据配置分片的数量完成完全分片。
2.2每个碎片都可以有一个或多个副本。
2.3读/搜索操作可以在任何复制分片上执行。
3.支持多租户与多种类型。
3.1支持一个以上的索引。
3.2支持一个以上的每个索引类型。
3.3指数级配置(数量的碎片,索引存储,…)。
4.各种组api
4.1HTTP RESTful API
4.2本地Java API。
4.3所有api执行自动从路由节点操作。
5.面向文档的
6.可靠异步写操作长期持续。
7.(附近)实时搜索。
8.基于Lucene
8.1每个碎片都是一个功能齐全的Lucene索引
8.2所有Lucene通过简单的配置/插件非常容易的暴露出来。
9.每个操作的一致性 ,单文档级别操作都是原子的、一致的、孤立的和持久的。

三:安装elasticsearch单点

3.1 下载

官方下载地址:https://www.elastic.co/downloads/elasticsearch

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.1/elasticsearch-2.4.1.tar.gz;

3.2 单点运行

nohup ./bin/elasticsearch &

3.3 测试

~/elk/elasticsearch-2.4.0$ curl -X GET http://localhost:9200/ 
{
  "name" : "Hack",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.4.0",
    "build_hash" : "ce9f0c7394dee074091dd1bc4e9469251181fc55",
    "build_timestamp" : "2016-08-29T09:14:17Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

当看到类似以上的返回结果,表示elasticsearch单点安装成功!

3.4 目录结构

  • bin:可以执行文件
  • config:配置文件
  • data:es存放数据的文件
  • lib:运行所需类库
  • logs:日志文件
  • modules:加载模块列表(其实是必要插件)
  • plugins:插件文件(需要自定义安装)

刚解压的ES并没有这么多目录,只有bin、config、lib、modules,其他都是在第一次运行之后自动生成的。

四:集群的搭建

elasticsearch集群的搭建特别的简单:
1. 在集群的每个节点上,将elasticsearch的单点安装好
2. 修改配置文件elasticsearch.yml的cluster.name(集群名称)配置,要求所有节点配置一致
3. 修改配置文件elasticsearch.yml的http.port为9200,所有节点配置统一

只要集群名相同,且机器处于同一局域网同一网段,es会自动去发现其他的节点

五:elasticsearch.yml中文版

# ======================== Elasticsearch Configuration =========================
#
# 注意:大部分的Elasticsearch默认配置都是相对合理的.在你着手调整和优化配置,确保你
#了解什么是你想实现的以及后果是什么。
# 修改节点配置的主要方式就是通过本文件,下面的模板列出了最重要的一些设置,你可以通过它配置一个生产环境集群
# 关于更多的配置项及详细信息请参考文档:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
#
# ---------------------------------- 集群配置 -----------------------------------
# 集群的名称描述,集群内统一:
cluster.name: aexit-elastic
#
# ------------------------------------节点配置 ------------------------------------
#
# 本节点的名称描述:
node.name: node-1
#
# 为节点添加自定义的属性:
# node.rack: r1
#
# ----------------------------------- 路径 ------------------------------------
#
# 数据存储路径 (多个路径用逗号分割):
# path.data: /path/to/data
#
# 日志文件路径:
# path.logs: /path/to/logs
#
# ----------------------------------- 内存 -----------------------------------
#
# 在启动过程中是否为内存加锁:
# bootstrap.memory_lock: true
#
# 请保证 `ES_HEAP_SIZE` 环境变量的设置大约为系统可用内存的一半
# and that the owner of the process is allowed to use this limit.
#
# 当发生swapping the memory, Elasticsearch 的执行效率很差.
#
# ---------------------------------- 网络 -----------------------------------
#
# 设置绑定的本机ip地址 (IPv4 or IPv6):
network.host: 192.168.1.158
#
# 自定义HTTP端口:
http.port: 9200
#
# 关于更多的信息请参考:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
#
# --------------------------------- 服务发现 ----------------------------------
#
# 当新节点加入的时候,配置一个初始化主机列表用于节点发现
# 默认的主机列表是 ["127.0.0.1", "[::1]"]
discovery.zen.ping.unicast.hosts: ["192.168.1.158", "192.168.1.60", "192.168.1.24"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
# 为了避免脑裂的发生,使用如下配置(数值为节点总数/2 + 1):
discovery.zen.minimum_master_nodes: 2
#
# 关于更多的信息请参考:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
#
# ---------------------------------- 网关 -----------------------------------
#
# 如果集群发生重启,直到N个节点启动完成,才能开始进行集群初始化恢复动作
gateway.recover_after_nodes: 3
#
# 关于更多的信息请参考:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
#
# ---------------------------------- 其他 -----------------------------------
#
# 禁止在一个操作系统启动多个节点:
node.max_local_storage_nodes: 1
#
# 删除索引时,需要明确的名称
# action.destructive_requires_name: true

参考:

http://blog.csdn.net/jiuqiyuliang/article/details/51245335
* 本文没有涉及到的elasticsearch head插件的安装(单点即可)
http://blog.csdn.net/jiuqiyuliang/article/details/51240800

喜欢 (14)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址