1.下載
下載地址于 https://www.elastic.co/downloads/elasticsearch , 當(dāng)時(shí)下載是 6.0.1 版本, 目前 (2017.12.14) 為 6.1.0 版本联喘,以下是否適用珊蟀,不予驗(yàn)證围详。
此版本為編譯好的版本,因此無(wú)需重新編譯璧尸。
2. 安裝
安裝比較簡(jiǎn)單,因?yàn)樯厦嫦螺d的.zip版本為編譯好的版本熬拒,因此無(wú)需重新編譯爷光,需要注意的是安裝環(huán)境。
安裝完畢后澎粟,進(jìn)入es目錄蛀序,即
cd $ES_HOME (即elasticsearch安裝目錄)
bin/elasticsearch
即可啟動(dòng),啟動(dòng)后可能有各種問(wèn)題活烙,見(jiàn) 3. 注意事項(xiàng)
下面附屬筆者的環(huán)境:
- Linux 2.6 (CentOS rebuild)
- JDK 1.8.0_144
3. 注意事項(xiàng)
- 請(qǐng)修改 config/elasticsearch.yml 中的 cluster.name, 此key是用來(lái)標(biāo)識(shí)集群名的哼拔,比如 cluster.name:index_search_for_dev
- 請(qǐng)修改 config/elasticsearch.yml 中的 network.host, 此key標(biāo)識(shí)機(jī)器的網(wǎng)絡(luò)地址,默認(rèn)是回環(huán)地址需要修改,比如
network.host:${外網(wǎng)IP} - JDK的版本需在1.8版本及以上
- 如果啟動(dòng)的時(shí)候出現(xiàn) java.lang.UnsupportedOperationException: seccomp unavailable 異常瓣颅,有幾個(gè)選擇 (1) 忽略它,因?yàn)閑s嘗試使用seccomp來(lái)加速啟動(dòng)譬正,但是因?yàn)閘inux內(nèi)核版本過(guò)低 ( < Linux3.2) 不支持宫补,不會(huì)影響es的啟動(dòng)和功能。 (2) 升級(jí)linux內(nèi)核 (3) 通過(guò)配置文件關(guān)閉它曾我,修改config/elasticsearch.yml配置中的bootstrap.system_call_filter: false來(lái)關(guān)閉啟動(dòng)的seccomp功能
- 如果啟動(dòng)時(shí)出現(xiàn) max file decriptors [4096] for elasticsearch process is too low, increase to at least [65536] 錯(cuò)誤, 那么就需要ulimit -n查看一下文件描述符粉怕,默認(rèn)是1024 切換到root賬戶,編輯 /etc/security/limits.conf 文件抒巢,添加兩行
* soft nofile 65536
* hard nofile 65536
直接重新登陸用ulimit -n就能看到效果(筆者這邊需要一次切換用戶才起效力)
- 如果啟動(dòng)出現(xiàn) max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 錯(cuò)誤, 需要使用root用戶修改 /etc/sysctl.conf 文件, 添加:
vm.max_map_count=655360
然后執(zhí)行命令:
sysctl -p
4. 集群部署
如果是單機(jī)部署贫贝,以上就可以使用了, 但是集群部署需要重新配置一下
配置文件(建議, 參考 https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html):
node.name: ${HOSTNAME}
network.host: 設(shè)置為當(dāng)前主機(jī)的IP(Non-loopback)
discovery.zen.ping.unicast.hosts:[ip1,ip2,domain3,hostname4](提供幾個(gè)集群內(nèi)主機(jī)IP,按官方說(shuō)法蛉谜,只是 seeds, 無(wú)需全部)
master_eligible_nodes=有資格被設(shè)置為主節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)/2 + 1 (有資格被設(shè)置為主節(jié)點(diǎn)的配置為node.master=true,也是默認(rèn)設(shè)置為均可稚晚,這是為了防止集群腦裂的)
使用 SCP SSH復(fù)制命令進(jìn)行集群部署
scp -r $LOCAL_DIR $REMOTE_IP:$REMOTE_DIR
啟動(dòng)節(jié)點(diǎn),會(huì)有 with same id 錯(cuò)誤型诚,因?yàn)閚ode-id使用了data目錄下的文件進(jìn)行了Hash互亮,因此只需要將data目錄下的文件全部刪除摔笤,啟動(dòng)即可,具體原因參考 https://github.com/elastic/elasticsearch/issues/21405
具體的SSH免密登錄方式,請(qǐng)查看
http://www.cnblogs.com/lzxlfly/p/7221890.html
5. 驗(yàn)證
ElasticSearch 提供了RestAPI (9200端口, 默認(rèn)), 因此使用curl命令可進(jìn)行連接
curl -XGET -H 'Content-type:application/json' 'http://IP:PORT/_cluster/health'
參考資料
- https://github.com/elastic/elasticsearch/issues/21405 關(guān)于node-id的討論
- https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html ES官方配置指南
- https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html 其他環(huán)境的安裝參考
- https://www.cnblogs.com/sloveling/p/elasticsearch.html 前人路過(guò)的坑