ElasticSearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)。


1、术语


集群

cluster

一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识。

节点

node

一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。同样,一个节点也是由一个名字来标识的。

索引

index

一个索引就是一个拥有几分相似特征的文档的集合。一个索引由一个名字来标识(必须全部是小写字母的)。类似 mysql中 database。

类型

type

在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。类似  mysql 中 table。

文档

document

一个文档是一个可被索引的基础信息单元。其由_id来标识。类似  mysql 中 id。例如一个文档通过/index/type/id来索引到。

2、基本结构


elastiknn 安装_elastiknn 安装

基本特点:

(1)分片和复制

   一个索引可以存储超出单个结点硬件限制的大量数据。例如,当一个索引拥有10亿文档,占据1T的磁盘大小,一台主机所拥有的的磁盘大小达不到1T磁盘空间;或者单个节点同时处理大量用户的搜索请求,容易出现瓶颈,响应过慢。

  为解决以上等问题,ElasticSearch支持将索引划分为多份,分配在集群中不同节点上,该技术被称为分片技术。同时,分布式的架构也提高了吞吐量。

  另外,由于某些故障导致其中一台节点运行失败,导致该节点上的分片丢失,因此出现了复制分片技术,用户可以指定分片备份数,将备份分片分配在不与原分片同一节点的其它节点上,因此在该节点失败的状况下,可以在集群中另几台节点上找到备份分片,保证数据的正确性。

3、安装


3.1环境


操作系统:Redhat6.5

3.2安装


注意:主机内存需要大一些,不然无法启动成功,我之前用了一台1C,2GB的虚拟机,可能由于同时运行多种服务,导致内存不够,未启动成功。

(1)获取elasticsearch包源
# wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz


(2)修改配置文件
$ cd elasticsearch-5.2.2/config
修改主机IP地址,若单台节点也可以默认不修改,为本地localhost。
network.host: x.x.x.x     //主机IP地址 

(3)创建用户,出于安全考虑,elasticsearch默认不允许采用root用户运行。
创建elasticsearch用户组
# groupadd elasticsearch
创建用户elasticsearch并加入用户组elasticsearch以及设置密码elasticsearch
# useradd elasticsearch-g elasticsearch -p elasticsearch
并设置root权限
# vim /etc/sudoers
elasticsearch ALL=(ALL)       ALL

(4)用elasticsearch用户登录主机,解压elasticsearch-5.2.2.tar.gz

$ tar xvzf elasticsearch-5.2.2.tar.gz


(5)启动elasticsearch服务

$ cd elasticsearch-5.2.2/bin/

$ nohup ./elasticsearch &

启动时出现如下错误:

java.lang.UnsupportedOperationException:seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP andCONFIG_SECCOMP_FILTER compiled in

原因,是由于Linux版本过低报的错误。

解决办法:

a)重新安装高版本的linux系统。

b)该警告不影响使用,可忽略该项错误。

(6)验证elasticsearch
$ curl 'localhost:9200/'
{
 "name" : "E3VPWLI",
 "cluster_name" : "elasticsearch",
 "cluster_uuid" : "dIkuBg7oTLGjV3mHfTaL6g",
 "version" : {
   "number" : "5.2.2",
   "build_hash" : "f9d9b74",
   "build_date" : "2017-02-24T17:26:45.835Z",
    "build_snapshot": false,
   "lucene_version" : "6.4.1"
  },
 "tagline" : "You Know, for Search"
}


4、参考文章


https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/