ElasticaSearch安装以及配置
ElasticSearch介紹
總結(jié):
1、elasticsearch是一個(gè)基于Lucene的高擴(kuò)展的分布式搜索服務(wù)器,支持開(kāi)箱即用。
2、elasticsearch隱藏了Lucene的復(fù)雜性,對(duì)外提供Restful 接口來(lái)操作索引、搜索。
突出優(yōu)點(diǎn):
1.擴(kuò)展性好,可部署上百臺(tái)服務(wù)器集群,處理PB級(jí)數(shù)據(jù)。
2.近實(shí)時(shí)的去索引數(shù)據(jù)、搜索數(shù)據(jù)。
es和solr選擇哪個(gè)?
1.如果你公司現(xiàn)在用的solr可以滿足需求就不要換了。
2.如果你公司準(zhǔn)備進(jìn)行全文檢索項(xiàng)目的開(kāi)發(fā),建議優(yōu)先考慮elasticsearch,因?yàn)橄馟ithub這樣大規(guī)模的搜索都在用它。
ElasticSearch安裝
?
安裝配置:
1、新版本要求至少jdk1.8以上。
2、支持tar、zip、rpm等多種安裝方式。
在windows下開(kāi)發(fā)建議使用ZIP安裝方式。
3、支持docker方式安裝
詳細(xì)參見(jiàn):https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
下載ES: Elasticsearch 6.2.1
https://www.elastic.co/downloads/past-releases
或者可以使用我分享的安裝包:
鏈接:https://pan.baidu.com/s/168k0dxfI6GJlNx5AEvfSjg&shfl=sharepset?
提取碼:i633?
bin:腳本目錄,包括:啟動(dòng)、停止等可執(zhí)行腳本
config:配置文件目錄
data:索引目錄,存放索引文件的地方
logs:日志目錄
modules:模塊目錄,包括了es的功能模塊
plugins :插件目錄,es支持插件機(jī)制
配置文件
三個(gè)配置文件:elasticsearch.yml : 用于配置Elasticsearch運(yùn)行參數(shù) jvm.options : 用于配置Elasticsearch JVM設(shè)置 log4j2.properties: 用于配置Elasticsearch日志
elasticsearch.yml
配置格式是YAML,可以采用如下兩種方式:
方式1:層次方式
path: data: /var/lib/elasticsearch logs: /var/log/elasticsearch
方式2:屬性方式
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
本項(xiàng)目采用方式2,例子如下:
注意path.data和path.logs路徑配置正確。
cluster.name: qianfeng node.name: qf_node_1 network.host: 0.0.0.0 http.port: 9200 transport.tcp.port: 9300 node.master: true node.data: true #discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301", "0.0.0.0:9302"] discovery.zen.minimum_master_nodes: 1 bootstrap.memory_lock: false node.max_local_storage_nodes: 1path.data: D:\ElasticSearch\elasticsearch-6.2.1\data path.logs: D:\ElasticSearch\elasticsearch-6.2.1\logshttp.cors.enabled: true http.cors.allow-origin: /.*/ 常用的配置項(xiàng)如下:cluster.name: ? 配置elasticsearch的集群名稱,默認(rèn)是elasticsearch。建議修改成一個(gè)有意義的名稱。node.name:? 節(jié)點(diǎn)名,通常一臺(tái)物理服務(wù)器就是一個(gè)節(jié)點(diǎn),es會(huì)默認(rèn)隨機(jī)指定一個(gè)名字,建議指定一個(gè)有意義的名稱,方便管理? 一個(gè)或多個(gè)節(jié)點(diǎn)組成一個(gè)cluster集群,集群是一個(gè)邏輯的概念,節(jié)點(diǎn)是物理概念,后邊章節(jié)會(huì)詳細(xì)介紹。path.conf: 設(shè)置配置文件的存儲(chǔ)路徑,tar或zip包安裝默認(rèn)在es根目錄下的config文件夾,rpm安裝默認(rèn)在/etc/ elasticsearch path.data: 設(shè)置索引數(shù)據(jù)的存儲(chǔ)路徑,默認(rèn)是es根目錄下的data文件夾,可以設(shè)置多個(gè)存儲(chǔ)路徑,用逗號(hào)隔開(kāi)。 path.logs: 設(shè)置日志文件的存儲(chǔ)路徑,默認(rèn)是es根目錄下的logs文件夾 path.plugins: 設(shè)置插件的存放路徑,默認(rèn)是es根目錄下的plugins文件夾bootstrap.memory_lock: true 設(shè)置為true可以鎖住ES使用的內(nèi)存,避免內(nèi)存與swap分區(qū)交換數(shù)據(jù)。 network.host: 設(shè)置綁定主機(jī)的ip地址,設(shè)置為0.0.0.0表示綁定任何ip,允許外網(wǎng)訪問(wèn),生產(chǎn)環(huán)境建議設(shè)置為具體的ip。 http.port: 9200 設(shè)置對(duì)外服務(wù)的http端口,默認(rèn)為9200。transport.tcp.port: 9300 集群結(jié)點(diǎn)之間通信端口node.master: 指定該節(jié)點(diǎn)是否有資格被選舉成為master結(jié)點(diǎn),默認(rèn)是true,如果原來(lái)的master宕機(jī)會(huì)重新選舉新的master。 node.data: 指定該節(jié)點(diǎn)是否存儲(chǔ)索引數(shù)據(jù),默認(rèn)為true。discovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."] 設(shè)置集群中master節(jié)點(diǎn)的初始列表。discovery.zen.ping.timeout: 3s 設(shè)置ES自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)連接超時(shí)的時(shí)間,默認(rèn)為3秒,如果網(wǎng)絡(luò)延遲高可設(shè)置大些。 discovery.zen.minimum_master_nodes:? 主結(jié)點(diǎn)數(shù)量的最少值 ,此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個(gè)符合要求的主結(jié)點(diǎn),那么這里要設(shè)置為2。node.max_local_storage_nodes: ? 單機(jī)允許的最大存儲(chǔ)結(jié)點(diǎn)數(shù),通常單機(jī)啟動(dòng)一個(gè)結(jié)點(diǎn)建議設(shè)置為1,開(kāi)發(fā)環(huán)境如果單機(jī)啟動(dòng)多個(gè)節(jié)點(diǎn)可設(shè)置大于1.jvm.options
設(shè)置最小及最大的JVM堆內(nèi)存大小:
在jvm.options中設(shè)置 -Xms和-Xmx:
1) 兩個(gè)值設(shè)置為相等
2) 將Xmx 設(shè)置為不超過(guò)物理內(nèi)存的一半。
log4j2.properties
日志文件設(shè)置,ES使用log4j,注意日志級(jí)別的配置。
啟動(dòng)ES
進(jìn)入bin目錄,在cmd下運(yùn)行:elasticsearch.bat
瀏覽器輸入:http://localhost:9200
顯示結(jié)果如下(配置不同內(nèi)容則不同)說(shuō)明ES啟動(dòng)成功:
head插件安裝
head插件是ES的一個(gè)可視化管理插件,用來(lái)監(jiān)視ES的狀態(tài),并通過(guò)head客戶端和ES服務(wù)進(jìn)行交互,比如創(chuàng)建映射、創(chuàng)建索引等,head的項(xiàng)目地址在https://github.com/mobz/elasticsearch-head 。
從ES6.0開(kāi)始,head插件支持使得node.js運(yùn)行。
1、安裝node.js
?
2、下載head并運(yùn)行
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open HTTP://本地主機(jī):9100 /
3、運(yùn)行
打開(kāi)瀏覽器調(diào)試工具發(fā)現(xiàn)報(bào)錯(cuò):
Origin null is not allowed by Access-Control-Allow-Origin.
原因是:head插件作為客戶端要連接ES服務(wù)(localhost:9200),此時(shí)存在跨域問(wèn)題,elasticsearch默認(rèn)不允許跨域訪問(wèn)。
解決方案:
設(shè)置elasticsearch允許跨域訪問(wèn)。
在config/elasticsearch.yml 后面增加以下參數(shù):
#開(kāi)啟cors跨域訪問(wèn)支持,默認(rèn)為false http.cors.enabled: true #跨域訪問(wèn)允許的域名地址,(允許所有域名)以上使用正則 http.cors.allow-origin: /.*/
注意:將config/elasticsearch.yml另存為utf-8編碼格式。
成功連接ES
總結(jié)
以上是生活随笔為你收集整理的ElasticaSearch安装以及配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pandas基础操作大全之数据合并
- 下一篇: matlab的udt,西门子PLC的UD