Elasticsearch相关软件安装
4.1. Windows安裝elasticsearch
1、安裝JDK,至少1.8.0_73以上版本,驗證:java -version。
2、下載和解壓縮Elasticsearch安裝包,查看目錄結構。
https://www.elastic.co/cn/downloads/elasticsearch
bin:腳本目錄,包括:啟動、停止等可執行腳本
config:配置文件目錄
data:索引目錄,存放索引文件的地方
logs:日志目錄
modules:模塊目錄,包括了es的功能模塊
plugins :插件目錄,es支持插件機制
3、配置文件:
位置:
ES的配置文件的地址根據安裝形式的不同而不同:
使用zip、tar安裝,配置文件的地址在安裝目錄的config下。
使用RPM安裝,配置文件在/etc/elasticsearch下。
使用MSI安裝,配置文件的地址在安裝目錄的config下,并且會自動將config目錄地址寫入環境變量ES_PATH_CONF。
elasticsearch.yml
配置格式是YAML,可以采用如下兩種方式:
方式1:層次方式
path:data: /var/lib/elasticsearchlogs: /var/log/elasticsearch方式2:屬性方式
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch常用的配置項如下
cluster.name: 配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱。 node.name:節點名,通常一臺物理服務器就是一個節點,es會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理一個或多個節點組成一個cluster集群,集群是一個邏輯的概念,節點是物理概念,后邊章節會詳細介紹。 path.conf: 設置配置文件的存儲路徑,tar或zip包安裝默認在es根目錄下的config文件夾,rpm安裝默認在/etc/ elasticsearch path.data:設置索引數據的存儲路徑,默認是es根目錄下的data文件夾,可以設置多個存儲路徑,用逗號隔開。 path.logs:設置日志文件的存儲路徑,默認是es根目錄下的logs文件夾 path.plugins: 設置插件的存放路徑,默認是es根目錄下的plugins文件夾 bootstrap.memory_lock: true設置為true可以鎖住ES使用的內存,避免內存與swap分區交換數據。 network.host: 設置綁定主機的ip地址,設置為0.0.0.0表示綁定任何ip,允許外網訪問,生產環境建議設置為具體的ip。 http.port: 9200設置對外服務的http端口,默認為9200。 transport.tcp.port: 9300 集群結點之間通信端口 node.master: 指定該節點是否有資格被選舉成為master結點,默認是true,如果原來的master宕機會重新選舉新的master。 node.data: 指定該節點是否存儲索引數據,默認為true。 discovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."]設置集群中master節點的初始列表。 discovery.zen.ping.timeout: 3s設置ES自動發現節點連接超時的時間,默認為3秒,如果網絡延遲高可設置大些。 discovery.zen.minimum_master_nodes:主結點數量的最少值 ,此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個符合要求的主結點,那么這里要設置為2。 node.max_local_storage_nodes: 單機允許的最大存儲結點數,通常單機啟動一個結點建議設置為1,開發環境如果單機啟動多個節點可設置大于1。jvm.options
設置最小及最大的JVM堆內存大小:
在jvm.options中設置 -Xms和-Xmx:
1) 兩個值設置為相等
2) 將Xmx 設置為不超過物理內存的一半。
log4j2.properties
日志文件設置,ES使用log4j,注意日志級別的配置。
4、啟動Elasticsearch:bin\elasticsearch.bat,es的特點就是開箱即,無需配置,啟動即可。
注意:es7 windows版本不支持機器學習,所以elasticsearch.yml中添加如下幾個參數:
node.name: node-1 ? cluster.initial_master_nodes: ["node-1"] ? xpack.ml.enabled: false http.cors.enabled: true http.cors.allow-origin: /.*/5、檢查ES是否啟動成功:瀏覽器訪問http://localhost:9200/?pretty
{"name": "node-1","cluster_name": "elasticsearch","cluster_uuid": "HqAKQ_0tQOOm8b6qU-2Qug","version": {"number": "7.3.0","build_flavor": "default","build_type": "zip","build_hash": "de777fa","build_date": "2019-07-24T18:30:11.767338Z","build_snapshot": false,"lucene_version": "8.1.0","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search" }解釋:
name: node名稱,取自機器的hostname
cluster_name: 集群名稱(默認的集群名稱就是elasticsearch)
version.number: 7.3.0,es版本號
version.lucene_version:封裝的lucene版本號
6、瀏覽器訪問 http://localhost:9200/_cluster/health 查詢集群狀態
{"cluster_name": "elasticsearch","status": "green","timed_out": false,"number_of_nodes": 1,"number_of_data_nodes": 1,"active_primary_shards": 0,"active_shards": 0,"relocating_shards": 0,"initializing_shards": 0,"unassigned_shards": 0,"delayed_unassigned_shards": 0,"number_of_pending_tasks": 0,"number_of_in_flight_fetch": 0,"task_max_waiting_in_queue_millis": 0,"active_shards_percent_as_number": 100 }解釋:
Status:集群狀態。Green 所有分片可用。Yellow所有主分片可用。Red主分片不可用,集群不可用。
4.2. Windows安裝Kibana
1、kibana是es數據的前端展現,數據分析時,可以方便地看到數據。作為開發人員,可以方便訪問es。
2、下載,解壓kibana。
3、啟動Kibana:bin\kibana.bat
4、瀏覽器訪問 http://localhost:5601 進入Dev Tools界面。像plsql一樣支持代碼提示。
5、發送get請求,查看集群狀態GET _cluster/health。相當于瀏覽器訪問。
?
總覽:
?
Dev Tools界面:
?
監控集群界面:
?
集群狀態(搜索速率、索引速率等):
?
4.3 Windows安裝postman
是什么:postman是一個模擬http請求的工具。能夠非常細致地定制化各種http請求。如get]\post\pu\delete,攜帶body參數等。
為什么:在沒有kibana時,可以使用postman調試。
怎么用:
get http://localhost:9200/
測試一下get方式查詢集群狀態http://localhost:9200/_cluster/health
4.4 Windows安裝head插件
head插件是ES的一個可視化管理插件,用來監視ES的狀態,并通過head客戶端和ES服務進行交互,比如創建映射、創建索引等,head的項目地址在https://github.com/mobz/elasticsearch-head 。
從ES6.0開始,head插件支持使得node.js運行。
1安裝node.js
2下載head并運行
git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start瀏覽器打開 http://localhost:9100/
3運行
打開瀏覽器調試工具發現報錯:
Origin null is not allowed by Access-Control-Allow-Origin.
原因是:head插件作為客戶端要連接ES服務(localhost:9200),此時存在跨域問題,elasticsearch默認不允許跨域訪問。
解決方案:
設置elasticsearch允許跨域訪問。
在config/elasticsearch.yml 后面增加以下參數:
#開啟cors跨域訪問支持,默認為false ? http.cors.enabled: true ? #跨域訪問允許的域名地址,(允許所有域名)以上使用正則 ? http.cors.allow-origin: /.*/注意:將config/elasticsearch.yml另存為utf-8編碼格式。
成功連接ES
?
注意:kibana\postman\head插件選擇自己喜歡的一種使用即可。
本教程使用kibana的dev tool,因為地址欄省略了http://localhost:9200。
總結
以上是生活随笔為你收集整理的Elasticsearch相关软件安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elastic Stack简介和Elas
- 下一篇: Elasticsearch之文档docu