Elasticsearch 的安装、运行及简介

2015-08-16 22:05:53   最后更新: 2015-08-25 13:39:04   访问数量:800




Elasticsearch 是一个实时分布式搜索引擎,可以以非常高的速度实现大数据处理

一般用于全文搜索、结构化搜索与分析

维基百科、英国卫报、stackoverflow、github 等多家大型企业都使用 Elasticsearch 作为大数据处理与实时分析的解决方案

 

ubuntu 环境中 elasticsearch 的安装

如果使用的是 ubuntu,那么可以执行:

# 获取 elasticsearch 的公钥 wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

 

然后执行:

sudo echo "deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main" >> /etc/apt/sources.list sudo apt-get update && sudo apt-get install elasticsearch

 

 

其他 linux 发行版的安装

通过从官网上下载最新版的 elasticsearch 源码安装

 

运行 Elasticsearch

执行:

./elasticsearch -d

 

即可运行,-d 参数表示以守护模式运行

 

进入 http://localhost:9200 可以看到:

{ "status" : 200, "name" : "Black Tom Cassidy", "version" : { "number" : "1.1.2", "build_hash" : "e511f7b28b77c4d99175905fac65bffbf4c80cf7", "build_timestamp" : "2014-05-22T12:27:39Z", "build_snapshot" : false, "lucene_version" : "4.7" }, "tagline" : "You Know, for Search" }

 

 

elasticsearch 支持众多的插件,bin 目录下的 plugins 可以方便的完成查件的安装

如 elasticsearch-head,是一个 elasticsearch 可视化的集群管理工具,由 html5 编写的独立网页程序

运行:

./plugin -install mobz/elasticsearch-head

 

即可完成安装

 

每一个运行着的 Elasticsearch 都是一个节点

一组具有相同 cluster name 的节点组成了一个集群,一个集群中的所有节点协同工作共享数据并提供提供故障转移和扩展功能

 

通过在节点上执行:

curl -XPOST 'http://localhost:9200/_shutdown'

 

可以关闭一个节点

 

Elasticsearch 内置了两种客户端,用来实现交互

  1. 节点客户端(node client) -- 基于 java 语言的节点客户端并不储存数据,但他知道数据的具体为止,并直接转发请求到相应的节点上
  2. 传输客户端(Transport client) -- 传输客户端是一个轻量的转发客户端,用来将请求转发到远程集群

这两个 java 客户端默认都是通过 9300 端口与集群交互的,如果该端口(或配置后的新端口)没有开放,节点将无法构成集群

 

Elasticsearch 提供了 RESTful API,默认通过 9200 端口基于 http 协议与 Elasticsearch 通信

因此,你可以使用 curl 命令实现对 elasticsearch 的各项操作

curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'

 

 

Elasticsearch 返回一个类似 200OK 的 HTTP 状态码,并以 Json 格式返回请求结果

{ "count" : 0, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 } }

 

 

Elasticsearch 是面向文档的存储引擎,与面向键值列表的数据结构不同,Elasticsearch 可以方便的存储结构复杂的数据

Elasticsearch 使用 json 作为文档序列化格式,如下面的结构展示了一个 user 对象:

{ "email": "john@smith.com", "first_name": "John", "last_name": "Smith", "info": { "bio": "Eco-warrior and defender of the weak", "age": 25, "interests": [ "dolphins", "whales" ] }, "join_date": "2014/05/01" }

 

 






技术帖      database      技术分享      存储      集群      检索      search      opensource      开源      cluster      ha      检索引擎      elasticsearch      lucence      搜索      文档      节点      node     


京ICP备15018585号