手把手教你搭建一個(gè)Elasticsearch集群

原文出自:https://www.cnblogs.com/tianyiliang/p/10291305.html

一笔刹、為何要搭建 Elasticsearch 集群

凡事都要講究個(gè)為什么失尖。在搭建集群之前,我們首先先問(wèn)一句锯玛,為什么我們需要搭建集群?它有什么優(yōu)勢(shì)呢芍躏?

(1)高可用性

Elasticsearch 作為一個(gè)搜索引擎屯阀,我們對(duì)它的基本要求就是存儲(chǔ)海量數(shù)據(jù)并且可以在非常短的時(shí)間內(nèi)查詢(xún)到我們想要的信息。所以第一步我們需要保證的就是 Elasticsearch 的高可用性捅伤,什么是高可用性呢劫流?它通常是指,通過(guò)設(shè)計(jì)減少系統(tǒng)不能提供服務(wù)的時(shí)間丛忆。假設(shè)系統(tǒng)一直能夠提供服務(wù)祠汇,我們說(shuō)系統(tǒng)的可用性是 100%。如果系統(tǒng)在某個(gè)時(shí)刻宕掉了熄诡,比如某個(gè)網(wǎng)站在某個(gè)時(shí)間掛掉了可很,那么就可以它臨時(shí)是不可用的。所以凰浮,為了保證 Elasticsearch 的高可用性我抠,我們就應(yīng)該盡量減少 Elasticsearch 的不可用時(shí)間。

那么怎樣提高 Elasticsearch 的高可用性呢袜茧?這時(shí)集群的作用就體現(xiàn)出來(lái)了菜拓。假如 Elasticsearch 只放在一臺(tái)服務(wù)器上,即單機(jī)運(yùn)行笛厦,假如這臺(tái)主機(jī)突然斷網(wǎng)了或者被攻擊了纳鼎,那么整個(gè) Elasticsearch 的服務(wù)就不可用了。但如果改成 Elasticsearch 集群的話(huà)裳凸,有一臺(tái)主機(jī)宕機(jī)了贱鄙,還有其他的主機(jī)可以支撐,這樣就仍然可以保證服務(wù)是可用的姨谷。

那可能有的小伙伴就會(huì)說(shuō)了贰逾,那假如一臺(tái)主機(jī)宕機(jī)了,那么不就無(wú)法訪(fǎng)問(wèn)這臺(tái)主機(jī)的數(shù)據(jù)了嗎菠秒?那假如我要訪(fǎng)問(wèn)的數(shù)據(jù)正好存在這臺(tái)主機(jī)上疙剑,那不就獲取不到了嗎?難道其他的主機(jī)里面也存了一份一模一樣的數(shù)據(jù)践叠?那這豈不是很浪費(fèi)嗎言缤?

為了解答這個(gè)問(wèn)題,這里就引出了 Elasticsearch 的信息存儲(chǔ)機(jī)制了禁灼。首先解答上面的問(wèn)題管挟,一臺(tái)主機(jī)宕機(jī)了,這臺(tái)主機(jī)里面存的數(shù)據(jù)依然是可以被訪(fǎng)問(wèn)到的弄捕,因?yàn)樵谄渌闹鳈C(jī)上也有備份僻孝,但備份的時(shí)候也不是整臺(tái)主機(jī)備份导帝,是分片備份的,那這里就又引出了一個(gè)概念——分片穿铆。

分片您单,英文叫做 Shard,顧名思義荞雏,分片就是對(duì)數(shù)據(jù)切分成了多個(gè)部分虐秦。我們知道 Elasticsearch 中一個(gè)索引(Index)相當(dāng)于是一個(gè)數(shù)據(jù)庫(kù),如存某網(wǎng)站的用戶(hù)信息凤优,我們就建一個(gè)名為 user 的索引悦陋。但索引存儲(chǔ)的時(shí)候并不是整個(gè)存一起的,它是被分片存儲(chǔ)的筑辨,Elasticsearch 默認(rèn)會(huì)把一個(gè)索引分成五個(gè)分片俺驶,當(dāng)然這個(gè)數(shù)字是可以自定義的。分片是數(shù)據(jù)的容器棍辕,數(shù)據(jù)保存在分片內(nèi)痒钝,分片又被分配到集群內(nèi)的各個(gè)節(jié)點(diǎn)里。當(dāng)你的集群規(guī)模擴(kuò)大或者縮小時(shí)痢毒, Elasticsearch 會(huì)自動(dòng)的在各節(jié)點(diǎn)中遷移分片送矩,使得數(shù)據(jù)仍然均勻分布在集群里,所以相當(dāng)于一份數(shù)據(jù)被分成了多份并保存在不同的主機(jī)上哪替。

那這還是沒(méi)解決問(wèn)題啊栋荸,如果一臺(tái)主機(jī)掛掉了,那么這個(gè)分片里面的數(shù)據(jù)不就無(wú)法訪(fǎng)問(wèn)了凭舶?別的主機(jī)都是存儲(chǔ)的其他的分片晌块。其實(shí)是可以訪(fǎng)問(wèn)的,因?yàn)槠渌鳈C(jī)存儲(chǔ)了這個(gè)分片的備份帅霜,叫做副本匆背,這里就引出了另外一個(gè)概念——副本。

副本身冀,英文叫做 Replica钝尸,同樣顧名思義,副本就是對(duì)原分片的復(fù)制搂根,和原分片的內(nèi)容是一樣的珍促,Elasticsearch 默認(rèn)會(huì)生成一份副本,所以相當(dāng)于是五個(gè)原分片和五個(gè)分片副本剩愧,相當(dāng)于一份數(shù)據(jù)存了兩份猪叙,并分了十個(gè)分片,當(dāng)然副本的數(shù)量也是可以自定義的。這時(shí)我們只需要將某個(gè)分片的副本存在另外一臺(tái)主機(jī)上穴翩,這樣當(dāng)某臺(tái)主機(jī)宕機(jī)了犬第,我們依然還可以從另外一臺(tái)主機(jī)的副本中找到對(duì)應(yīng)的數(shù)據(jù)。所以從外部來(lái)看芒帕,數(shù)據(jù)結(jié)果是沒(méi)有任何區(qū)別的歉嗓。

一般來(lái)說(shuō),Elasticsearch 會(huì)盡量把一個(gè)索引的不同分片存儲(chǔ)在不同的主機(jī)上副签,分片的副本也盡可能存在不同的主機(jī)上,這樣可以提高容錯(cuò)率基矮,從而提高高可用性淆储。

但這時(shí)假如你只有一臺(tái)主機(jī),那不就沒(méi)辦法了嗎家浇?分片和副本其實(shí)是沒(méi)意義的本砰,一臺(tái)主機(jī)掛掉了,就全掛掉了钢悲。

(2)健康狀態(tài)

針對(duì)一個(gè)索引点额,Elasticsearch 中其實(shí)有專(zhuān)門(mén)的衡量索引健康狀況的標(biāo)志,分為三個(gè)等級(jí):

green莺琳,綠色还棱。這代表所有的主分片和副本分片都已分配。你的集群是 100% 可用的惭等。

yellow珍手,黃色。所有的主分片已經(jīng)分片了辞做,但至少還有一個(gè)副本是缺失的琳要。不會(huì)有數(shù)據(jù)丟失,所以搜索結(jié)果依然是完整的秤茅。不過(guò)稚补,你的高可用性在某種程度上被弱化。如果更多的分片消失框喳,你就會(huì)丟數(shù)據(jù)了课幕。所以可把 yellow 想象成一個(gè)需要及時(shí)調(diào)查的警告。

red五垮,紅色撰豺。至少一個(gè)主分片以及它的全部副本都在缺失中。這意味著你在缺少數(shù)據(jù):搜索只能返回部分?jǐn)?shù)據(jù)拼余,而分配到這個(gè)分片上的寫(xiě)入請(qǐng)求會(huì)返回一個(gè)異常污桦。

如果你只有一臺(tái)主機(jī)的話(huà),其實(shí)索引的健康狀況也是 yellow匙监,因?yàn)橐慌_(tái)主機(jī)凡橱,集群沒(méi)有其他的主機(jī)可以防止副本小作,所以說(shuō),這就是一個(gè)不健康的狀態(tài)稼钩,因此集群也是十分有必要的顾稀。

(3)存儲(chǔ)空間

另外,既然是群集坝撑,那么存儲(chǔ)空間肯定也是聯(lián)合起來(lái)的静秆,假如一臺(tái)主機(jī)的存儲(chǔ)空間是固定的,那么集群它相對(duì)于單個(gè)主機(jī)也有更多的存儲(chǔ)空間巡李,可存儲(chǔ)的數(shù)據(jù)量也更大抚笔。

所以綜上所述,我們需要一個(gè)集群侨拦!

二食绿、詳細(xì)了解 Elasticsearch 集群

接下來(lái)我們?cè)賮?lái)了解下集群的結(jié)構(gòu)是怎樣的退盯。

首先我們應(yīng)該清楚多臺(tái)主機(jī)構(gòu)成了一個(gè)集群刁笙,每臺(tái)主機(jī)稱(chēng)作一個(gè)節(jié)點(diǎn)(Node)榕堰。

如圖就是一個(gè)三節(jié)點(diǎn)的集群:

在圖中,每個(gè) Node 都有三個(gè)分片季研,其中 P 開(kāi)頭的代表 Primary 分片敞葛,即主分片,R 開(kāi)頭的代表 Replica 分片与涡,即副本分片制肮。所以圖中主分片 1、2递沪,副本分片 0 儲(chǔ)存在 1 號(hào)節(jié)點(diǎn)豺鼻,副本分片 0、1款慨、2 儲(chǔ)存在 2 號(hào)節(jié)點(diǎn)儒飒,主分片 0 和副本分片 1、2 儲(chǔ)存在 3 號(hào)節(jié)點(diǎn)檩奠,一共是 3 個(gè)主分片和 6 個(gè)副本分片桩了。同時(shí)我們還注意到 1 號(hào)節(jié)點(diǎn)還有個(gè) MASTER 的標(biāo)識(shí),這代表它是一個(gè)主節(jié)點(diǎn)埠戳,它相比其他的節(jié)點(diǎn)更加特殊井誉,它有權(quán)限控制整個(gè)集群,比如資源的分配整胃、節(jié)點(diǎn)的修改等等颗圣。

這里就引出了一個(gè)概念就是節(jié)點(diǎn)的類(lèi)型,我們可以將節(jié)點(diǎn)分為這么四個(gè)類(lèi)型:

主節(jié)點(diǎn):即 Master 節(jié)點(diǎn)。主節(jié)點(diǎn)的主要職責(zé)是和集群操作相關(guān)的內(nèi)容在岂,如創(chuàng)建或刪除索引奔则,跟蹤哪些節(jié)點(diǎn)是群集的一部分,并決定哪些分片分配給相關(guān)的節(jié)點(diǎn)蔽午。穩(wěn)定的主節(jié)點(diǎn)對(duì)集群的健康是非常重要的易茬。默認(rèn)情況下任何一個(gè)集群中的節(jié)點(diǎn)都有可能被選為主節(jié)點(diǎn)。索引數(shù)據(jù)和搜索查詢(xún)等操作會(huì)占用大量的cpu及老,內(nèi)存抽莱,io資源,為了確保一個(gè)集群的穩(wěn)定骄恶,分離主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)是一個(gè)比較好的選擇食铐。雖然主節(jié)點(diǎn)也可以協(xié)調(diào)節(jié)點(diǎn),路由搜索和從客戶(hù)端新增數(shù)據(jù)到數(shù)據(jù)節(jié)點(diǎn)叠蝇,但最好不要使用這些專(zhuān)用的主節(jié)點(diǎn)璃岳。一個(gè)重要的原則是年缎,盡可能做盡量少的工作悔捶。

數(shù)據(jù)節(jié)點(diǎn):即 Data 節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)主要是存儲(chǔ)索引數(shù)據(jù)的節(jié)點(diǎn)单芜,主要對(duì)文檔進(jìn)行增刪改查操作蜕该,聚合操作等。數(shù)據(jù)節(jié)點(diǎn)對(duì) CPU洲鸠、內(nèi)存堂淡、IO 要求較高,在優(yōu)化的時(shí)候需要監(jiān)控?cái)?shù)據(jù)節(jié)點(diǎn)的狀態(tài)扒腕,當(dāng)資源不夠的時(shí)候绢淀,需要在集群中添加新的節(jié)點(diǎn)。

負(fù)載均衡節(jié)點(diǎn):也稱(chēng)作 Client 節(jié)點(diǎn)瘾腰,也稱(chēng)作客戶(hù)端節(jié)點(diǎn)皆的。當(dāng)一個(gè)節(jié)點(diǎn)既不配置為主節(jié)點(diǎn),也不配置為數(shù)據(jù)節(jié)點(diǎn)時(shí)蹋盆,該節(jié)點(diǎn)只能處理路由請(qǐng)求费薄,處理搜索,分發(fā)索引操作等栖雾,從本質(zhì)上來(lái)說(shuō)該客戶(hù)節(jié)點(diǎn)表現(xiàn)為智能負(fù)載平衡器楞抡。獨(dú)立的客戶(hù)端節(jié)點(diǎn)在一個(gè)比較大的集群中是非常有用的,他協(xié)調(diào)主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)析藕,客戶(hù)端節(jié)點(diǎn)加入集群可以得到集群的狀態(tài)召廷,根據(jù)集群的狀態(tài)可以直接路由請(qǐng)求。

預(yù)處理節(jié)點(diǎn):也稱(chēng)作 Ingest 節(jié)點(diǎn),在索引數(shù)據(jù)之前可以先對(duì)數(shù)據(jù)做預(yù)處理操作柱恤,所有節(jié)點(diǎn)其實(shí)默認(rèn)都是支持 Ingest 操作的数初,也可以專(zhuān)門(mén)將某個(gè)節(jié)點(diǎn)配置為 Ingest 節(jié)點(diǎn)。

以上就是節(jié)點(diǎn)幾種類(lèi)型梗顺,一個(gè)節(jié)點(diǎn)其實(shí)可以對(duì)應(yīng)不同的類(lèi)型泡孩,如一個(gè)節(jié)點(diǎn)可以同時(shí)成為主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)和預(yù)處理節(jié)點(diǎn),但如果一個(gè)節(jié)點(diǎn)既不是主節(jié)點(diǎn)也不是數(shù)據(jù)節(jié)點(diǎn)寺谤,那么它就是負(fù)載均衡節(jié)點(diǎn)仑鸥。具體的類(lèi)型可以通過(guò)具體的配置文件來(lái)設(shè)置。


三变屁、怎樣搭建 Elasticsearch 6.5.4集群

1-1眼俊、準(zhǔn)備環(huán)境

采用三臺(tái)CentOS6.5部署Elasticsearch集群,部署Elasticsearch集群就不得不提索引分片粟关,以下是索引分片的簡(jiǎn)單介紹疮胖。

系統(tǒng)?節(jié)點(diǎn)名稱(chēng)IP地址

?     centos 6.5 ???   els-node1?? ?  192.168.60.201? ? ?

?     centos 6.5?   els-node2?   ?192.168.60.202

    ? centos 6.5?   els-node3? ?  192.168.60.203





ES集群中索引可能由多個(gè)分片構(gòu)成,并且每個(gè)分片可以擁有多個(gè)副本闷板。通過(guò)將一個(gè)單獨(dú)的索引分為多個(gè)分片澎灸,我們可以處理不能在一個(gè)單一的服務(wù)器上面運(yùn)行的大型索引,簡(jiǎn)單的說(shuō)就是索引的大小過(guò)大遮晚,導(dǎo)致效率問(wèn)題性昭。不能運(yùn)行的原因可能是內(nèi)存也可能是存儲(chǔ)。由于每個(gè)分片可以有多個(gè)副本县遣,通過(guò)將副本分配到多個(gè)服務(wù)器糜颠,可以提高查詢(xún)的負(fù)載能力。

由于 Elasticsearch 6.5.4要求linux 內(nèi)核版本要高于3.5+萧求,所以我們先要將系統(tǒng)內(nèi)核升級(jí)至3.5+其兴,詳細(xì)請(qǐng)移步

CentOS6.5升級(jí)內(nèi)核至4.4

1-2、Elasticsearch集群搭建

1.安裝JDK

Elasticsearch是基于Java開(kāi)發(fā)是一個(gè)Java程序夸政,運(yùn)行在Jvm中元旬,所以第一步要安裝JDK

yum install -y java-1.8.0-openjdk-devel? # 安裝1.8或1.8以上版本

2.下載elasticsearch

https://www.elastic.co/cn/downloads/elasticsearch,是ELasticsearch的官方站點(diǎn)秒梳,如果需要下載最新的版本法绵,進(jìn)入官網(wǎng)下載即可±业猓可以下載到本地電腦然后再導(dǎo)入CentOS中朋譬,也可以直接在CentOS中下載。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.rpm

3.安裝elasticsearch

rpm -ivh elasticsearch-6.5.4.rpm

4.配置目錄

安裝完畢后會(huì)生成很多文件兴垦,包括配置文件日志文件等等徙赢,下面幾個(gè)是最主要的配置文件路徑

/etc/elasticsearch/elasticsearch.yml? ? ? ? ? ? ? ? ? ? ? ? ? ? # els的配置文件/etc/elasticsearch/jvm.options? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # JVM相關(guān)的配置字柠,內(nèi)存大小等等/etc/elasticsearch/log4j2.properties? ? ? ? ? ? ? ? ? ? ? ? ? ? # 日志系統(tǒng)定義/usr/share/elasticsearch? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # elasticsearch 默認(rèn)安裝目錄/var/lib/elasticsearch? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 數(shù)據(jù)的默認(rèn)存放位置

5.創(chuàng)建用于存放數(shù)據(jù)與日志的目錄

數(shù)據(jù)文件會(huì)隨著系統(tǒng)的運(yùn)行飛速增長(zhǎng),所以默認(rèn)的日志文件與數(shù)據(jù)文件的路徑不能滿(mǎn)足我們的需求狡赐,那么手動(dòng)創(chuàng)建日志與數(shù)據(jù)文件路徑窑业,可以使用NFS、可以使用Raid等等方便以后的管理與擴(kuò)展

mkdir -p /opt/elasticsearch/data

mkdir -p /opt/elasticsearch/log

chown -R elasticsearch.elasticsearch /opt/elasticsearch/*

6.集群配置

集群配置中最重要的兩項(xiàng)是node.name與network.host枕屉,每個(gè)節(jié)點(diǎn)都必須不同常柄。其中node.name是節(jié)點(diǎn)名稱(chēng)主要是在Elasticsearch自己的日志加以區(qū)分每一個(gè)節(jié)點(diǎn)信息。

discovery.zen.ping.unicast.hosts是集群中的節(jié)點(diǎn)信息搀擂,可以使用IP地址西潘、可以使用主機(jī)名(必須可以解析)。


vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-els? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 集群名稱(chēng)

node.name: els-node1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 節(jié)點(diǎn)名稱(chēng)哨颂,僅僅是描述名稱(chēng)喷市,用于在日志中區(qū)分

path.data: /opt/elasticsearch/data? ? ? ? ? ? ? ? # 數(shù)據(jù)的默認(rèn)存放路徑

path.logs: /opt/elasticsearch/log? ? ? ? ? ? ? ? ? # 日志的默認(rèn)存放路徑

network.host: 192.168.60.201? ? ? ? ? ? ? ? ? ? ? ? # 當(dāng)前節(jié)點(diǎn)的IP地址

http.port: 9200? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 對(duì)外提供服務(wù)的端口,9300為集群服務(wù)的端口

#添加如下內(nèi)容

#culster transport port

transport.tcp.port: 9300transport.tcp.compress: truediscovery.zen.ping.unicast.hosts: ["192.168.60.201","192.168.60.202","192.168.60.203"]? ? ?

# 集群個(gè)節(jié)點(diǎn)IP地址威恼,也可以使用els品姓、els.shuaiguoxia.com等名稱(chēng),需要各節(jié)點(diǎn)能夠解析

discovery.zen.minimum_master_nodes: 2# 為了避免腦裂箫措,集群節(jié)點(diǎn)數(shù)最少為 半數(shù)+1

注意:不要在elasticsearch.yml中添加index開(kāi)頭的配置項(xiàng)腹备。如

#index.number_of_shards:5

#index.number_of_replicas: 1

7.JVM配置?

由于Elasticsearch是Java開(kāi)發(fā)的,所以可以通過(guò)/etc/elasticsearch/jvm.options配置文件來(lái)設(shè)定JVM的相關(guān)設(shè)定蒂破。如果沒(méi)有特殊需求按默認(rèn)即可馏谨。

不過(guò)其中還是有兩項(xiàng)最重要的-Xmx1g與-Xms1gJVM的最大最小內(nèi)存别渔。如果太小會(huì)導(dǎo)致Elasticsearch剛剛啟動(dòng)就立刻停止附迷。太大會(huì)拖慢系統(tǒng)本身。

vim /etc/elasticsearch/jvm.options-Xms1g? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # JVM最大哎媚、最小使用內(nèi)存-Xmx1g

8.使用ROOT賬戶(hù)執(zhí)行以下命令

elasticsearch的相關(guān)配置已經(jīng)完成喇伯,下面需要啟動(dòng)elasticsearch集群。但是由于安全的考慮拨与,elasticsearch不允許使用root用戶(hù)來(lái)啟動(dòng)稻据,所以需要?jiǎng)?chuàng)建一個(gè)新的用戶(hù),并為這個(gè)賬戶(hù)賦予相應(yīng)的權(quán)限來(lái)啟動(dòng)elasticsearch集群买喧。

創(chuàng)建ES運(yùn)行用戶(hù)

# 創(chuàng)建用戶(hù)組

groupadd es

# 創(chuàng)建用戶(hù)并添加至用戶(hù)組

useradd es -g es

# 更改用戶(hù)密碼(輸入 123123)

passwd es

修改ES目錄權(quán)限

chown -R es:es? /etc/share/elasticsearch/chown -R es:es? /usr/share/elasticsearch/chown -R es:es? /var/log/elasticsearch/? ? ? # 以上操作都是為了賦予es用戶(hù)操作權(quán)限

啟動(dòng)服務(wù)

# 需切換為es用戶(hù)

su es

# 啟動(dòng)服務(wù)(當(dāng)前的路徑為:/usr/share/elasticsearch/)

./bin/elasticsearch

后臺(tái)運(yùn)行ES

可以加入-p 命令 讓es在后臺(tái)運(yùn)行捻悯, -p 參數(shù) 記錄進(jìn)程ID為一個(gè)文件

# 設(shè)置后臺(tái)啟動(dòng)

./bin/elasticsearch -p /tmp/elasticsearch-pid -d

結(jié)束進(jìn)程

# 查看運(yùn)行的pid

cat /tmp/elasticsearch-pid && echo

# 結(jié)束進(jìn)程

kill -SIGTERM {pid}

驗(yàn)證一下服務(wù)是否正常

curl -i"http://192.168.60.200:9200"


二、安裝head插件

Elasticsearch Head Plugin:head插件是一個(gè)ES集群的web前端工具淤毛,它提供可視化的頁(yè)面方便用戶(hù)查看節(jié)點(diǎn)信息今缚,對(duì)ES進(jìn)行各種操作,如查詢(xún)低淡、刪除姓言、瀏覽索引等瞬项。

1、安裝相關(guān)依賴(lài)包

(1)安裝head

由于head插件本質(zhì)上還是一個(gè)nodejs的工程何荚,因此需要安裝node囱淋,使用npm來(lái)安裝依賴(lài)的包。(npm可以理解為maven)

wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz  # 下載nodejs最新的bin包xz-d node-v9.3.0-linux-x64.tar.xz  # 解壓包

tar-xf node-v9.3.0-linux-x64.tar  # 解壓包ln-s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node? # 部署bin文件餐塘,先確定nodejs的bin路徑

ln-s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm

測(cè)試:

node -v

npm

npm加速 全局安裝cnpm 指定來(lái)源淘寶鏡像

npm install -g cnpm --registry=https://registry.npm.taobao.org

(2)安裝grunt(安裝完elasticsearch-head后安裝)

grunt是一個(gè)很方便的構(gòu)建工具妥衣,可以進(jìn)行打包壓縮、測(cè)試戒傻、執(zhí)行等等的工作称鳞,5.0里的head插件就是通過(guò)grunt啟動(dòng)的。因此需要安裝一下grunt:

cd? /usr/local/elasticsearch-head

npm install -g grunt-cli? //執(zhí)行后會(huì)生成node_modules文件夾

npm install

注:

(1)5.0以上稠鼻,elasticsearch-head 不能放在elasticsearch的plugins冈止、modules目錄下,否則elasticsearch啟動(dòng)會(huì)報(bào)錯(cuò)候齿。

(2)這里如果grunt沒(méi)有安裝成功也無(wú)所謂熙暴,可以通過(guò)其他方式啟動(dòng)elasticsearch-head插件(npm run start)。


2慌盯、安裝elasticsearch-head

另外:5.0以前的版本可以通過(guò)elasticseach自帶的plugin命令 安裝elasticsearch-head周霉,5.0以后不支持了。只可以去下載elasticsearch-head對(duì)應(yīng)的源碼包去安裝亚皂。

cd /usr/local/

git?clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

npm install

配置:

vi _site/app.js# 修改 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";? # 在文件的4354行附近# 這里的 localhost 是指進(jìn)入elasticsearch-head頁(yè)面時(shí)默認(rèn)訪(fǎng)問(wèn)的ES集群地址俱箱,把她修改為其中一臺(tái)ES節(jié)點(diǎn)的地址即可this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") ||"http://192.168.60.200:9200";

還要修改Head主目錄下的Gruntfile.js,由于默認(rèn)文件中是沒(méi)有hostname屬性的灭必,我們需要手動(dòng)添加:


為什么需要修改配置文件:

head插件連接elasticsearch需要注意的點(diǎn):

因?yàn)閔ead插件是一個(gè)獨(dú)立進(jìn)程狞谱,啟動(dòng)后是一個(gè)獨(dú)立的服務(wù)器外加端口,比如我的虛擬機(jī)ip地址:http://192.168.0.111:9100/而elasticsearch啟動(dòng)后也是一個(gè)獨(dú)立的進(jìn)程禁漓,ip地址:http://192.168.0.111:9200/這樣兩個(gè)獨(dú)立進(jìn)程跟衅,雖然服務(wù)器ip地址相同,但是端口不同播歼,此時(shí)會(huì)發(fā)生跨域的情況伶跷。。

于是官方給出這樣一段話(huà)秘狞,我們?cè)趯?duì)elasticsearch啟動(dòng)的時(shí)候追加兩個(gè)配置文件屬性即可防止跨域叭莫。

即:在elasticsearch.yml文件的最后,添加如下內(nèi)容:

http.cors.enabled: true

http.cors.allow-origin:"*"

配置完畢烁试。

3雇初、啟動(dòng)elasticsearch集群

在三臺(tái)機(jī)器上,分別啟動(dòng)elasticsearch即可廓潜。

./bin/elasticsearch

4抵皱、啟動(dòng)elasticsearch-head

cd /usr/local/elasticsearch-head //先跳轉(zhuǎn)到head目錄下

grunt server //若想在后臺(tái)運(yùn)行善榛,結(jié)尾追加“&”,也可以使用 npm run start啟動(dòng)

5、訪(fǎng)問(wèn)elasticsearch-head界面

http://192.168.60.200:9100

可以看到呻畸,三臺(tái)機(jī)器組成了es集群移盆。集群的狀態(tài)為綠色,健康狀態(tài)伤为。帶星標(biāo)的節(jié)點(diǎn)els-node1為主節(jié)點(diǎn)(選舉)咒循。還可以做一些增加/刪除索引,查詢(xún)等操作绞愚。

下面還有ik分詞器的安裝叙甸,未完待續(xù)。位衩。裆蒸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市糖驴,隨后出現(xiàn)的幾起案子僚祷,更是在濱河造成了極大的恐慌,老刑警劉巖贮缕,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辙谜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡感昼,警方通過(guò)查閱死者的電腦和手機(jī)装哆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)定嗓,“玉大人蜕琴,你說(shuō)我怎么就攤上這事⊥上纾” “怎么了奸绷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵梗夸,是天一觀(guān)的道長(zhǎng)层玲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)反症,這世上最難降的妖魔是什么辛块? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮铅碍,結(jié)果婚禮上润绵,老公的妹妹穿的比我還像新娘。我一直安慰自己胞谈,他們只是感情好尘盼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布憨愉。 她就那樣靜靜地躺著,像睡著了一般卿捎。 火紅的嫁衣襯著肌膚如雪配紫。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天午阵,我揣著相機(jī)與錄音躺孝,去河邊找鬼。 笑死底桂,一個(gè)胖子當(dāng)著我的面吹牛植袍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播籽懦,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼于个,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了暮顺?” 一聲冷哼從身側(cè)響起览濒,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拖云,沒(méi)想到半個(gè)月后贷笛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宙项,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年乏苦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤筐。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汇荐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盆繁,到底是詐尸還是另有隱情掀淘,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布油昂,位于F島的核電站革娄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冕碟。R本人自食惡果不足惜拦惋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望安寺。 院中可真熱鬧厕妖,春花似錦、人聲如沸挑庶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至举畸,卻和暖如春埋嵌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俱恶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工雹嗦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人合是。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓了罪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親聪全。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泊藕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345