Elasticsearch集群的搭建

簡介

ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎从铲,基于RESTful web接口。Elasticsearch是用Java開發(fā)的澄暮,并作為Apache許可條款下的開放源碼發(fā)布名段,是當前流行的企業(yè)級搜索引擎阱扬。設計用于云計算中,能夠達到實時搜索伸辟,穩(wěn)定麻惶,可靠,快速信夫,安裝使用方便窃蹋。

基礎概念

  1. Cluster(集群)
    cluster(集群)是一個或者多個節(jié)點的集合,它們一起保存數(shù)據(jù)并且提供所有節(jié)點聯(lián)合索引以及搜索功能静稻。集群存在一個唯一的名字且默認為 “elasticsearch”脐彩。這個名字非常重要,因為如果節(jié)點安裝時通過它自己的名字加入到集群中的話姊扔,那么一個節(jié)點只能是一個集群中的一部分惠奸。
    請確保您在不同環(huán)境中不要重復使用相同的集群名字,否則您可能最終會將節(jié)點加入到了錯誤的集群中恰梢。
  2. Node(節(jié)點)
    node(節(jié)點)是一個單獨的服務器佛南,它是集群的一部分,存儲數(shù)據(jù)嵌言,參與集群中的索引和搜索功能嗅回。像一個集群一樣,一個節(jié)點通過一個在它啟動時默認分配的一個隨機的 UUID(通用唯一標識符)名稱來識別摧茴。如果您不想使用默認名稱您也可自定義任何節(jié)點名稱绵载。
  3. Index(索引)
    index(索引)是具有稍微類似特征文檔的集合。類似關系型數(shù)據(jù)庫中庫的概念苛白。
  4. Type(類型)
    在 Index(索引)中娃豹,可以定義一個或多個類型。一個類型是索引中一個邏輯的種類/分區(qū)购裙,它的語義完全取決于您自己懂版。類似關系型數(shù)據(jù)庫中表的概念。
  5. Document(文檔)
    document(文檔)是索引信息的基本單位躏率。該文檔可以使用json來表示躯畴。類似關系型數(shù)據(jù)庫中記錄的概念。
  6. Shards (分片 )
    索引可以存儲大量數(shù)據(jù)薇芝,可以超過單個節(jié)點的硬件限制蓬抄。例如,十億個文檔占用了 1TB 的磁盤空間的單個索引可能不適合放在單個節(jié)點的磁盤上夯到,并且從單個節(jié)點服務請求會變得很慢嚷缭。
    為了解決這個問題,Elasticsearch 提供了把 Index(索引)拆分到多個 Shard(分片)中的能力黄娘。在創(chuàng)建索引時峭状,您可以簡單的定義 Shard(分片)的數(shù)量克滴。
  7. Replicas(副本)
    為了在 shard或node 故障的情況下提供高可用性和容錯性。所以提供了shard的副本功能优床。

總而言之劝赔,每個索引可以被拆分成多個分片,一個索引可以設置 0 個(沒有副本)或多個副本胆敞。開啟副本后着帽,每個索引將有主分片(被復制的原始分片)和副本分片(主分片的副本)。分片和副本的數(shù)量在索引被創(chuàng)建時都能夠被指定移层。在創(chuàng)建索引后仍翰,您也可以在任何時候動態(tài)的改變副本的數(shù)量,但是不能夠改變分片數(shù)量观话。
默認情況下予借,Elasticsearch 中的每個索引分配了 5 個主分片和 1 個副本,這也就意味著如果您的集群至少有兩個節(jié)點的話频蛔,您的索引將會有 5 個主分片和另外 5 個副本分片(1 個完整的副本)灵迫,每個索引共計 10 個分片。

下載安裝

前提條件:Elasticsearch 是使用 Java 構(gòu)建的晦溪,并且至少需要 Java 8 才能運行瀑粥。 只支持 Oracle 的 Java 和 OpenJDK。在所有 Elasticsearch 節(jié)點和客戶端上應使用相同的 JVM 版本三圆。

cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz #使用wget命令下載
tar -zxvf elasticsearch-6.2.3.tar.gz
cd elasticsearch-6.2.3
#當我們不進行任何配置的時候運行下面的命令就可以啟動一個單節(jié)點的集群狞换。
#當我們在輸出信息中看到started的時候就表示啟動成功了。
#我們可以在瀏覽器地址欄中輸入http://localhost:9200就可以看到相關的信息舟肉。
# 在后面加 -d 參數(shù)可以后臺啟動
./bin/elasticsearch 

集群配置

以下我使用三個節(jié)點(192.168.10.104修噪、192.168.10.105、192.168.10.106)來組成一個elasticsearch集群
我們使用scp命令把tar包復制到集群中另外的兩個節(jié)點上度气,并進行解壓操作割按。

scp elasticsearch-6.2.3.tar.gz root@cn05:/opt
scp elasticsearch-6.2.3.tar.gz root@cn06:/opt

首先我們先配置cn04(192.168.10.104)節(jié)點膨报。
配置文件在config目錄下
我們只需配置elasticsearch.yml文件即可磷籍。

cd /opt/elasticsearch-6.2.3/
vim config/elasticsearch.yml
#在文件中添加以下內(nèi)容
cluster.name: elasticsearch_test #集群的名稱。 默認名稱為elasticsearch现柠。
node.name: cn04 #節(jié)點名稱院领。默認情況下,Elasticsearch將使用隨機生成的uuid的第一個字符作為節(jié)點id够吩。
path.data: /var/lib/elasticsearch #數(shù)據(jù)存放目錄比然。默認數(shù)據(jù)目錄是$ES_HOME的子文件夾。
path.logs: /var/log/elasticsearch #日志存放目錄周循。默認日志目錄是$ES_HOME的子文件夾强法。
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false
network.host: 192.168.10.104 #ip
http.port: 9200 #port
node.master: true #標識該節(jié)點為master
discovery.zen.minimum_master_nodes: 2 
#保存退出即可万俗。

配置cn05(192.168.10.105)節(jié)點

vim config/elasticsearch.yml
#在文件中添加以下內(nèi)容
cluster.name: elasticsearch_test #集群的名稱。 默認名稱為elasticsearch饮怯。
node.name: cn05 #節(jié)點名稱闰歪。默認情況下,Elasticsearch將使用隨機生成的uuid的第一個字符作為節(jié)點id蓖墅。
path.data: /var/lib/elasticsearch #數(shù)據(jù)存放目錄库倘。默認數(shù)據(jù)目錄是$ES_HOME的子文件夾。
path.logs: /var/log/elasticsearch #日志存放目錄论矾。默認日志目錄是$ES_HOME的子文件夾教翩。
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false
network.host: 192.168.10.105 #ip
http.port: 9200 #port
discovery.zen.ping.unicast.hosts: ["cn04"]
discovery.zen.minimum_master_nodes: 2 

配置cn06(192.168.10.106)節(jié)點

vim config/elasticsearch.yml
#在文件中添加以下內(nèi)容
cluster.name: elasticsearch_test #集群的名稱。 默認名稱為elasticsearch贪壳。
node.name: cn06 #節(jié)點名稱饱亿。默認情況下,Elasticsearch將使用隨機生成的uuid的第一個字符作為節(jié)點id闰靴。
path.data: /var/lib/elasticsearch #數(shù)據(jù)存放目錄路捧。默認數(shù)據(jù)目錄是$ES_HOME的子文件夾。
path.logs: /var/log/elasticsearch #日志存放目錄传黄。默認日志目錄是$ES_HOME的子文件夾杰扫。
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false
network.host: 192.168.10.106 #ip
http.port: 9200 #port
discovery.zen.ping.unicast.hosts: ["cn04"]
discovery.zen.minimum_master_nodes: 2 

ok,三個節(jié)點全部配置完了膘掰。
當我們啟動cn04節(jié)點的時候啟動不了章姓,出現(xiàn)了幾個Error.
常見的幾個Error信息如下:

  1. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
    解決辦法:
    執(zhí)行命令即可解決:ulimit -n 65536,不過這只是臨時設置识埋,要想永久生效需要在/etc/security/limits.conf文件中添加配置elasticsearch - nofile 65536
    elasticsearch表示用戶名凡伊,在用戶下次打開一個新的會話時才會生效。
  2. max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
    解決方法:
切換到root用戶下窒舟,修改配置文件sysctl.conf
vim /etc/sysctl.conf
添加下面配置:
vm.max_map_count=262144
#保存退出即可
之后執(zhí)行命令:
sysctl -p
  1. system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    解決辦法:在配置文件中增加如下兩個配置項(我已經(jīng)提前增加進配置文件里了系忙。)
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
  1. max number of threads [1024] for user [es] likely too low, increase to at least [2048]
    解決方法:切換到root用戶,進入limits.d目錄下惠豺,修改90-nproc.conf 配置文件银还。
vim /etc/security/limits.d/90-nproc.conf
#找到如下內(nèi)容:
* soft nproc 1024
#修改為
* soft nproc 2048

解決了以上出現(xiàn)的問題,集群就可以正常啟動洁墙,使用./bin/elasticsearch命令蛹疯,先啟動cn04節(jié)點,在啟動cn05和cn06兩個節(jié)點热监。
當我們在每個節(jié)點輸出信息中都看到started的時候就表示三個節(jié)點已經(jīng)啟動成功了捺弦。

常用命令

  1. 我們可以使用命令curl -XGET 'localhost:9200/_cat/nodes?v&pretty'獲取集群列表.可以看到有三個節(jié)點的信息。
  2. 使用命令curl -XGET 'localhost:9200/_cat/health?v&pretty'可以查看節(jié)點的健康狀況。當status是green的時候表示是健康的列吼。另外還有yellow和red兩個狀態(tài)表示幽崩。Green 表示一切正常(集群功能齊全), yellow 表示所有數(shù)據(jù)可用寞钥,但是有些副本尚未分配(集群功能齊全)歉铝,red 意味著由于某些原因有些數(shù)據(jù)不可用。注意凑耻,集群是 red太示,它仍然具有部分功能(例如,它將繼續(xù)從可用的分片中服務搜索請求)香浩,但是您可能需要盡快去修復它类缤,因為您已經(jīng)丟失數(shù)據(jù)了。
  3. 使用命令curl -XGET 'localhost:9200/_cat/indices?v&pretty'列出所有索引邻吭。
  4. 使用命令curl -XPUT 'localhost:9200/customer?pretty&pretty'創(chuàng)建一個名為 “customer” 的索引餐弱。
  5. 使用命令curl -XPUT 'localhost:9200/customer/external/1?pretty&pretty' -d' { "name": "John Doe" }'創(chuàng)建一條簡單的文檔到 customer 索引中,“external” 類型囱晴,與一個為 1 的 ID膏蚓。
  6. 使用命令curl -XGET 'localhost:9200/customer/external/1?pretty&pretty'檢索我們剛剛索引的文檔。
  7. 使用命令curl -XDELETE 'localhost:9200/customer?pretty&pretty'刪除剛才創(chuàng)建的索引畸写。

更多的命令可以到官網(wǎng)去學習驮瞧。
elasticsearch只是elastic stack家族中的一個開源框架,家族成員中還有l(wèi)ogstash枯芬、kibana等论笔。了解更多信息的話就可以去官網(wǎng)看看。
有一個中文文檔分享給大家http://cwiki.apachecn.org/pages/viewpage.action?pageId=4260364


END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末千所,一起剝皮案震驚了整個濱河市狂魔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淫痰,老刑警劉巖最楷,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異待错,居然都是意外死亡籽孙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門朗鸠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚯撩,“玉大人,你說我怎么就攤上這事烛占。” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵忆家,是天一觀的道長犹菇。 經(jīng)常有香客問我,道長芽卿,這世上最難降的妖魔是什么揭芍? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮卸例,結(jié)果婚禮上称杨,老公的妹妹穿的比我還像新娘。我一直安慰自己筷转,他們只是感情好姑原,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呜舒,像睡著了一般锭汛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袭蝗,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天唤殴,我揣著相機與錄音,去河邊找鬼到腥。 笑死朵逝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的乡范。 我是一名探鬼主播廉侧,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼篓足!你這毒婦竟也來了段誊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤栈拖,失蹤者是張志新(化名)和其女友劉穎连舍,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩哟,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡索赏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贴彼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潜腻。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖器仗,靈堂內(nèi)的尸體忽然破棺而出融涣,到底是詐尸還是另有隱情童番,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布威鹿,位于F島的核電站剃斧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忽你。R本人自食惡果不足惜幼东,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望科雳。 院中可真熱鬧根蟹,春花似錦、人聲如沸糟秘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚌堵。三九已至买决,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吼畏,已是汗流浹背督赤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泻蚊,地道東北人躲舌。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像性雄,于是被迫代替她去往敵國和親没卸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348