ElasticSearch - Installation
Get OracleJDK
http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk.html#BJFJHFDD
移除舊的JDK
rpm -qa | grep jdk
yum remove openjdk....
下載jdk-8u60-linux-x64.rpm
安裝
rpm -ivh jdk-8u60-linux-x64.rpm
確認安裝成功
java -version
應該要看到
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
export $JAVA_HOME with JDK/JRE
編輯/etc/profile & $home/.bash_profile
加入以下
export JAVA_HOME="/usr/java/latest"
存檔離開
取得ElasticSearch
使用以下命令
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.0.0/elasticsearch-2.1.1.tar.gz
解壓縮
tar -zxvf elasticsearch-2.1.1.tar.gz
切目錄
cd elasticsearch-2.1.1/bin/
啟動elasticsearch (單節點) ./elasticsearch
但我們要有Cluster 所以改用以下命令
./elasticsearch --cluster.name my_cluster_name --node.name my_node_name
./elasticsearch --cluster.name [我的叢集名稱] --node.name [我的節點名稱]
本環境設定叢集名稱為 es_cluster (elasticsearch cluster) 節點分別為node1, node2, node3, 在三台機器分別的啟動命令為
./elasticsearch --cluster.name es_cluster --node.name node1
./elasticsearch --cluster.name es_cluster --node.name node2
./elasticsearch --cluster.name es_cluster --node.name node3
第一次跑失敗 因為elasticsearch不建議使用root執行
移動elasticsearch目錄到/opt/下面 再換一般使用者身分執行
還有權限問題 建議一開始下載elasticsearch使用一般使用者
就可以正常執行了
而Elasticsearch叢集節點應給予獨立組態檔配置,才有較好使用結果。
叢集健康狀態
Elasticsearch使用REST API,可以得之叢集狀態與進行管理
預設通訊埠是9200 使用curl對本機9200發request即可 命令:
curl 'localhost:9200/_cat/health?v'
應該會得到類似的回應:
[kedy@es1 ~]$ curl 'localhost:9200/_cat/health?v'
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shar ds_percent
1446545469 18:11:09 escluster green 1 1 0 0 0 0 0 0 - 100.0%
狀態為Green代表所有功能都是正常運作的。Yellow代表所有資料都有,但可能有些replica並沒有正常配置,但此時叢集功能還是正常,包含資料的新增修改刪除與搜尋等都可以。如果狀態為Red,表示有些資料不知道怎麼了,可能有問題,此時也會影響搜尋與運算結果。
要注意的是,就算叢集狀態在Red,有些功能可能還是可以運作的,只是會影響最終的執行結果,因此要盡快排除此狀態。
叢集節點狀態
命令:
curl 'localhost:9200/_cat/nodes?v'
回應:
[kedy@es1 ~]$ curl 'localhost:9200/_cat/nodes?v'
host ip heap.percent ram.percent load node.role master name
127.0.0.1 127.0.0.1 2 77 0.00 d * node1
列出索引(List All Indices)
命令:
curl 'localhost:9200/_cat/indices?v'
回應:
health status index pri rep docs.count docs.deleted store.size pri.store.size
因為我們剛建立,所以目前沒有任何索引。