JAVA(JVM)版本
Elasticsearch是使用Java構建的,至少需要Java 8才能運行。 只支持Oracle的Java和OpenJDK。 所有Elasticsearch節點和客戶端都應使用相同的JVM版本。
我們建議安裝Java版本1.8.0_131或更高版本。 如果使用Java的已知壞版本,Elasticsearch將拒絕啟動。
Elasticsearch將使用的Java版本可以通過設置JAVA_HOME環境變量進行配置。
提示:Elasticsearch帶有默認配置,用于在64位服務器JVM上運行Elasticsearch。 如果使用32位客戶端JVM,則必須從jvm.options中刪除-server,如果使用任何32位JVM,則應將線程堆棧大小從-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)
? ? 默認情況下,Elasticsearch在前臺運行,將其日志打印到標準輸出(stdout),并可以按Ctrl-C
作為守護進程運行
? ? 要作為守護程序運行Elasticsearch,請在命令行中指定-d,并使用-p選項將進程ID記錄在文件中:
? ? ./bin/elasticsearch -d -p pid
? ? 日志文件會輸出到$ES_HOME/logs/目錄下。
停止Elasticsearch
? ? 要關閉Elasticsearch,請殺死pid文件中記錄的進程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進程。
遇到的問題
1.不能使用root用戶啟動Elasticsearch
解決方案1
創建用戶elasticsearch
? ? ? ? ? ? sudo useradd elasticsearch
修改文件權限
? ? ? ? ? ? sudo chown -R elasticsearch elasticsearch-5.6.2
用戶elasticsearch啟動elasticsearch
結果:啟動成功
解決方案2
在執行elasticSearch時加上參數-Des.insecure.allow.root=true,完整命令如下
? ? sudo ./bin/elasticsearch -Des.insecure.allow.root=true?
結果:啟動失敗
原因:這種解決方案是舊版本(ES2)所支持的,新版本(ES5)不支持root用戶啟動
解決方案3
用vi打開elasicsearch執行文件,在變量ES_JAVA_OPTS使用前添加以下命令
? ? ES_JAVA_OPTS="-Des.insecure.allow.root=true"
結果:啟動失敗
原因:同上
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.內存空間不足
檢查JVM版本,排除第一個原因
解決方案:增加內存到2G
啟動成功
3.內存不足啟動失敗
vi config/jvm.options
修改以下參數:
-Xms500m
-Xmx500m
通過命令行配置Elasticsearch
默認情況下,Elasticsearch從$ ES_HOME / config / elasticsearch.yml文件加載其配置。 此配置文件的格式在配置彈性搜索中說明。
也可以在命令行中指定在配置文件中指定的任何設置,使用-E語法如下所示:
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
提示:通常,任何群集范圍的設置(如cluster.name)都應該添加到elasticsearch.yml配置文件中,而任何特定于節點的設置(如node.name)可以在命令行中指定。
.zip和tar.gz文檔結構
.zip和.tar.gz包完全獨立。 默認情況下,所有文件和目錄都包含在$ ES_HOME中——解壓縮存檔時創建的目錄。
這非常方便,因為您不必創建任何目錄即可開始使用Elasticsearch,并且卸載Elasticsearch與刪除$ ES_HOME目錄一樣簡單。 但是,建議更改config目錄,數據目錄和logs目錄的默認位置,以便以后不再刪除重要數據。
類型描述默認位置設置
homeElasticsearch 根目錄或 $ES_HOME文件解壓后創建的目錄
bin二進制文件目錄,包括elasticsearch用于啟動一個節點,elasticsearch-plugin用于安裝插件$ES_HOME/bin
conf配置文件,包括elasticsearch.yml$ES_HOME/configpath.conf
data在節點上分配的每個索引/分片的數據文件的位置。 可以容納多個位置。$ES_HOME/datapath.data
logs日志文件目錄$ES_HOME/logspath.logs
plugins插件文件目錄,每個插件都存放在一個目錄中$ES_HOME/plugins
repo共享文件系統存儲庫位置。 可以容納多個位置。 可以將文件系統存儲庫放置在此處指定的任何目錄的任何子目錄中。未設置path.repo
script腳本文件目錄$ES_HOME/scriptspath.scripts
參考文件:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/zip-targz.html