JAVA(JVM)版本
Elasticsearch是使用Java構(gòu)建的线梗,至少需要Java 8才能運(yùn)行婚陪。 只支持Oracle的Java和OpenJDK。 所有Elasticsearch節(jié)點(diǎn)和客戶端都應(yīng)使用相同的JVM版本仍劈。
我們建議安裝Java版本1.8.0_131或更高版本娄猫。 如果使用Java的已知壞版本,Elasticsearch將拒絕啟動外冀。
Elasticsearch將使用的Java版本可以通過設(shè)置JAVA_HOME環(huán)境變量進(jìn)行配置寡键。
提示:Elasticsearch帶有默認(rèn)配置,用于在64位服務(wù)器JVM上運(yùn)行Elasticsearch雪隧。 如果使用32位客戶端JVM西轩,則必須從jvm.options中刪除-server,如果使用任何32位JVM脑沿,則應(yīng)將線程堆棧大小從-Xss1m重新配置為-Xss320k藕畔。
通過tar.gz包安裝
下載并解壓Elasticsearch
? ? wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.2.tar.gz
? ? tar -zxvf elasticsearch-5.6.2.tar.gz
? ? cd elasticsearch-5.6.2
啟動Elasticsearch
? ? bin/elasticsearch?(or?bin\elasticsearch.bat?on Windows)
? ? 默認(rèn)情況下及舍,Elasticsearch在前臺運(yùn)行勾扭,將其日志打印到標(biāo)準(zhǔn)輸出(stdout)问顷,并可以按Ctrl-C
作為守護(hù)進(jìn)程運(yùn)行
? ? 要作為守護(hù)程序運(yùn)行Elasticsearch,請?jiān)诿钚兄兄付?d遗契,并使用-p選項(xiàng)將進(jìn)程ID記錄在文件中:
? ? ./bin/elasticsearch -d -p pid
? ? 日志文件會輸出到$ES_HOME/logs/目錄下。
停止Elasticsearch
? ? 要關(guān)閉Elasticsearch仪壮,請殺死pid文件中記錄的進(jìn)程ID:
? ? kill `cat pid`
? ? 或者
? ? curl -XPOST 'http://localhost:9200/_shutdown'
訪問Elasticsearch
? ? ? ? ? Run?curl http://localhost:9200/?or?Invoke-RestMethod http://localhost:9200
? ? 注意:RPM和Debian軟件包中提供的啟動腳本會為您啟動和停止Elasticsearch進(jìn)程蒲稳。
遇到的問題
1.不能使用root用戶啟動Elasticsearch
解決方案1
創(chuàng)建用戶elasticsearch
? ? ? ? ? ? sudo useradd elasticsearch
修改文件權(quán)限
? ? ? ? ? ? sudo chown -R elasticsearch elasticsearch-5.6.2
用戶elasticsearch啟動elasticsearch
結(jié)果:啟動成功
解決方案2
在執(zhí)行elasticSearch時(shí)加上參數(shù)-Des.insecure.allow.root=true,完整命令如下
? ? sudo ./bin/elasticsearch -Des.insecure.allow.root=true?
結(jié)果:啟動失敗
原因:這種解決方案是舊版本(ES2)所支持的辜御,新版本(ES5)不支持root用戶啟動
解決方案3
用vi打開elasicsearch執(zhí)行文件鸭你,在變量ES_JAVA_OPTS使用前添加以下命令
? ? ES_JAVA_OPTS="-Des.insecure.allow.root=true"
結(jié)果:啟動失敗
原因:同上
2.Connection refused
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000f5d50000, 11206656, 0) failed; error='Cannot allocate memory' (errno=12)
Elasticsearch requires at least Java 8 but your Java version from /usr/lib/jvm/java-8-oracle/bin/java does not meet this requirement
可能的原因:1..JVM版本太低? 2.內(nèi)存空間不足
檢查JVM版本,排除第一個(gè)原因
解決方案:增加內(nèi)存到2G
啟動成功
3.內(nèi)存不足啟動失敗
vi config/jvm.options
修改以下參數(shù):
-Xms500m
-Xmx500m
通過命令行配置Elasticsearch
默認(rèn)情況下擒权,Elasticsearch從$ ES_HOME / config / elasticsearch.yml文件加載其配置袱巨。 此配置文件的格式在配置彈性搜索中說明。
也可以在命令行中指定在配置文件中指定的任何設(shè)置碳抄,使用-E語法如下所示:
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
提示:通常愉老,任何群集范圍的設(shè)置(如cluster.name)都應(yīng)該添加到elasticsearch.yml配置文件中,而任何特定于節(jié)點(diǎn)的設(shè)置(如node.name)可以在命令行中指定剖效。
.zip和tar.gz文檔結(jié)構(gòu)
.zip和.tar.gz包完全獨(dú)立俺夕。 默認(rèn)情況下,所有文件和目錄都包含在$ ES_HOME中——解壓縮存檔時(shí)創(chuàng)建的目錄贱鄙。
這非常方便劝贸,因?yàn)槟槐貏?chuàng)建任何目錄即可開始使用Elasticsearch,并且卸載Elasticsearch與刪除$ ES_HOME目錄一樣簡單逗宁。 但是映九,建議更改config目錄,數(shù)據(jù)目錄和logs目錄的默認(rèn)位置瞎颗,以便以后不再刪除重要數(shù)據(jù)件甥。
類型描述默認(rèn)位置設(shè)置
homeElasticsearch 根目錄或 $ES_HOME文件解壓后創(chuàng)建的目錄
bin二進(jìn)制文件目錄,包括elasticsearch用于啟動一個(gè)節(jié)點(diǎn)哼拔,elasticsearch-plugin用于安裝插件$ES_HOME/bin
conf配置文件引有,包括elasticsearch.yml$ES_HOME/configpath.conf
data在節(jié)點(diǎn)上分配的每個(gè)索引/分片的數(shù)據(jù)文件的位置。 可以容納多個(gè)位置倦逐。$ES_HOME/datapath.data
logs日志文件目錄$ES_HOME/logspath.logs
plugins插件文件目錄譬正,每個(gè)插件都存放在一個(gè)目錄中$ES_HOME/plugins
repo共享文件系統(tǒng)存儲庫位置。 可以容納多個(gè)位置檬姥。 可以將文件系統(tǒng)存儲庫放置在此處指定的任何目錄的任何子目錄中曾我。未設(shè)置path.repo
script腳本文件目錄$ES_HOME/scriptspath.scripts
參考文件:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/zip-targz.html