说明:这里只介绍在Linux下ElasticSearch的安装配置,windows下的使用跟Linux很类似
一、前期准备
Elasticsearch 需要Java 7的支持,推荐使用Oracle JDK version 1.7.0_60,根据所选用平台在这里下载安装,
完成
安装后设置好环境变
JAVA_HOME
(如何设置Java的环境变量这里不再赘述),然后可以使用
java -version
命令
进行版本检查。
二、下载安装ElasticSearch
完成准备工作之后,下载安装ElasticSearch最新发布包,点这里下载,选择下载zip包elasticsearch-1.3.1.zip并上传到服务器的/usr/search/目录下,然后使用命令unzip
elasticsearch-1.3.1.zip进行解压,这时进入
/usr/search/
elasticsearch-1.3.1/bin/ 用命令
./elasticsearch -d
启动单个集群。如果看到类似下面日志后说明安装正常:
./
elasticsearch
.....
[2014-03-13 13:42:23,630][INFO ][node ] [New Goblin] started
三、启动包含多个节点的ElasticSearch集群
因为ElasticSearch原生就是支持集群的,启动单个es节点也是集群,每个集群都有一个名称,默认的集群名称为
elasticsearch
,同样每个
elasticsearch
节点也都有名称,如果不指定,ElasticSearch会从自己的配置文件中随机选出一个作为自己的名称,如果启动节点时想指定集群名称和节点名称,使用一下命令进行启动:
./
elasticsearch
--
cluster
.
name <集群名称>
--
node
.
name <节点名称>
所以在ElasticSearch中启动集群是很简单的事情,启动其他的节点,可以在其上
重复第一步和第二步的操作
,如果不希望修改集群名称和节点名称,那么ElasticSearch通过使用局域网广播自动发现机制寻找默认集群名称的所有节点,最终拥有相同集群名称的节点就自动的构成了一个ElasticSearch集群,不用做其他繁琐的配置,这样一个集群环境就搭建好了。这时可以在任意一台服务器使用
curl
'localhost:9200/_cat/health?v' 查看集群健康状态了,再比如:
curl 'localhost:9200/_cat/nodes?v' 查看集群中所有的节点信息
curl 'localhost:9200/_cat/indices?v' 查看所有索引
curl -XPUT 'localhost:9200/customer?pretty' 创建索引名称为customer的索引
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{"name": "John Doe"}' 索引一篇文档,类型为external,文档ID:1
curl -XGET 'localhost:9200/customer/external/1?pretty' 查询一篇文档
curl -XDELETE 'localhost:9200/customer?pretty' 删除索引名称为customer的索引
四、ElasticSearch插件的安装
上述对于集群的测试都是通过命令行的方式,使用起来不是很直观,ElasticSeach提供插件的方式可以对整个集群进行检测和管理、功能扩展等。
1) 集群服务servicewrapper
elasticsearch-servicewrapper
是用在ElasticSearch上的Java服务包装器,可以将Java进程包装系统服务进行管理。在这里下载插件的zip包,解压后,将目录 中的service这个目录拷贝到ES_HOME/bin/下,修改ES_HOME/bin/service/elasticsearch.conf中set.default.ES_HOME为ES的安装根目录,然后使用命令
ES_HOME/bin/service/
elasticsearch查看
elasticsearch-servicewrapper支持的参数:
console | Run the elasticsearch in the foreground. |
start | Run elasticsearch in the background. |
stop | Stops elasticsearch if its running. |
install | Install elasticsearch to run on system startup (init.d / service). |
remove | Removes elasticsearch from system startup (init.d / service). |
如果想将elasticsearch设置成系统服务可以通过以下步骤:
a、
ES_HOME/bin/service/
elasticsearch install
b、
chkconfig
elasticsearch on
然后就可以通过service elasticsearch [console] [start] [stop] [restart] [install] [remove]来操作了。
2) 基于Web的集群节点浏览插件head
elasticsearch-head是ElasticSearch浏览集群信息并与之交互的web应用程序;通过该插件可以查看集群中节点分布拓扑图,提供基于Json方式的查询界面入口等功能。
使用说明:
a、 在这里下载
elasticsearch-head的zip包elasticsearch-head-master.zip
b、使用命令进行本地安装:
ES_HOME/bin/plugin -i head -u file:<目录>/elasticsearch-head-master.zip
c、
http://localhost:9200/_plugin/head进行查看
3) 官方推荐的ElasticSearch监控管理插件Marvel
该插件提供更为详细的集群检测管理功能,提供带有查询提示的界面Sense。
使用说明:
a、 在这里下载
elasticsearch-head的zip包elasticsearch-head-master.zip
b、使用命令进行本地安装:
ES_HOME/bin/plugin -i marvel -u file:<目录>/elasticsearch-marvel-master.zip
c、
http://localhost:9200/_plugin/marvel进行查看
五、配置说明
ElasticSearch大多配置基本都放在ES_HOME/config/elasticsearch.yml中,主要配置参数说明:
#cluster.name: elasticsearch 配置集群名称 #node.name: "Franz Kafka" 配置节点名称 #node.master: true 配置当前节点是否具有可选为master节点的资格、 #node.data: true 配置当前节点是否允许存储数据 #node.max_local_storage_nodes: 1 配置每个几点可以启动的Elasticsearch最大实例个数 #index.number_of_shards: 5 配置索引的默认分片数 #index.number_of_replicas: 1 配置索引的默认副本数 #path.conf: /path/to/conf 配置文件存放目录 #path.data: /path/to/data 配置该节点索引数据的存放目录,多个用都好分割 #path.logs: /path/to/logs 配置日志的存放目录 #path.plugins: /path/to/plugins 配置插件安装目录 #network.host: 192.168.0.1 配置节点绑定的IP和与其他几点交互的IP #transport.tcp.port: 9300 配置节点之间交互的端口 #http.port: 9200 配置Http访问的端口 #http.max_content_length: 100mb 配置可允许的文本最大长度