Docker安裝ElasticSearch和Elasticsearch-Head以及IK分詞器

ElasticSearch 是一個(gè)分布式猴贰、高擴(kuò)展、高實(shí)時(shí)的搜索引擎乔夯。它能很方便的使大量數(shù)據(jù)具有搜索、分析和探索的能力款侵。充分利用ElasticSearch的水平伸縮性末荐,能使數(shù)據(jù)在生產(chǎn)環(huán)境變得更有價(jià)值。ElasticSearch 的實(shí)現(xiàn)原理主要分為以下幾個(gè)步驟新锈,首先用戶將數(shù)據(jù)提交到Elastic Search 數(shù)據(jù)庫中甲脏,再通過分詞控制器去將對應(yīng)的語句分詞,將其權(quán)重和分詞結(jié)果一并存入數(shù)據(jù),當(dāng)用戶搜索數(shù)據(jù)時(shí)候块请,再根據(jù)權(quán)重將結(jié)果排名娜氏,打分,再將返回結(jié)果呈現(xiàn)給用戶墩新,本文介紹如果通過Docker進(jìn)行安裝Elasticsearch單節(jié)點(diǎn)和集群

一贸弥、安裝單節(jié)點(diǎn)Elasticsearch

1、拉取Elasticsearch

docker pull elasticsearch:6.8.7

2海渊、創(chuàng)建數(shù)據(jù)卷

主要用于將容器內(nèi)的數(shù)據(jù)和宿主機(jī)進(jìn)行掛載绵疲,避免容器重啟和掛掉的時(shí)候數(shù)據(jù)丟失

  • 創(chuàng)建目錄
# -p是創(chuàng)建多級(jí)目錄
mkdir -p /data/es
  • 進(jìn)入剛剛創(chuàng)建的es目錄,創(chuàng)建數(shù)據(jù)存放目錄和日志存放目錄
# 進(jìn)入目錄
cd /data/es
# 創(chuàng)建數(shù)據(jù)目錄和日志目錄
mkdir data log
# 這兩個(gè)目錄的用戶權(quán)限要與啟動(dòng)es的用戶相同臣疑,否則會(huì)出現(xiàn)沒有權(quán)限讀取盔憨,這里為了方便直接給開放最大權(quán)限
chmod 777 data log
  • 創(chuàng)建配置文件
vim es.yml
  • 文件中加入以下內(nèi)容
cluster.name: elasticsearch-cluster
node.name: es-node
http.port: 9200
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

3、啟動(dòng)

docker run -d --name es -p 9200:9200 -p 9300:9300 --restart always -v /data/es/data/:/usr/share/elasticsearch/data -v /data/es/log/:/usr/share/elasticsearch/logs -v /data/es/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e "discovery.type=single-node" elasticsearch:6.8.7
  • 最后通過瀏覽器測試是否啟動(dòng)成功

4讯沈、安裝IK分詞器

Elasticsearch分詞器郁岩,對中文分詞不是太友好。這里我們可以下載開源的IK分詞器

  • 進(jìn)入es容器
docker exec -it es bash
  • 進(jìn)入plugin目錄并安裝分詞器
# 進(jìn)入目錄
cd plugins/
# 安裝分詞器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.7/elasticsearch-analysis-ik-6.8.7.zip

5芙盘、安裝Elasticsearch-Head

提供了操作Elasticsearch的界面

  • 拉取鏡像
docker pull mobz/elasticsearch-head:5
  • 運(yùn)行
docker run -d --name eshead -p 9100:9100 docker.io/mobz/elasticsearch-head:5

最后通過瀏覽器打開驯用,并進(jìn)行連接測試是否連接成功,這時(shí)候?qū)S集群進(jìn)行操作時(shí)會(huì)出現(xiàn)406異常儒老,需要我們?nèi)ヅ渲孟?/p>

# 進(jìn)入head容器
docker exec -it eshead bash

# 編輯配置文件蝴乔,如果沒有vim命令自行安裝vim
vim _site/vendor.js

# 在未編輯的模式下使用以下命令查詢
/contentType
輸入i開啟編輯模式,application/x-www-form-urlencoded 改為 application/json;charset=UTF-8

# 按鍵盤的ESC健退出編輯模式驮樊,然后查詢下一個(gè)
/var inspectData = s.contentType
輸入i開啟編輯模式薇正,將application/x-www-form-urlencoded 改為 application/json;charset=UTF-8

# 輸入wq保存并退出,最后退出容器并重啟容器
exit
docker restart eshead

到此就安裝好單節(jié)點(diǎn)的Elasticsearch啦囚衔,但是有個(gè)地方要注意挖腰,ES的版本號(hào)一定要和分詞器的版本對應(yīng)

二、安裝集群版的Elasticsearch

這里只介紹如何安裝集群练湿,不再介紹安裝分詞器等猴仑。。

1肥哎、創(chuàng)建配置文件

這里還是延續(xù)安裝單節(jié)點(diǎn)辽俗,在/data/es目錄中創(chuàng)建,如果服務(wù)器沒有該目錄就自行創(chuàng)建

vim es.yml

加入以下內(nèi)容

cluster.name: elasticsearch-cluster
node.name: es-node1
network.host: 0.0.0.0
network.publish_host: 192.168.1.97
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.1.97:9300","192.168.1.98:9300"]
discovery.zen.minimum_master_nodes: 2
  • 在第二臺(tái)服務(wù)器也創(chuàng)建該配置文件并加入以下內(nèi)容
cluster.name: elasticsearch-cluster
node.name: es-node2
network.host: 0.0.0.0
network.publish_host: 192.168.1.98
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.1.98:9300","192.168.1.97:9300"]
discovery.zen.minimum_master_nodes: 2

以下為配置的描述

配置 描述
cluster.name 用于唯一標(biāo)識(shí)一個(gè)集群篡诽,不同的集群崖飘,其 cluster.name 不同,集群名字相同的所有節(jié)點(diǎn)自動(dòng)組成一個(gè)集群
node.name 節(jié)點(diǎn)名杈女,默認(rèn)隨機(jī)指定一個(gè)name列表中名字朱浴。一個(gè)集群中node名字不能重復(fù)
network.host 允許訪問的IP吊圾,默認(rèn)為0.0.0.0
network.publish_host 設(shè)置其它結(jié)點(diǎn)和該結(jié)點(diǎn)交互的ip地址,如果不設(shè)置它會(huì)自動(dòng)判斷翰蠢,值必須是個(gè)真實(shí)的ip地址
http.port 設(shè)置對外服務(wù)的http端口项乒,默認(rèn)為9200
transport.tcp.port 設(shè)置節(jié)點(diǎn)之間交互的tcp端口,默認(rèn)是9300
http.cors.enabled 是否允許跨域
http.cors.allow-origin 允許的域名梁沧,*表示所有
node.master 該結(jié)點(diǎn)是否有資格被選舉為主結(jié)點(diǎn)(候選主結(jié)點(diǎn))板丽,用于處理請求和管理集群。如果結(jié)點(diǎn)沒有資格成為主結(jié)點(diǎn)趁尼,那么該結(jié)點(diǎn)永遠(yuǎn)不可能成為主結(jié)點(diǎn);如果結(jié)點(diǎn)有資格成為主結(jié)點(diǎn)猖辫,只有在被其他候選主結(jié)點(diǎn)認(rèn)可和被選舉為主結(jié)點(diǎn)之后酥泞,才真正成為主結(jié)點(diǎn)
node.data 配置該結(jié)點(diǎn)是數(shù)據(jù)結(jié)點(diǎn),用于保存數(shù)據(jù)啃憎,執(zhí)行數(shù)據(jù)相關(guān)的操作
discovery.zen.ping.unicast.hosts 集群中節(jié)點(diǎn)的IP地址
discovery.zen.minimum_master_nodes 自動(dòng)發(fā)現(xiàn)master節(jié)點(diǎn)的最小數(shù)芝囤,如果這個(gè)集群中配置進(jìn)來的master節(jié)點(diǎn)少于這個(gè)數(shù)目,es的日志會(huì)一直報(bào)master節(jié)點(diǎn)數(shù)目不足辛萍,甚至?xí)霈F(xiàn)主備切換時(shí)誤認(rèn)為有兩個(gè)激活的master節(jié)點(diǎn)悯姊。最好為主節(jié)點(diǎn)總數(shù) / 2 + 1,默認(rèn)1

2贩毕、運(yùn)行

分別運(yùn)行兩臺(tái)服務(wù)器中的Elasticsearch悯许,這里不在介紹拉取鏡像

docker run -d --name es -p 9200:9200 -p 9300:9300 --restart always -v /data/es/data/:/usr/share/elasticsearch/data -v /data/es/log/:/usr/share/elasticsearch/logs -v /data/es/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:6.8.7

這里的命令比安裝單節(jié)點(diǎn)少了個(gè)環(huán)境變量-e "discovery.type=single-node ",運(yùn)行成功后通過head去測試下連接辉阶,如果都連接成功的話就算是成功啦先壕,如果失敗,就自己去看看哪里配置錯(cuò)了哦


本文到此就結(jié)束咯谆甜,有任何疑問歡迎在評論區(qū)發(fā)表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垃僚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子规辱,更是在濱河造成了極大的恐慌谆棺,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罕袋,死亡現(xiàn)場離奇詭異改淑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)炫贤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門溅固,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兰珍,你說我怎么就攤上這事侍郭。” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵亮元,是天一觀的道長猛计。 經(jīng)常有香客問我,道長爆捞,這世上最難降的妖魔是什么奉瘤? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮煮甥,結(jié)果婚禮上盗温,老公的妹妹穿的比我還像新娘。我一直安慰自己成肘,他們只是感情好卖局,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著双霍,像睡著了一般砚偶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洒闸,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天染坯,我揣著相機(jī)與錄音,去河邊找鬼丘逸。 笑死单鹿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸣个。 我是一名探鬼主播羞反,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼囤萤!你這毒婦竟也來了昼窗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤涛舍,失蹤者是張志新(化名)和其女友劉穎澄惊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體富雅,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掸驱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了没佑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毕贼。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛤奢,靈堂內(nèi)的尸體忽然破棺而出鬼癣,到底是詐尸還是另有隱情陶贼,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布待秃,位于F島的核電站拜秧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏章郁。R本人自食惡果不足惜枉氮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暖庄。 院中可真熱鬧聊替,春花似錦、人聲如沸培廓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽医舆。三九已至,卻和暖如春象缀,著一層夾襖步出監(jiān)牢的瞬間蔬将,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工央星, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留霞怀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓莉给,卻偏偏與公主長得像毙石,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子颓遏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容