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

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

  1. 安装ElasticSearch

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

java -version
echo $JAVA_HOME
若是java的版本太低,建议安装高版本,下面安装的是java 1.8node

cd /opt/
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz"
tar xzf jdk-8u66-linux-x64.tar.gz
上面的下载,若是失效,您能够在个人百度网盘中下载jdk: https://pan.baidu.com/s/1kVwRD2Zlinux

cd /opt/jdk1.8.0_66/
alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 2
alternatives --config java
运行了上面的,会初选一个选择的地方,个人机器显示:git

There are 3 programs which provide 'java'. es6

Selection Command github


  • 1 /opt/jdk1.7.0_71/bin/java
    • 2 /opt/jdk1.8.0_45/bin/java
      3 /opt/jdk1.8.0_51/bin/java
      4 /opt/jdk1.8.0_66/bin/java

Enter to keep the current selection[+], or type selection number: 4
咱们安装的是jdk1.8.0.66 因此,我选择的是4,这个看具体状况,jdk1.8.0.66 是第几个,就选择那个数字。vim

alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar 2
alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 2
alternatives --set jar /opt/jdk1.8.0_66/bin/jar
alternatives --set javac /opt/jdk1.8.0_66/bin/javac
安装完成,检查版本服务器

java -version restful

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
保存到文件 /etc/environment中,当服务器重启的时候加载:

vi /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_66
export JRE_HOME=/opt/jdk1.8.0_66/jre
export PATH=$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin
重启linux

reboot
查看是否安装成功

java -version
echo $JAVA_HOME

2.

2.1安装ElasticSearch

cd /tools
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.3.zip
unzip elasticsearch-6.1.3.zip
mv ./elasticsearch-6.1.3 /usr/local/elasticsearch
cd /usr/local
groupadd elasticsearch
useradd -g elasticsearch elasticsearch
chown elasticsearch:elasticsearch -R elasticsearch
上面安装的是es6.

2.2 设置开机启动: 我是本地,直接把iptables 关掉了

vim /etc/rc.d/rc.local
service iptables stop
su elasticsearch -c "/usr/local/elasticsearch/bin/elasticsearch -d"
必定要注意,elasticSearch不能用root帐户启动,elasticSearch不能用root帐户启动,elasticSearch不能用root帐户启动,重要的说三遍,我这里用的是我新建的elasticsearch帐户开机启动

报错:

$./bin/elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#

There is insufficient memory for the Java Runtime Environment to continue.

Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.

An error report file with more information is saved as:

/data/elasticsearch-5.2.2/hs_err_pid26945.log

解决方案:调小启动内存

vi /usr/local/elasticsearch/config/jvm.options

#-Xms2g
#-Xmx2g
-Xms256m
-Xmx64m
上面设置的分配的内存的最大值为256MB和最小值64mb,您能够根据本身的机器状况设置内存大小。

从新启动便可。

2.3 配置

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

修改以下:

cluster.name: TA-application
node.name: node-210
network.host: 192.168.0.210
其中cluster.name 是集群名称,这个不要使用默认的,要修改,去掉注释,若是有多个机器,加入同一个集群,那么这个值必须同样

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

network host 改为当前的内网ip

下面的部分是elasticsearch 2 部分的插件,在es6中已经不可用,

es6的可视化GUI,请查看:http://www.fecshop.com/topic/668

2.3 #安装head 插件

su elasticsearch

cd /usr/local/elasticsearch

bin/plugin install mobz/elasticsearch-head

#启动:

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

#找到行 , 修改以下:

discovery.zen.ping.unicast.hosts: ["192.168.0.199"]
上面的ip就是其余的节点的ip,若是我有5台机器,那么,这里须要把其余四台机器的ip写上。

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

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

  1. 资料片

官方文档:

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

入门教程

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

权威指南

http://es.xiaoleilu.com/

  1. Elasticsearch集群关闭节点

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

  1. Yii2 使用elasticSearch

首先须要安装yii2的elasticSearch插件

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

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

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

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

相关文章
相关标签/搜索