編者按:ElasticSearch是一款分布式的搜索及分析引擎,在建立索引、搜索以及數(shù)據(jù)分析方面都有著非常優(yōu)異的表現(xiàn)。本文筆者詳細(xì)介紹了該引擎的部署細(xì)節(jié)與如何應(yīng)用。
ElasticSear ch能夠?qū)λ蓄愋蛿?shù)據(jù)進(jìn)行實時的搜索及分析,無論是結(jié)構(gòu)化或者非結(jié)構(gòu)化的文本、數(shù)值數(shù)據(jù)、地理空間數(shù)據(jù),ElasticSearch都能對數(shù)據(jù)進(jìn)行存儲并建立一種能支持高速搜索的索引。
ElasticSearch不止能簡單地檢索信息,還可以整合信息以發(fā)現(xiàn)數(shù)據(jù)中的規(guī)律及趨勢。ElasticSearch的分布式特性使之能夠很好地適應(yīng)數(shù)據(jù)和查詢量的不斷增加,除此之外,ElasticSearch還能在各種情形下高效、靈活地處理數(shù)據(jù),例如:
在應(yīng)用程序或者網(wǎng)站中添加搜索框;
存儲并分析日志、指標(biāo)數(shù)據(jù)以及安全事件數(shù)據(jù);
利用機(jī)器學(xué)習(xí)自動地、實時地為數(shù)據(jù)建立模型;
使用ElasticSearch作為存儲引擎實現(xiàn)業(yè)務(wù)工作流的自動化;
使用ElasticSearch作為地理信息系統(tǒng)管理、集成和分析空間信息數(shù)據(jù);
使用ElasticSearch作為生物信息學(xué)研究工具存儲和處理遺傳信息數(shù)據(jù)。
近年來,人們使用Elast icSearch的創(chuàng)新方式越來越多,但是無論是在上述幾種情況下,還是在處理一些新的問題時,ElasticSearch處理數(shù)據(jù)、文檔以及索引的基本原理都是不變的。
ElasticSearch的有兩種部署方式,一種是創(chuàng)建一個托管在Elasticsearch Service上的服務(wù),另一種是在本地的服務(wù)器上部署一個多節(jié)點的集群。在本文中,將詳細(xì)介紹如何在CentOS系統(tǒng)環(huán)境下創(chuàng)建一個擁有三個節(jié)點的ElasticSearch集群。
1.新建1臺裝有CentOS系統(tǒng)的虛擬機(jī)(主機(jī)IP為172.16.24.118),安裝好JDK并配置好環(huán)境變量,此過程不再贅述。
2.將下載好的ElasticS earch安裝包上傳到虛擬機(jī)中并解壓。(命令:#tar -zxvf elasticsearch-6.4.3.tar.gz)
3.修改elasticsearch-6.4.3/config/elasticsea rch.yml文件中以下內(nèi)容:
network.host:172.16.2 4.117
http.port:9200
4.在/etc/sysctl.conf文件中添加以下內(nèi)容:
vm.max_map_count=6553 60
并執(zhí)行命令#sysctl -p。
5.在/etc/security/limits.conf文件中添加以下內(nèi)容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
6.因為無法直接從root用戶啟動ElasticSearch,所以我們新建一個用戶user1并給用戶賦權(quán),執(zhí)行命令如下:
#groupadd es
#useradd user1 -g es-p 123456
切換到/usr/local目錄下并執(zhí)行命令:
#chown -R user1:es elasticsearch-6.4.3
7.執(zhí)行下列命令以關(guān)閉防火墻并啟動ElasticSearch
#systemctl stop firew alld.service
#cd/usr/local/elasticsearch-6.4.3/bin
#./elasticsearch
8.通過瀏覽器訪問http:/172.16.24.118:9200以驗證是否啟動成功。
9.將上述已經(jīng)安裝好ElasticSearch的虛擬機(jī)克隆兩臺。(將IP地址分別修改為:172.16.24.117和172.16.24.116)
對elasticsearch-6.4.3/config/elasticsearch.yml文件進(jìn)行以下修改。
cluster.name:myes(保證三個節(jié)點集群名稱是相同的)
node.name:node-1(確保每個節(jié)點名稱不一樣,其他兩臺分別為node-2,node-3)
network.host:172.16.2 4.118(當(dāng)前服務(wù)器IP地址)
discovery.zen.ping.unicast.hosts:["172.16.24.118","172.16.24.117","172.16.24.116"]
discovery.zen.minimum_master_nodes:1
10.啟動三臺服務(wù)器的elasticsearch服務(wù),并通過瀏覽器訪問http://172.16.24.118:9200/_cat/nodes?P retty來驗證集群是否創(chuàng)建成功。
11.下面我們對Elastic Search進(jìn)行一些測試(為了方便起見,我們通過一款叫做postman的軟件進(jìn)行測試)。
(1)通過向服務(wù)器發(fā)送下列HTTP請求以建立索引并定義類型:http://localhost:9200/local_mst_student_idx_1,返回。
(2)向新建的索引中添加數(shù)據(jù)。
(3)向elasticsearch發(fā)送查詢請求。
Elasticsearch把操作都封裝成了HTTP的API,用戶只需給Elasticsearch發(fā)送HTTP請求就能完成相關(guān)操作。除了用上述的方法安裝部署ElasticSearch以外,各位還可以嘗試用其他方式部署。
例 如,在Docker容 器中運(yùn)行Elasticsearch、在Linux系統(tǒng)中用DEB包或者RPM包安裝Elasticsearch、利用Homebrew在macOS環(huán)境下安裝等。
大家可以前往ElasticS earch官方網(wǎng)站查看更多關(guān)于該軟件的安裝及使用方法介紹。