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

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

  1. 安装ElasticSearch

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

java -version
echo $JAVA_HOME
如果java的版本过低,建议安装高版本,下面安装的是java 1.8

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/1kVwRD2Z

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

There are 3 programs which provide 'java'.

Selection Command


  • 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 是第几个,就选择那个数字。

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

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

转载于:https://blog.51cto.com/3694780/2174815

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值