Elasticsearch开篇,把以前积累的一些东西整理一下,该篇介绍windows和Linux上安装Elasticsearch。
ElasticSearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布。目前我们将Elasticsearch用于日 志的实时采集和Mapreduce分析结果的查询业务中。
Elasticsearch支持分布式索引,近实时搜索,高效稳定,协议简单(通过http协议和json格式交互数据),无中心化,任何节点都是对等的,可以通过多副本来容错,自动发现节点等特性。
现在码农经常用的github就是通过Elasticsearch来构建分布式索引的。
Elasticsearch在windows安装
1,首先对比关系数据库和elasticsearch的关系。
Mysql | Elasticsearch |
database | index |
table | type |
table schema | mapping |
row | document |
field | field |
2,下载地址:
https://www.elastic.co/downloads/elasticsearch
目录结构:
目录(Directory) | 描述(Description) |
bin | 运行ElasticSearch实例和插件管理所需的脚本 |
config | 配置文件所在的目录 |
lib | ElasticSearch所使用的库 |
ElasticSearch启动后,它将创建以下目录(如果它们不存在):
目录(Directory) | 描述(Description) |
data | 存储ElasticSearch所使用的所有数据 |
logs | 实例运行期间产生的事件和错误信息的文件 |
plugins | 用于存储安装的插件 |
work | 临时文件 |
3,windows下安装
解压elasticsearch-1.4.0.zip
E:\workspace\fish-search>cd /d E:\tools\elasticsearch-1.4.0\bin E:\tools\elasticsearch-1.4.0\bin>elasticsearch.bat [2014-11-28 14:31:32,666][INFO ][node ] [Christopher Summers] version[1.4.0], pid[8344], build[bc94bd8/2014-11-05T14:26:12Z] [2014-11-28 14:31:32,666][INFO ][node ] [Christopher Summers] initializing ... [2014-11-28 14:31:32,671][INFO ][plugins ] [Christopher Summers] loaded [], sites [] [2014-11-28 14:31:46,889][INFO ][node ] [Christopher Summers] initialized [2014-11-28 14:31:46,889][INFO ][node ] [Christopher Summers] starting ... [2014-11-28 14:31:49,936][INFO ][transport ] [Christopher Summers] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/10.0.10.172:9300]} [2014-11-28 14:31:50,337][INFO ][discovery ] [Christopher Summers] elasticsearch/Ca3EKAj5RC6yHLr5QcgjCw [2014-11-28 14:31:54,141][INFO ][cluster.service ] [Christopher Summers] new_master [Christopher Summers][Ca3EKAj5RC6yHLr5QcgjCw][fish-PC][inet[/10.0.10.172:9300]], reason: zen-disco-join (elected_as_master) [2014-11-28 14:31:54,210][INFO ][http ] [Christopher Summers] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/10.0.10.172:9200]} [2014-11-28 14:31:54,210][INFO ][node ] [Christopher Summers] started [2014-11-28 14:31:55,605][INFO ][gateway ] [Christopher Summers] recovered [0] indices into cluster_state
启动后,访问:http://localhost:9200/
{
"status" : 200,
"name" : "Christopher Summers",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.4.0",
"build_hash" : "bc94bd81298f81c656893ab1ddddd30a99356066",
"build_timestamp" : "2014-11-05T14:26:12Z",
"build_snapshot" : false,
"lucene_version" : "4.10.2"
},
"tagline" : "You Know, for Search"
}
表示启动成功
让我们看看JSON的每个字段代表的含义:
status: 发出请求后的HTTP的错误代码。200表示一切正常。
name: 我们Elasticsearch实例的名字。在默认情况下,Elasticsearch会随机给一个名称,在elasticsearch的jar包中,config/names.txt文件中定义了这些默认的名称,Elasticsearch就是在该文件中随机获取的名称。
version: 这个对象有一个number字段,代表了当前运行的Elasticsearch版本号,和一个Snapshot_build字段,代表了你当前运行的版本是否是从源代码构建而来。
Tagline: 包含了Elasticsearch的第一个tagline: "You Know, for Search."
Linux ES集群安装
三台机器,分别是:
10.0.1.75
10.0.1.76
10.0.1.77
分别修改各台服务器的${ELASTICSEARCH_HOME}/config/elasticsearch.yml文件
10.0.1.75:
cluster.name: bicloud //集群名称(集群中所有机器,名称要一样) node.name: fish75 //节点名称(名称要不一样) node.master: true //true可以竞选主节点 node.data: true //是否为数据节点
10.0.1.76:
cluster.name: bicloud //集群名称(集群中所有机器,名称要一样) node.name: fish76 //节点名称(名称要不一样) node.master: true //true可以竞选主节点 node.data: true //是否为数据节点
10.0.1.77:
cluster.name: bicloud //集群名称(集群中所有机器,名称要一样) node.name: fish77 //节点名称(名称要不一样) node.master: true //true可以竞选主节点 node.data: true //是否为数据节点
各个服务器的Elasticsearch的配置文件配置好之后,然后启动就可以了。
[root@bicloud75 bin]# ./elasticsearch -d #启动完成之后查看进程是否存在 [root@bicloud75 bin]# jps 28710 Elasticsearch
http://10.0.1.77:9200/_nodes/process?pretty
插件的安装
elasticsearch-head插件
elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es。
[root@bicloud75 bin]# ./plugin -install mobz/elasticsearch-head -> Installing mobz/elasticsearch-head... Trying https://github.com/mobz/elasticsearch-head/archive/master.zip... Downloading ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONE Installed mobz/elasticsearch-head into /home/elasticsearch-1.6.0/plugins/head
安装成功后,访问:http://localhost:9200/_plugin/head/
粗线绿框表示主分片,细线绿框为备份分片。
elasticsearch-bigdesk插件
bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。
[root@bicloud77 bin]# ./plugin -install lukas-vlcek/bigdesk -> Installing lukas-vlcek/bigdesk... Trying https://github.com/lukas-vlcek/bigdesk/archive/master.zip... Downloading ........................................................................................................................................................................................................................................................DONE Installed lukas-vlcek/bigdesk into /home/elasticsearch-1.6.0/plugins/bigdesk Identified as a _site plugin, moving to _site structure ...
安装成功后,访问:http://localhost:9200/_plugin/bigdesk/#nodes
marvel安装
marvel是elasticsearch出品的一个收费插件。
[root@bicloud75 bin]# ./plugin -i elasticsearch/marvel/latest -> Installing elasticsearch/marvel/latest... Trying http://download.elasticsearch.org/elasticsearch/marvel/marvel-latest.zip... Downloading .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONE Installed elasticsearch/marvel/latest into /home/elasticsearch-1.4.2/plugins/marvel
安装成功后,访问路径:http://10.0.1.75:9200/_plugin/marvel/