安裝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

相關文章
相關標籤/搜索