Elasticsearch集群运维相关知识

0 概念

Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。
lucene是一个开源搜索引擎库。使用java开发。通过RESTful-API隐藏lucene的复制性,让全文搜索变得简单。可以通过下面三点来描述它:

  • 分布式的实时文件存储,每个字段都被索引,并且被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器

一 安装

  1. http://www.elasticsearch.org/download/ ,从官方网站下载Elasticsearch。
  2. 解压和启动:./bin/elasticsearch (-d)
    添加-d是后台运行
  3. 判断启动成功与否
    curl ‘http://localhost:9200/?pretty
    返回状态为200,则表示正常运行
  4. 集群和节点
    节点(node)是一个运行着的Elasticsearch实例。集群(cluster)是一组具有相同cluster.name的节点集合。

节点之间协同工作,共享数据,并提供故障转移和扩展功能。
cluster.name为集群的默认值,最好修改,可以防止新启动的es节点加入到同网络中的另一个集群中。
通过修改config/目录下的elasticsearch.yml文件,重启进程做到。

二 文档

应用中的对象很少只是简单的键值列表,更多时候它拥有复杂的数据结构,比如包含日期、地理位置、另一个对象或者数组。

你想将这些数据保存到由行和列组成的关系数据库中,就好像是把一个丰富,信息表现力强的对象拆散了放入一个非常大的表格中:你不得不拆散对象以适应表模式(通常一列表示一个字段),然后又不得不在查询的时候重建它们。
Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是Elasticsearch能够执行复杂的全文搜索的原因之一。

三 索引

它涵盖了一些基本的概念介绍,如索引(indexing)、搜索(search)以及聚合(aggregations)

在Elasticsearch中存储数据的行为就叫做索引(indexing),不过在索引之前,我们需要明确数据应该存储在哪里。
来看一个对比图:

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。

四 搜索

例如:检索单个员工的信息
通过执行HTTP GET请求并指出文档的“地址”——索引、类型和ID既可。根据这三部分信息,我们就可以返回原始JSON文档。

GET 检索
DELETE 删除
HEAD 检查是否存在
PUT 已存在文档会进行更新

五 聚合

Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计。它很像SQL中的GROUP BY但是功能更强大。

六 分布式

Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:

  • 将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
  • 将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
  • 冗余每一个分片,防止硬件故障造成的数据丢失。
  • 将集群中任意一个节点上的请求路由到相应数据所在的节点。
  • 无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值