安装ElasticSearch ,以及在yii2中的使用

ElasticSearch 是一款优秀的搜索引擎,用java编写,restful接口的方式进行对接。

1. 安装ElasticSearch

安装Java环境
首先检测是否安装java

  1. java -version
  2. echo $JAVA_HOME

yum install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

  

2.

2.1安装ElasticSearch

https://www.elastic.co/downloads/  下载并解压。

 默认初始化2G内存,修改conf/jvm.options

 
groupadd elasticsearch
useradd -g elasticsearch elasticsearch
chown elasticsearch:elasticsearch -R elasticsearchdir

一定要注意,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,重要的说三遍。

我这里用的是我新建的elasticsearch账户开机启动

 

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

sysctl -w vm.max_map_count=262144

并用以下命令查看是否修改成功

sysctl -a | grep "vm.max_map_count"

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

vi /etc/security/limits.conf

*  soft nofile 65536

* hard nofile 131072

 

2.3 配置

vim /usr/local/elasticsearch/config/elasticsearch.yml

修改如下:

  1. cluster.name: TA-application
  2. node.name: node-210
  3. network.host: 192.168.0.210

其中cluster.name 是集群名称,这个不要使用默认的,要修改,去掉注释,如果有多个机器,加入同一个集群,那么这个值必须一样

noide.name 是集群里面每个节点的值,也就是当前机器的节点的值,这个值,每个节点要不一样。

network host 改成当前的内网ip

2.3  #安装head 插件

  1. su elasticsearch
  2. cd /usr/local/elasticsearch
  3. bin/plugin install mobz/elasticsearch-head
  4. #启动:
  5. bin/elasticsearch -d

2.4 查看:

http://192.168.0.210:9200/

head插件地址:

http://192.168.0.210:9200/_plugin/head/

2.5 集群设置

如果想要建立一个elasticSearch集群,可以按照下面的步骤,非常的简单,首先,想说明的是:对于elasticSearch,他隐藏了分布式的复杂性,分片和复制集,都是他自动完成,你只需要配置好ip就可以了,下面是配置的步骤:

我有两台机器  192.169.0.210   192.168.0.199

我的两台机器都按照上面的步骤配置完成,下面配置集群

首先是192.168.0.210

vim /usr/local/elasticsearch/config/elasticsearch.yml

#找到行 , 修改如下:

  1. discovery.zen.ping.unicast.hosts: ["192.168.0.199"]

上面的ip就是其他的节点的ip,如果我有5台机器,那么,这里需要把其他四台机器的ip写上。

同理,对于其他的节点,需要把其他的节点协商,用逗号隔开

elasticSearch会找到对应的节点,自动分片和做复制集。

3. 资料片

官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/5.0/_installation.html

入门教程

http://www.jianshu.com/p/f437b893502a

权威指南

http://es.xiaoleilu.com/

 

4.  Elasticsearch集群关闭节点

  1. 关闭节点
  2. 关闭节点的API允许关闭集群中的一个或多个(或者全部)节点。下面是一个关闭 _local 节点的例子:
  3. $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
  4. 也可以通过各自的节点ID来关闭指定的节点(或者像这里说明 的别的选项):
  5. $ curl -XPOST 'http://localhost:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown'
  6. 集群的主节点也可以使用下面的方法来关闭:
  7. $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_master/_shutdown'
  8. 最后,可以使用如下的任意一种方法来关闭所有的节点:
  9. $ curl -XPOST 'http://localhost:9200/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_all/_shutdown'
  10. 延迟
  11. 默认情况下,关闭命令会延迟1(1s)之后执行。可以通过设置 delay 参数 来指定延迟的时间。比如:
  12. $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown?delay=10s'
  13. 禁用关闭命令
  14. 关闭的API可以通过设置节点里的 action.disable_shutdown 选项来禁用。

5. Yii2 使用elasticSearch

首先需要安装yii2的elasticSearch插件

https://github.com/yiisoft/yii2-elasticsearch

安装步骤,参看官网的下面的说明,用起来还是不错

里面有聚合功能,可以做一些小规模数据的快速统计。

yii2 elasticSearch的使用说明地址:https://github.com/yiisoft/yii2-elasticsearch/blob/master/docs/guide/README.md

 

posted @ 2017-06-09 15:57  luckc#  阅读(1369)  评论(0)    收藏  举报