基于Docker的Elasticsearch集群部署

本文是基于ES5.6.3和Docker的集群部署、配置說明伙单,如有錯誤或更好的建議請指正

節(jié)點類型

Master節(jié)點 (主節(jié)點)

node.master: true 
node.data: false

這樣配置的節(jié)點為master節(jié)點瓣履。主節(jié)點的主要職責是和集群操作相關的內容檐薯,如創(chuàng)建或刪除索引衰絮,跟蹤哪些節(jié)點是群集的一部分袍冷,并決定哪些分片分配給相關的節(jié)點。穩(wěn)定的主節(jié)點對集群的健康是非常重要的猫牡。

為了防止數據丟失胡诗,配置discovery.zen.minimum_master_nodes設置是至關重要的

(默認為1),每個主節(jié)點應該知道形成一個集群的最小數量的主資格節(jié)點的數量淌友。

解釋如下:

? 假設我們有一個集群煌恢。有3個主資格節(jié)點,當網絡發(fā)生故障的時候震庭,有可能其中一個節(jié)點不能和其他節(jié)點進行通信了瑰抵。這個時候,當discovery.zen.minimum_master_nodes設置為1的時候归薛,就會分成兩個小的獨立集群谍憔,當網絡好的時候,就會出現(xiàn)數據錯誤或者丟失數據的情況主籍。當discovery.zen.minimum_master_nodes設置為2的時候习贫,一個網絡中有兩個主資格節(jié)點,可以繼續(xù)工作千元,另一部分苫昌,由于只有一個主資格節(jié)點,則不會形成一個獨立的集群幸海,這個時候當網絡回復的時候祟身,節(jié)點又會從新加入集群。

設置這個值的原則是:

(master_eligible_nodes / 2)+ 1

Data節(jié)點(數據節(jié)點)

node.master: false 
node.data: true

數據節(jié)點主要是存儲索引數據的節(jié)點物独,主要對文檔進行增刪改查操作袜硫,聚合操作等。數據節(jié)點對cpu挡篓,內存婉陷,io要求較高,在優(yōu)化的時候需要監(jiān)控數據節(jié)點的狀態(tài)官研,當資源不夠的時候秽澳,需要在集群中添加新的節(jié)點。

Client節(jié)點 (客戶端節(jié)點)

當主節(jié)點和數據節(jié)點配置都設置為false的時候戏羽,該節(jié)點只能處理路由請求担神,處理搜索,分發(fā)索引操作等始花,從本質上來說該客戶節(jié)點表現(xiàn)為智能負載平衡器妄讯。獨立的客戶端節(jié)點在一個比較大的集群中是非常有用的孩锡,他協(xié)調主節(jié)點和數據節(jié)點,客戶端節(jié)點加入集群可以得到集群的狀態(tài)捞挥,根據集群的狀態(tài)可以直接路由請求浮创。
警告:添加太多的客戶端節(jié)點對集群是一種負擔忧吟,因為主節(jié)點必須等待每一個節(jié)點集群狀態(tài)的更新確認砌函!客戶節(jié)點的作用不應被夸大,數據節(jié)點也可以起到類似的作用溜族。配置如下:

node.master: false 
node.data: false

在配置ES集群的時候讹俊,要根據現(xiàn)場情況進行配置

下面舉例來進行集群配置。

準備工作

  • Elasticsearch5.6.3鏡像
  • 兩臺服務器
  • 兩份elasticsearch.yml配置文件

操作

首先我這里有兩臺服務器煌抒,172.16.73.49 和 172.16.73.50
計劃把172.16.73.50作為master節(jié)點仍劈,172.16.73.49作為data節(jié)點。

1.準備配置文件

在用docker啟動master節(jié)點前寡壮,我們需要先寫好master節(jié)點的elasticsearch.yml文件贩疙。我準備好的配置文件內容如下:

cluster.name: "boss-es-cluster"
node.name: node-50
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 172.16.73.50
discovery.zen.ping.unicast.hosts: ["172.16.73.49"]
discovery.zen.minimum_master_nodes: 1

解釋一下內容:

cluster.name:  //集群名稱。如果想讓多個節(jié)點加入一個集群况既,那么需要使集群名稱一致这溅。
node.name: //節(jié)點名,為這個節(jié)點起一個獨一無二的名字
node.master: //該節(jié)點是否擔任master角色
node.data: //該節(jié)點是否可以擔任data節(jié)點的角色
network.host: //設置為0.0.0.0 棒仍,意思是任何IP都可以訪問
network.publish_host: //本節(jié)點在外部的IP
discovery.zen.minimum_master_nodes: //自動發(fā)現(xiàn)master節(jié)點的最小數悲靴,如果這個集群中配置進來的master節(jié)點少于這個數目,es的日志會一直報master節(jié)點數目不足莫其。
discovery.zen.ping.unicast.hosts: // 按照我的理解癞尚,這里配置的host ip才是可以ping通的,因此在這里加上49的ip乱陡。因為本文是只有兩個節(jié)點的es集群浇揩,所以只寫對方的ip即可。如果是大于2個以上的節(jié)點的es集群憨颠,那么我想應該是在這里寫上所有集群的ip
在這個配置中胳徽,注意到這個節(jié)點既是主節(jié)點又是數據節(jié)點,實際上對這個節(jié)點的壓力是挺大的烙心,在資源比較充裕的條件下不建議這樣做膜廊。

對比一下 49 這個data節(jié)點的配置文件:

cluster.name: "boss-es-cluster"
node.name: node-49
node.master: false
node.data: true
network.host: 0.0.0.0
network.publish_host: 172.16.73.49
discovery.zen.ping.unicast.hosts: ["172.16.73.50"]

2.準備目錄

在172.16.73.49和172.16.73.50上,都準備如下目錄結構:

  • /var/espn/config
  • /var/espn/data

config是掛載elasticsearch.yml的目錄
data是掛載數據的目錄

3.啟動master節(jié)點

在172.16.73.50上 淫茵,執(zhí)行:

docker run -d --name=espn-50 -p 9200:9200 -p 9300:9300  -v /var/espn/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /var/espn/data:/usr/share/elasticsearch/data elasticsearch:5.6.3

將master節(jié)點容器命名為espn-50,開放9200 和 9300端口爪瓜,并掛載config目錄下的elasticsearch.yml和data目錄

4.啟動data節(jié)點

在172.16.73.49上 ,執(zhí)行:

docker run -d --name=espn-49 -p 9200:9200 -p 9300:9300  -v /var/espn/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /var/espn/data:/usr/share/elasticsearch/data elasticsearch:5.6.3

至此為止匙瘪,如果docker啟動無誤铆铆,我們就可以來看一下各個es節(jié)點狀態(tài)和集群狀態(tài)了蝶缀。

5.確認集群

在172.16.73.50上:

$ curl 'localhost:9200'

response:

{
  "name" : "node-50",
  "cluster_name" : "boss-es-cluster",
  "cluster_uuid" : "kNr1ejDGQ2GZCN3UYc_WGA",
  "version" : {
    "number" : "5.6.3",
    "build_hash" : "1a2f265",
    "build_date" : "2017-10-06T20:33:39.012Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

節(jié)點啟動正常!

查看節(jié)點健康度:

$ curl 'localhost:9200/_cat/health?v=pretty' 
epoch      timestamp cluster         status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1515988034 03:47:14  boss-es-cluster green           2         2      0   0    0    0        0             0                  -                100.0%

從結果可以看到薄货,集群健康為綠色翁都,有兩個數據節(jié)點在集群中。

查看集群狀況

$ curl 'localhost:9200/_cat/nodes?v=pretty' 
ip           heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.16.73.49           21          50   7    0.47    0.52     0.66 di        -      node-49
172.16.73.50           26         100   1    0.09    0.11     0.22 mdi       *      node-50

可以看見 谅猾,基本的節(jié)點情況已經很清楚的看到集群的情況了柄慰。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市税娜,隨后出現(xiàn)的幾起案子坐搔,更是在濱河造成了極大的恐慌,老刑警劉巖敬矩,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概行,死亡現(xiàn)場離奇詭異,居然都是意外死亡弧岳,警方通過查閱死者的電腦和手機凳忙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禽炬,“玉大人涧卵,你說我怎么就攤上這事∠古祝” “怎么了艺演?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桐臊。 經常有香客問我胎撤,道長,這世上最難降的妖魔是什么断凶? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任伤提,我火速辦了婚禮,結果婚禮上认烁,老公的妹妹穿的比我還像新娘肿男。我一直安慰自己,他們只是感情好却嗡,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布舶沛。 她就那樣靜靜地躺著,像睡著了一般窗价。 火紅的嫁衣襯著肌膚如雪如庭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天撼港,我揣著相機與錄音坪它,去河邊找鬼骤竹。 笑死,一個胖子當著我的面吹牛往毡,可吹牛的內容都是我干的蒙揣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼开瞭,長吁一口氣:“原來是場噩夢啊……” “哼懒震!你這毒婦竟也來了?” 一聲冷哼從身側響起惩阶,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤挎狸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后断楷,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡崭别,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年冬筒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茅主。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡舞痰,死狀恐怖,靈堂內的尸體忽然破棺而出诀姚,到底是詐尸還是另有隱情响牛,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布赫段,位于F島的核電站呀打,受9級特大地震影響,放射性物質發(fā)生泄漏糯笙。R本人自食惡果不足惜贬丛,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望给涕。 院中可真熱鬧豺憔,春花似錦、人聲如沸够庙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耘眨。三九已至昼榛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毅桃,已是汗流浹背褒纲。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工准夷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莺掠。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓衫嵌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親彻秆。 傳聞我的和親對象是個殘疾皇子楔绞,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容