ElasticSearch 是一款優秀的搜索引擎,用java編寫,restful接口的方式進行對接。html
安裝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
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)
#
解決方案:調小啓動內存
#-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 查看:
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會找到對應的節點,自動分片和作複製集。
官方文檔:
https://www.elastic.co/guide/en/elasticsearch/reference/5.0/_installation.html
入門教程
http://www.jianshu.com/p/f437b893502a
權威指南
關閉節點
關閉節點的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 選項來禁用。
首先須要安裝yii2的elasticSearch插件
https://github.com/yiisoft/yii2-elasticsearch
安裝步驟,參看官網的下面的說明,用起來仍是不錯
裏面有聚合功能,能夠作一些小規模數據的快速統計。
yii2 elasticSearch的使用說明地址:https://github.com/yiisoft/yii2-elasticsearch/blob/master/docs/guide/README.md