1. 程式人生 > >Elasticsearch入門二:Elasticsearch.5.4.3+kibana5.4.3+word分詞叢集linux搭建

Elasticsearch入門二:Elasticsearch.5.4.3+kibana5.4.3+word分詞叢集linux搭建

一.軟體版本

  • jdk-8u191-linux-x64.tar.gz

  • elasticsearch-5.4.3.tar.gz

  • kibana-5.4.3-linux-x86_64.tar.gz

  • word-master.zip

二.環境搭建

1.jdk8安裝

1.1.下載地址

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html中獲取安裝包

1.2.在usr目錄下建立java安裝目錄

以root使用者登入

cd /usr

mkdir java

1.3.解壓jdk至當前目錄

tar -zxvf jdk-8u60-linux-x64.tar.gz

1.4.安裝完畢為他建立一個連結以節省目錄長度

ln -s /usr/java/jdk1.8.0_60/ /usr/jdk

1.5.配置環境變數

vim /etc/profile

新增如下內容:JAVA_HOME根據實際目錄來

JAVA_HOME=/usr/java/jdk1.8.0_60

CLASSPATH=$JAVA_HOME/lib/

PATH= P A

T H : PATH: JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

1.6.執行命令使jdk生效

source /etc/profile

1.7.檢視安裝情況

java -version

1.8.若以前jdk是低版本,需要執行以下命令再執行1.6步驟使生效

使用which java 和 which javac 分別可以看到原來的安裝記錄

which java
which javac

然後刪掉原來的版本記錄

rm -rf /usr/bin/java*

2.elasticsearch-5.4.3叢集安裝

2.1.解壓

https://www.elastic.co/downloads/past-releases/elasticsearch-5-4-3獲取安裝包

解壓到安裝路徑下:

tar zxvf elasticsearch-5.4.1.tar.gz

2.2.配置es

檢視配置檔案:

vim elasticsearch-5.4.1/config/elasticsearch.yml
vim elasticsearch-5.4.1/config/jvm.options

2.2.1.elasticsearch.yml配置詳情如下:

cluster.name: cluster_name   //自己的叢集名稱,相同的叢集名稱需要保持一致。確保不要在不同的環境中重用相同的叢集名稱,否則可能會導致節點加入錯誤的叢集。

node.name: master            //節點名稱

node.master: true            //是否作為master,預設為true

node.data: true             //是否作為data,預設為true

path.data: /var/log/elasticsearch //預設是放在es的安裝目錄下,但為了避免升級丟失資料,最好不要放在安裝目錄上,比如/var/log/elasticsearch

path.logs: /var/data/elasticsearch //預設是放在es的安裝目錄下,但為了避免升級丟失資料,最好不要放在安裝目錄上,比如/var/data/elasticsearch

network.host: 192.168.2.36  //節點ip,生產地址一般使用IP地址

http.port: 9200    //訪問埠,預設為9200       

discovery.zen.ping.unicast.hosts: ["slave1", "slave2","master"] //實現節點到節點的叢集和主選擇

discovery.zen.minimum_master_nodes: 2   //為避免資料丟死(腦裂),數量應該為(master_eligible_nodes / 2) + 1

2.2.2.jvm.options主要用來配置堆大小:

-Xms2g 	//最小堆大小
-Xmx2g 	//最大堆大小

設定堆大小的注意事項:

  • Xms與Xmx大小設定成一致

  • es可用的堆大小越大,它可用於快取的記憶體越大,但過大的堆大小將導致垃圾回收時間增長

  • 將Xmx設定為不超過實體記憶體的50%,以確保為核心檔案系統快取保留足夠的實體記憶體

  • 不要將Xmx設定為高於JVM用於壓縮物件指標的截止值;確切的截止時間有所不同,但接近32gb

  • 儘量保持在零基礎壓縮oops的閾值以下;確切的截止時間各不相同,但在大多數系統上26gb是安全的,但在某些系統上可能高達30gb。您可以通過使用JVM選項
    -XX:+UnlockDiagnosticVMOptions
    -XX:+PrintCompressedOopsMode
    啟動Elasticsearch來驗證您的限制是否達到了

2.2.3.安裝時系統常見問題

2.2.3.1.設定系統檔案

通過編輯/etc/security/limits.conf來設定:

# Elasticsearch使用大量的檔案描述符或檔案控制代碼。耗盡檔案描述符可能是災難性的,並且很可能導致資料丟失。確保將執行Elasticsearch的使用者開啟的檔案描述符的數量限制增加到65,536或更高
elasticsearch soft nofile 65536	

elasticsearch hard nofile 65536

# Elasticsearch為不同型別的操作使用了許多執行緒池。確保Elasticsearch使用者能夠建立的執行緒數至少是4096個
elasticsearch soft nproc 2048

elasticsearch hard nproc 2048

#給予elasticsearch使用者鎖定記憶體的許可權,用來避免記憶體交換
elasticsearch soft memlock unlimited

elasticsearch hard memlock unlimited

2.2.3.2.避免記憶體交換

交換對於效能、節點穩定性都是非常糟糕的,應該不惜一切代價加以避免。它可能導致垃圾收集持續幾分鐘而不是幾毫秒,還可能導致節點響應緩慢,甚至與叢集斷開連線。在彈性分散式系統中,讓作業系統殺死節點更有效。可以通過在config/elasticsearch.yml中設定bootstrap.memory_lock: true將程序地址空間鎖定到RAM中,以防止交換。

2.2.3.3.設定虛擬記憶體

es預設使用mmapfs目錄去儲存索引,作業系統預設的mmap計數限制可能太低,這可能導致記憶體不足異常。通過在/etc/sysctl.conf中設定max_map_count為262144將解決該問題。

vi /etc/sysctl.conf

# 在sysctl.conf中增加
vm.max_map_count = 262144

通過sysctl -p命令檢視以上配置是否生效

2.3.es啟動

cd elasticsearch-5.4.0/bin

#  啟動 -d為守護程序執行
./elasticsearch -d

2.4.檢視es叢集狀態

通過瀏覽器訪問:http://192.168.2.36:9200/_cat/health?v即可以看到叢集的基本狀況,效果如下:

epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1540807979 18:12:59 search yellow 3 1 10 10 0 0 10 0 - 50.0%

3.kibana的安裝

kibana可以作為es的圖形化介面

3.1.解壓

https://www.elastic.co/downloads/past-releases/kibana-5-4-3獲取安裝包,然後解壓即可

tar zxvf kibana-5.4.3-linux-x86_64.tar.gz

3.2.啟動

需要遠端訪問kibana的話,需要修改config/kibana.xml的配置:

#設定ip不限制
server.host: "0.0.0.0"	

#es地址
elasticsearch.url: "http://192.168.2.36:9200"

執行命令bin/kibana,然後訪問http://192.168.2.36:5601檢視

4.word分詞外掛的安裝

該外掛支援中文分詞和詞性分析

4.1.解壓

https://github.com/ysc/word中獲取外掛壓縮包,然後解壓至es安裝目錄plugins下,且每個es服務都應該安裝該外掛!將es重新啟動即可。

4.2.測試中文分詞效果

在瀏覽器中訪問:http://192.168.2.36:9200/_analyze?pretty&analyzer=word&text=楊尚川是APDPlat應用級產品開發平臺的作者,可以看到如下效果就說明中文分詞已經生效。analyzer=word表示採用的分詞器是word,且與es目錄plugins中的檔名保持一致。

{
“tokens” : [
{
“token” : “楊尚川”,
“start_offset” : 0,
“end_offset” : 3,
“type” : “word”,
“position” : 0
},
{
“token” : “是”,
“start_offset” : 3,
“end_offset” : 4,
“type” : “word”,
“position” : 1
},
{
“token” : “APDPlat”,
“start_offset” : 4,
“end_offset” : 11,
“type” : “word”,
“position” : 2
},
{
“token” : “應用”,
“start_offset” : 11,
“end_offset” : 13,
“type” : “word”,
“position” : 3
},
{
“token” : “級”,
“start_offset” : 13,
“end_offset” : 14,
“type” : “word”,
“position” : 4
},
{
“token” : “產品”,
“start_offset” : 14,
“end_offset” : 16,
“type” : “word”,
“position” : 5
},
{
“token” : “開發”,
“start_offset” : 16,
“end_offset” : 18,
“type” : “word”,
“position” : 6
},
{
“token” : “平臺”,
“start_offset” : 18,
“end_offset” : 20,
“type” : “word”,
“position” : 7
},
{
“token” : “的”,
“start_offset” : 20,
“end_offset” : 21,
“type” : “word”,
“position” : 8
},
{
“token” : “作者”,
“start_offset” : 21,
“end_offset” : 23,
“type” : “word”,
“position” : 9
}
]
}

參考連結:

https://www.cnblogs.com/shihaiming/p/5809553.html

https://blog.csdn.net/u010824591/article/details/77775909