天天看點

ElasticSearch、Kibana的下載下傳安裝

目錄

      • 概述
        • 全文索引
        • ES簡介
      • ES的下載下傳、安裝、啟動
        • 下載下傳
        • win版安裝、啟動
        • linux版安裝
        • linux版啟動、停止
      • Kibana的安裝、啟動
        • ES常見的調試方式
        • Kibana的安裝
        • Kibana的啟動、停止
        • Kibana的使用
        • 常見問題
          • 再次啟動es時抛出異常:某些檔案沒有權限
          • kibana粘貼代碼報錯

概述

全文索引

資料可分為2類

  • 結構化資料:格式固定、有長度限制,一般用關系資料庫來存儲。
  • 非結構化資料:無固定格式、不限制長度,eg. 郵件内容、word⽂檔内容。

非結構化資料的2種處理方式

  • 順序掃描:從前往後依次掃描,eg. 在一篇文章中搜尋“java”,會在這篇文章中從前往後掃描,找到“java”出現之處,效率低下。
  • 全文搜尋:存儲時提取關鍵字作為索引,根據預先建立的索引來檢索,效率高。(全文索引的原理)

全文索引的特點|優點

  • 檢索效率高
  • 支援海量資料
  • 檢索靈活、自動糾錯
  • 索引易維護

全文索引的使用場景

  • 存儲、檢索海量的非結構化文本資料
  • 需要使用互動式的⽂本查詢,使用者輸入部分關鍵字,需要提供相應的預選項
  • 需要靈活的文本搜尋,使用者輸入有誤時需要自動糾錯

全文索引關注的是搜尋(讀),寫的性能相對差一些。

全文搜尋引擎的實作方式

  • mysql:支援全文索引,但性能差、支援的數量級低。
  • Lucene:Java編寫的一個全文搜尋引擎,并非完整的應⽤程式,隻是⼀個代碼庫,強大但使用複雜。Solr、ES都是基于Lucene的,對Lucene進行了封裝,簡化了操作。
  • Solr:支援分布式,成熟可靠、高容錯、可擴充,支援GB級别的資料,常用于企業級應用。
  • ElasticSearch:後起之秀,純java編寫,支援分布式,支援TB、PB級别的資料,提供Restful風格的API,可實作資料的聚合、分析。

ES簡介

es的特點

  • 基于Lucene,支援全文索引、結構化檢索
  • 純java編寫,支援分布式,高性能、可擴充
  • 可處理PB級别的海量資料
  • 提供Restful風格的API
  • 自動糾錯
  • 支援資料的統計、分析,接近實時搜尋

es的使用場景

  • 文本内容的全文檢索,eg.日志搜尋,github、維基百科
  • 資料監控、聚合、分析,eg. 報表統計、分析

ES的下載下傳、安裝、啟動

下載下傳

官網下載下傳位址:https://www.elastic.co/cn/downloads/elasticsearch

如果覺得下載下傳速度慢,可以使用華為雲的鏡像:https://mirrors.huaweicloud.com/elasticsearch/

win下載下傳zip,linux下載下傳tar.gz。

ElasticSearch、Kibana的下載下傳安裝

es是純java編寫的,需要jdk的支援。es預設自帶了一個jdk,在解壓目錄下的jdk目錄下,這個也是es預設使用(需要)的jdk版本。

如果已經配置了jdk的環境變量,會優先使用系統環境變量中配置的jdk。如果系統環境變量中配置的jdk版本與自帶的jdk版本(需要的jdk版本)不一緻,es啟動時會報警告

future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk/jre] does not meet this requirement

es向下相容jdk8,不影響正常使用。

官方說後續要移除不自帶jdk的es,不推薦使用,我們下載下傳帶jdk的es即可。自帶的jdk版本很新,不穩定,通常在系統環境變量中配置jdk,不使用自帶的jdk。

win版安裝、啟動

1、解壓,修改配置檔案 conf/elasticsearch.yml

#目前節點名稱
node.name: node-1

#叢集的初始主節點
cluster.initial_master_nodes: ["node-1"]
           

不配置這2項也可以啟動es,但啟動kibana時會連接配接不上es,導緻kibana啟動失敗。

2、輕按兩下bin/elasticsearch.bat啟動,×掉視窗即停止

列印出 started、通路位址 則說明啟動成功,浏覽器通路列印的位址(127.0.0.1:9200)可看到es伺服器資訊。

linux版安裝

把安裝包放到/usr/local下

1、解壓

tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz

mv elasticsearch-7.6.2-linux-x86_64 es

rm elasticsearch-7.6.2-linux-x86_64.tar.gz -I
           

2、修改 config/elasticsearch.yml

#叢集名稱,預設是elasticsearch,es會自動把同一網段中叢集名稱相同的節點作為一個叢集
# cluster.name: elasticsearch


#目前節點的名稱,一般以node-1,node-2,node-x來命名
node.name: node-1

#此節點是否有選舉成為master的資格,預設true
#node.master: true

#此節點是否要存儲資料,預設true
#node.data: true


#預設綁定127.0.0.1,隻允許本地連接配接,将其設定為0.0.0.0即可允許其它機器連接配接
network.host: 0.0.0.0

#預設使用9200端口
#http.port: 9200


#叢集的初始主節點
cluster.initial_master_nodes: ["node-1"]
           

日志、資料的預設存儲位置分别是es主目錄的logs、data目錄,不用修改。

3、修改config/jvm.options

es處理的資料量級很大,排序、聚合很消耗記憶體,正式服需要給es設定較大的jvm堆記憶體。

預設設定的堆記憶體是1g,官方推薦設定為可用記憶體的一半,剩下的記憶體留給Lucene,但盡量不要超過32g,過大的堆記憶體會降低cpu性能、gc回收垃圾的速度。建議設定為伺服器可用記憶體的1/2或者2/3。

#如果是虛拟機、個人伺服器,可以設定小些,eg. 500m
-Xms10g
-Xmx10g
           

如果伺服器提供不了設定的記憶體,會報錯

error:

Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f7826330000, 274790678528, 0) failed; error=‘Cannot allocate memory’ (errno=12)

at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)

at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)

at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)

at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)

at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)

4、修改檔案描述符的最大數量

es很吃資源,要求fd的最大數量至少是65535,而linux一般預設是4096

# 檢視fd最大數量限制,如果沒有達到65535,則進行修改
ulimit -Hn

vim /etc/security/limits.conf

# 在 #End of file 這一行前面加上2行
# es根據 #End of file 判斷檔案結尾,配置要放在這行之前
* soft nofile 65536
* hard nofile 65536
           

*表示linux所有的使用者,也可以換為要啟動es的使用者。

5、修改vm.max_map_count

預設為65530,es要求至少為262144

vim /etc/sysctl.conf

#添加一行
vm.max_map_count=262144

#立刻生效
sysctl -p
           

說明:另一種方式 sysctl -w vm.max_map_count=262144 隻是臨時修改,重新開機linux就失效。

6、防火牆中開放對應的端口

firewall-cmd --add-port=9200/tcp --zone=public --permanent

firewall-cmd --reload
           

linux版啟動、停止

1、es不能用root賬戶啟動。如果沒有其它賬号,可以添加一個

useradd 使用者名
           

2、啟動es的賬戶要有解壓目錄的rwx權限

#以root(解壓目錄的屬主)身份執行,注意要加 -R 表示遞歸
chmod 777 -R es
           

3、執行 解壓目錄下/bin 下的 elasticsearch 即可啟動es伺服器

#可以加 -d 背景運作
./bin/elasticsearch
           

啟動時會生成一些檔案,對于新生成的檔案沒有權限,可以切回root重新授權。

列印出 started 說明啟動成功,可檢視es伺服器資訊:

# ip:port , 也可以在浏覽器中直接通路該位址
curl 127.0.0.1:9200
           

4、停止

jps 或 ps -ef|grep elasticsearch 找到es程序的pid,kill -9殺掉即可。

ps -ef|grep elasticsearch 會顯示一堆資訊,殺掉第一個程序即可。

logs下面有es的慢查詢日志、gc日志。

Kibana的安裝、啟動

ES常見的調試方式

  • curl:win、linux指令行通用
curl get http://127.0.0.1:9200

#預設請求方式時預設get,預設協定時預設http
curl 127.0.0.1:9200
           
  • Postman
  • Kibana:專業的es調試工具,有代碼提示,很友善,推薦

kibana是使用node.js寫的,運作kibana會起一個node server,十分占記憶體。

Kibana的安裝

1、下載下傳好放到 /usr/local 下

官網下載下傳位址:https://www.elastic.co/cn/downloads/kibana

如果覺得官網下載下傳速度慢,可以使用華為雲的鏡像,隻是沒有最新的版本:https://mirrors.huaweicloud.com/kibana/

win下載下傳zip,linux下載下傳tar.gz,kibana的版本盡量與es版本保持一緻,不一緻可能出現一些問題。

2、解壓、重命名

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

mv kibana-7.8.0-linux-x86_64 kibana

rm kibana-7.8.0-linux-x86_64.tar.gz -I
           

3、修改配置檔案 config/kibana.yml

#設定kibana綁定的網絡位址,預設localhost,隻允許本地通路kibana的頁面
server.host: "0.0.0.0"

#指定es叢集節點,預設為["http://localhost:9200"]
elasticsearch.hosts: ["http://localhost:9200"]

#es的使用者名、密碼,如果有
#elasticsearch.username: "chy"
#elasticsearch.password: "abcd"
           

如果隻連接配接本地es,則無需修改配置

4、防火牆開放5601端口

firewall-cmd --add-port=5601/tcp --zone=public --permanent

firewall-cmd --reload
           

Kibana的啟動、停止

1、和es一樣,kibana要以非root賬戶啟動,且該賬戶要具有kibana目錄的rwx權限

#切換到kibana的上級目錄,檢視是否具有kibana的rwx權限
ls -l | grep kibana

#如果沒有,切換到root賬戶添權重限。注意要加-R表示遞歸
chmod 777 kibana -R
           

2、執行 bin/kibana 啟動kibana

bin/kibana &
           

win版是輕按兩下 bin/kibana.bat 啟動。

kibana是使用node.js編寫的,啟動時會啟動一個node server,啟動慢、占記憶體。

3、浏覽器通路 ip:5601 進入kibana首頁

4、kibana的停止

win版×掉kibana的指令行視窗關閉,linux通過kill -9殺掉kibana的程序來關閉

Kibana的使用

Management -> Dev Tool 進入調試頁面

ElasticSearch、Kibana的下載下傳安裝

url不用寫 http://host:port 部分,會自動使用kibana.yml中配置的es叢集節點。eg. http://192.168.1.2:9200/mall/_mapping,可以直接寫 /mall/_mapping或 mall/_mapping

在Search Profiler中可檢視本次操作的耗時、性能分析。

kibana常用快捷鍵

Ctrl+/  #打開目前相關的api文檔

Ctrl+I  #自動縮進

Ctrl+Enter  #執行
           

注釋用 # ,單獨成行

常見問題

再次啟動es時抛出異常:某些檔案沒有權限

原因:第一次啟動es時會生成一些檔案,這些新生成的檔案沒有授權。雖然抛出了異常,但es仍是啟動成功的。

解決:切換到root(es目錄屬主),重新授權

chmod 777 /usr/local/es -R
           
kibana粘貼代碼報錯

一般是:每行開頭有多餘的空格,行尾有多餘的換行符,将每行行首多餘的空格、行尾多餘的換行符删掉,Ctrl+I 自動縮進。

繼續閱讀