您的位置:首页 > 其它

ElasticSearch学习10_ElasticSearch安装部署说明

2016-01-13 16:31 323 查看
一.对Elasticsearch的入门认识

Elasticsearch是一个实时分布式搜索和分析引擎。 它让你以前所未有的速度处理大数据成为可能。

它用于全文搜索、 结构化搜索、 分析以及将这三者混合使用。

下面是Elasticsearch一些应用的例子:

…维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-youmean)等搜索建议功能。

…英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。

…StackOverflow结合全文搜索与地理位置查询, 以及more-like-this功能来找到相关的问题和答案。

…Github使用Elasticsearch检索1300亿行的代码。

.

.

.

但是Elasticsearch不仅可以用于大型企业,还可以自己把玩或者解决一些自己工作中遇到的问题。Elasticsearch所涉及到的技术都不是新发现的,比如全文搜索,分析以及分布式数据库都已经存在了。Elasticsearch在于将这些独立的技术整合到一起成为一个一体化、实时的应用。

Elasticsearch存在的理由:Elasticsearch鼓励你浏览并利用你的数据, 而不是让它烂在数据库里, 因为在数据库里实在太难查询了。Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。 无论在开源还是专有领域, Lucene可以被认为是迄今为止最先进、 性能最好的、 功能最全的搜索引擎库。不过Lucene仅仅是一个库,要想使用它就必须用编程语言来集成它到你的应用里面,简单点说他就像C语言的一个库,并不是很好用。但是Elasticsearch通过简单的RESTful API来隐藏了Lucene的复杂性,从而让用户使用变得简单。

Elasticsearch不仅是Lucene和全文搜索,它拥有以下属性:

1.分布式的实时文件存储, 每个字段都被索引并可被搜索

2.分布式的实时分析搜索引擎

3.可以扩展到上百台服务器, 处理PB级结构化或非结构化数据

对于Elasticsearch的学习,最大的障碍就是你不明白里面一些新词汇的概念,我们可以把它类比传统的关系型数据库来学习:

Mysql->databases->tables->rows->columns

Elasticsearch->indices->Types->Documents->fields

在elasticsearch中索引作为一个名词使用的时候,可以类比关系型数据库中的database来学习,一个type就是一个json格式的反馈的一类事物,可类比C语言中结构体,同一个type里具有一模一样的field,就像把同一excel表复制一份,两份表里所有字段是一样的,不同的字段(field)组成一个类型(type),该类型被赋值后就形成了一个文档(document)。Elasticsearch里面还有个集群(cluster)的概念,一个集群就像一个部落,然后这个部落管理着各个村庄,每个村庄就相当于一个节点(node)。在现实运用中,一个elasticsearch运行实例就是一个节点(其实就是一个es的程序),同一台计算机上可以运行多个elasticsearch形成多个节点从而形成一个集群。但在实际中,我们在同一个网段下拥有很多的计算机,然后在每台计算机上运行一个elasticsearch,然后这些es的运行就形成了节点,所有的节点就形成了一个集群。看下图该集群有两个节点来自于同一台电脑,有一个节点不是,但他们都属于同一个网段(集群)。



二.安装运行Elasticsearch

从官网www.elatic.co可以下载最新版的elasticsearch,但是它需要JAVA环境的支持,一般在操作系统上装最新版的JDK就行,当然得配置好JAVA环境。

解压Elasticsearch,得到一个类elasicsearch*的文件夹,在终端模拟器进入文件夹运行./bin/elasticsearch(或者./bin/elasticsearch -d,以守护进程的方式运行,更多参数的信息,你可以通过./bin/elasticsearch –help方式得到)。

运行无错误后,可以得到如下的提示:



下面验证我们是否能跟Elasticsearch进行交互,在浏览器中输入:127.0.0.1:9200(或者localhost:9200),我们将看到如下json格式的反馈:



三.Elasticsearch插件的安装及使用

如果什么信息都通过RESTful API进行交互并返回json格式的信息,我们便难以管理Elasticsearch里面存储的海量数据和硬件事实状态的查看和维护,这里简单介绍两个插件:

插件head:它是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序。

插件安装方法:

1.elasticsearch/bin/plugin -install mobz/elasticsearch-head

2.运行es

3.打开http://localhost:9200/_plugin/head/

插件安装方法2:

1.https://github.com/mobz/elasticsearch-head下载zip 解压

2.建立elasticsearch-1.0.0\plugins\head\_site文件

3.将解压后的elasticsearch-head-master文件夹下的文件copy到_site

4.运行es

5.打开http://localhost:9200/_plugin/head/

在地址栏输入es服务器的ip地址和端口点connect就可以连接到集群。下面是连接后的视图。这是主界面,在这里可以看到es集群的基本信息(如:节点情况,索引情况)。



界面的右边有些按钮,如:node stats, cluster nodes,这些是直接请求es的相关状态api返回结果为json,如下图:



在索引下面有info和action两个按钮。info是可以查看索引的状态和mapping的定义。action是对索引进行操作,如:添加别名、刷新、关闭索引,删除索引等。



browser浏览界面,这个界面可以同时查看多个索引的数据,也可以查询指定字段的数据。



Structured Query查询界面,这个界面可以对某个索引进行一些复杂查询,如下面这个例子是查询product索引,构造boolquery,title字段里查询“产品”关键词,price范围为10到100的记录。



Any Request任意请求界面,这个界面可以说是个rest的客户端,可以通过它来对es进行一些请求操作或测试api接口,下面这个例子是把product索引的副本数设置为1,更多的api可以到es官网查询。



插件marvel: marvel是Elastic.co公司推出的商业监控方案,也是用来监控Elasticsearch集群实时、历史状态的有力工具。监控主要分为6个层面:集群层、节点层、索隐层、分片层、事件层、Sence

插件安装方法1:./bin/plugin -i elasticsearch/marvel/latest

如果上述安装错误,从官网下载marvel的压缩包放到elasticsearch/plugins/下

然后执行 ./bin/plugin -i elasticsearch/marvel/latest。

输入http://127.0.0.1:9200/_plugin/marvel,看到主界面为:



在仪表盘下进入sense可以进入后台,然后用es提供的API进行数据库的增删查改操作,如下图:



亦可用其他更友好的数据展示与查询的专用工具,如kibana



四.结束语

Elasticsearch作为一个分布式,实时数据搜索和存储的数据搜索引擎,具有关系型数据库无法比拟的大数据存储和搜索的功能。它可以对数据进行分布式的增删查改,结构化查询,结构化搜索,全文搜索,多字段搜索。是一个针对大数据的安全存储,快速搜索,智能化查询的利器。

原文来自:http://www.geek361.com/elasticsearch/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: