ElasticSearch(二)安裝和配置

作者:羅海鵬谒出,叩丁狼教育高級(jí)講師。原創(chuàng)文章沈自,轉(zhuǎn)載請(qǐng)注明出處酌儒。

安裝使用

? ? ? ?elasticsearch是支持Linux和window系統(tǒng)的,而我當(dāng)前的系統(tǒng)是Linux枯途,發(fā)行版為centos7忌怎,我們就在centos7下做elasticsearch的安裝和測試,并且后續(xù)的環(huán)境都是在centos7下學(xué)習(xí)酪夷,所以這里默認(rèn)大家對(duì)Linux有一定的了解榴啸,并且熟悉常用的命令,如果大家對(duì)Linux不了解的話晚岭,歡迎來到叩丁狼學(xué)習(xí)鸥印,或者關(guān)注我們的技術(shù)文章和公開視頻。
安裝步驟:
1、下載elasticsearch:
elasticsearch官網(wǎng)上最新的穩(wěn)定版本是6,2,4库说,該版本不支持jdk8以下的狂鞋,所以我們?cè)诋?dāng)前的centos7系統(tǒng)下安裝好jdk8
elasticsearch下載地址:http://www.elastic.co/downloads/elasticsearch
我們選擇下載的是tar包。包的全名為:elasticsearch-6.2.4.tar.gz

2璃弄、安裝elasticsearch
把elasticsearch-6.2.4.tar.gz上傳到/usr/local目錄下并執(zhí)行解壓命令:
$ tar -zxvf elasticsearch-6.2.4.tar.gz
為了方便后續(xù)的操作要销,我們把 elasticsearch-6.2.4改個(gè)名字
$ mv elasticsearch-6.2.4 elasticsearch

3构回、運(yùn)行elasticsearch
從5.0開始夏块,ElasticSearch 安全級(jí)別提高了,不允許采用root帳號(hào)啟動(dòng)纤掸,所以我們要添加一個(gè)用戶脐供。
創(chuàng)建用戶組:
$ groupadd es
創(chuàng)建用戶,-e代表把es用戶分配到es用戶組中借跪,-p代表給es用戶設(shè)置密碼為123456:
$ useradd es -g es -p 123456
修改權(quán)限政己,更改elasticsearch文件夾以及內(nèi)部文件的所屬用戶以及組為es,-R表示逐級(jí)(N層目錄)
$ chown -R es:es /usr/local/elasticsearch
切換為es用戶登錄
$ su es
進(jìn)入到elasticsearch安裝目錄的bin目錄下
$ cd /usr/local/elasticsearch/bin
執(zhí)行運(yùn)行操作掏愁,-d表示后臺(tái)運(yùn)行
$ ./elasticsearch -d
查看是否運(yùn)行成功:
$ curl http://localhost:9200
如果打印以下信息歇由,則代表elasticsearch運(yùn)行成功

{
  "name" : "p2gU_GO",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "DoHcTzHrSEqNIQVltUG2XA",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

? ? ? ?至此,我們就把elasticsearch安裝到我們主機(jī)上了果港,但是我們現(xiàn)在是在本機(jī)上訪問elasticsearch服務(wù):localhost:9200沦泌,那如果想要外部的主機(jī)訪問呢?比如我們當(dāng)前運(yùn)行這個(gè)elasticsearch服務(wù)的主機(jī)IP是192.168.85.131辛掠,然后我用192.168.85.1這臺(tái)主機(jī)去訪問192.168.85.131:9200谢谦,那是訪問不了的,原因是elasticsearch本身的安全機(jī)制和系統(tǒng)防火墻等因素限制萝衩。那實(shí)際上回挽,我們的elasticsearch服務(wù)肯定是要給外部主機(jī)訪問的,那該怎么做呢猩谊?接下來我們就來學(xué)學(xué)elasticsearch的配置千劈。

基礎(chǔ)配置

? ? ? ?elasticsearch的主配置文件在config/elasticsearch.yml中,該配置文件包含集群牌捷、節(jié)點(diǎn)队塘、網(wǎng)絡(luò)和數(shù)據(jù)存儲(chǔ)等等的重要配置。接下來我們來看看該配置文件中的一些基礎(chǔ)的配置屬性是代表什么意思宜鸯,更多的配置我們后續(xù)講到相關(guān)的內(nèi)容再詳細(xì)介紹憔古。

################################### 集群相關(guān)配置 ################################### 
# cluster.name可以確定你的集群名稱,當(dāng)你的elasticsearch集群在同一個(gè)網(wǎng)段中elasticsearch會(huì)自動(dòng)的找到具有相同cluster.name的elasticsearch服務(wù). 
# 所以當(dāng)同一個(gè)網(wǎng)段具有多個(gè)elasticsearch集群時(shí)cluster.name就成為同一個(gè)集群的標(biāo)識(shí).,可以手動(dòng)指定也可以自動(dòng)生成
# cluster.name: elasticsearch 

#################################### 節(jié)點(diǎn)相關(guān)配置 ##################################### 
# 節(jié)點(diǎn)名稱同理,可自動(dòng)生成也可手動(dòng)配置. 
# node.name: node-1

# 允許一個(gè)節(jié)點(diǎn)是否可以成為一個(gè)master節(jié)點(diǎn),es是默認(rèn)集群中的第一臺(tái)機(jī)器為master,如果這臺(tái)機(jī)器停止就會(huì)重新選舉master. 
# node.master: true 

# 允許該節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)(默認(rèn)開啟) 
# node.data: true 

# 默認(rèn)情況下淋袖,多個(gè)節(jié)點(diǎn)可以在同一個(gè)安裝路徑啟動(dòng)鸿市,如果你想讓你的es只啟動(dòng)一個(gè)節(jié)點(diǎn),可以進(jìn)行如下設(shè)置
# node.max_local_storage_nodes: 1 

#################################### 索引相關(guān)配置 #################################### 
# 設(shè)置索引的分片數(shù),默認(rèn)為5 
#index.number_of_shards: 5 

# 設(shè)置索引的副本數(shù),默認(rèn)為1: 
#index.number_of_replicas: 1 

# 配置文件中提到的最佳實(shí)踐是,如果服務(wù)器夠多,可以將分片提高,盡量將數(shù)據(jù)平均分布到大集群中去
# 同時(shí),如果增加副本數(shù)量可以有效的提高搜索性能 
# 需要注意的是,"number_of_shards" 是索引創(chuàng)建后一次生成的,后續(xù)不可更改設(shè)置 
# "number_of_replicas" 是可以通過API去實(shí)時(shí)修改設(shè)置的 

#################################### 路徑相關(guān)配置 #################################### 
# 配置文件存儲(chǔ)位置 
# path.conf: /path/to/config 

# 數(shù)據(jù)存儲(chǔ)位置(單個(gè)目錄設(shè)置) 
# path.data: /path/to/data 
# 多個(gè)數(shù)據(jù)存儲(chǔ)位置,有利于性能提升 
# path.data: /path/to/data1,/path/to/data2 

# 臨時(shí)文件的路徑 
# path.work: /path/to/work 

# 日志文件的路徑 
# path.logs: /path/to/logs 

# 插件安裝路徑 
# path.plugins: /path/to/plugins 


################################### 內(nèi)存相關(guān)配置 #################################### 
# 當(dāng)JVM開始寫入交換空間時(shí)(swapping)ElasticSearch性能會(huì)低下,你應(yīng)該保證它不會(huì)寫入交換空間 
# 設(shè)置這個(gè)屬性為true來鎖定內(nèi)存,同時(shí)也要允許elasticsearch的進(jìn)程可以鎖住內(nèi)存,linux下可以通過 `ulimit -l unlimited` 命令 
# bootstrap.mlockall: true 
# 確保 ES_MIN_MEM 和 ES_MAX_MEM 環(huán)境變量設(shè)置為相同的值,以及機(jī)器有足夠的內(nèi)存分配給Elasticsearch 
# 注意:內(nèi)存也不是越大越好,一般64位機(jī)器,最大分配內(nèi)存別才超過32G 

############################## 網(wǎng)絡(luò)相關(guān)配置 ############################### 
# 設(shè)置綁定的ip地址,可以是ipv4或ipv6的,默認(rèn)綁定本機(jī)ip
# network.bind_host: 192.168.0.1  

# 設(shè)置其它節(jié)點(diǎn)和該節(jié)點(diǎn)交互的ip地址,如果不設(shè)置它會(huì)自動(dòng)設(shè)置,值必須是個(gè)真實(shí)的ip地址 
# network.publish_host: 192.168.0.1 

# 同時(shí)設(shè)置bind_host和publish_host上面兩個(gè)參數(shù) 
# network.host: 192.168.0.1    #綁定監(jiān)聽IP

# 設(shè)置節(jié)點(diǎn)間交互的tcp端口,默認(rèn)是9300 
# transport.tcp.port: 9300 

# 設(shè)置是否壓縮tcp傳輸時(shí)的數(shù)據(jù)焰情,默認(rèn)為false,不壓縮
# transport.tcp.compress: true 

# 設(shè)置對(duì)外服務(wù)的http端口,默認(rèn)為9200 
# http.port: 9200 

# 設(shè)置請(qǐng)求內(nèi)容的最大容量,默認(rèn)100mb 
# http.max_content_length: 100mb 

# 使用http協(xié)議對(duì)外提供服務(wù),默認(rèn)為true,開啟 
# http.enabled: false 

? ? ? ?以上就是elasticsearch的基礎(chǔ)配置陌凳,由于elasticsearch每個(gè)版本的config/elasticsearch.ym文件內(nèi)容都不同,所以可能我以上寫的這些配置在大家那里看到又是不一樣的内舟。如果某個(gè)屬性在某個(gè)elasticsearch的版本中不存在合敦,那么直接添加這個(gè)屬性上去測試一下效果,他們的屬性大多數(shù)都是可以通用的验游。

取消主機(jī)限制

? ? ? ?接下來我們具體來配置一下充岛,讓elasticsearch服務(wù)能夠給外部IP訪問:
? ? ? ?首先我們通過剛剛的基礎(chǔ)配置發(fā)現(xiàn),網(wǎng)絡(luò)相關(guān)配置中有3個(gè)配置項(xiàng)是跟IP有關(guān)的:network.bind_host耕蝉、network.publish_host和network.host付鹿,他們的用法分別是:
network.bind_host:
? ? ? ?在默認(rèn)情況下elasticsearch服務(wù)只能本機(jī)訪問砰碴,如果外部主機(jī)需要訪問該elasticsearch服務(wù)迷守,就需要把外部的這臺(tái)主機(jī)的IP配置到該屬性中暖呕。那如果希望elasticsearch服務(wù)不限制所有主機(jī)的訪問,那么該屬性可以設(shè)置為0.0.0.0场躯。

network.publish_host:
? ? ? ?在默認(rèn)情況下elasticsearch的節(jié)點(diǎn)不能跨主機(jī)交互谈为,如果需要,則在該屬性配置elasticsearch節(jié)點(diǎn)服務(wù)所在的IP踢关。那如果希望elasticsearch服務(wù)不限制所有主機(jī)的節(jié)點(diǎn)交互伞鲫,那么該屬性可以配置為0.0.0.0。

network.host:
? ? ? ?同時(shí)設(shè)置bind_host和publish_host兩個(gè)參數(shù)耘成,那我們只需要把該屬性設(shè)置為0.0.0.0榔昔,那么就不限制主機(jī)的訪問和節(jié)點(diǎn)的交互

那么我們就來修改elasticsearch的配置文件:
$ vi config/elasticsearch.yml
找到network.host這行配置,把注釋解開瘪菌,值設(shè)置為0.0.0.0
$ network.host: 0.0.0.0
退出并保存elasticsearch.yml文件撒会,然后重啟elasticsearch服務(wù)
關(guān)閉elasticsearch服務(wù):
使用強(qiáng)制殺進(jìn)程的方式關(guān)閉elasticsearch
啟動(dòng)elasticsearch服務(wù):
$ ./bin/elasticsearch #注意不要加上-d參數(shù),因?yàn)榻酉聛砜赡軙?huì)報(bào)錯(cuò)师妙,在當(dāng)前控制臺(tái)上查看錯(cuò)誤信息比較方便
如果啟動(dòng)出現(xiàn)以下錯(cuò)誤:

ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

則執(zhí)行以下操作:
切換到root用戶
$ su root
修改配置sysctl.conf:
$ vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
退出并保存诵肛,然后執(zhí)行命令:
$ sysctl -p
最后,重新啟動(dòng)elasticsearch默穴,即可啟動(dòng)成功怔檩。

? ? ? ?至此,我們已經(jīng)把elasticsearch的服務(wù)取消的主機(jī)訪問的限制了蓄诽,但是我們還是不能通過外部的主機(jī)訪問elasticsearch服務(wù)薛训,因?yàn)槲覀兿到y(tǒng)的防火墻是開啟的,我們需要把elasticsearch服務(wù)的網(wǎng)絡(luò)端口放開仑氛,這樣才能讓外界訪問乙埃。我們通過地址訪問elasticsearch服務(wù):http://IP:9200可以知道它的http網(wǎng)絡(luò)端口為9200闸英,并且我們剛剛學(xué)習(xí)的配置我們發(fā)現(xiàn),網(wǎng)絡(luò)相關(guān)配置中有個(gè)http.port屬性介袜,該屬性是配置elasticsearch的http端口的甫何,默認(rèn)端口為9200,所以我們需要把9200端口放開:
$ firewall-cmd --zone=public --add-port=9200/tcp --permanent #--permanent永久生效遇伞,沒有此參數(shù)重啟后失效
重新加載防火墻:
$ firewall-cmd --reload
? ? ? ?那么這些準(zhǔn)備工作已經(jīng)完成了辙喂,接下來的章節(jié)我們就要來具體的進(jìn)入Elasticsearch的使用了。

WechatIMG9.jpeg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸠珠,一起剝皮案震驚了整個(gè)濱河市巍耗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌跳芳,老刑警劉巖芍锦,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竹勉,死亡現(xiàn)場離奇詭異飞盆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)次乓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門吓歇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人票腰,你說我怎么就攤上這事城看。” “怎么了杏慰?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵测柠,是天一觀的道長。 經(jīng)常有香客問我缘滥,道長轰胁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任朝扼,我火速辦了婚禮赃阀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擎颖。我一直安慰自己榛斯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布搂捧。 她就那樣靜靜地躺著驮俗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪允跑。 梳的紋絲不亂的頭發(fā)上王凑,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天提佣,我揣著相機(jī)與錄音,去河邊找鬼荤崇。 笑死拌屏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的术荤。 我是一名探鬼主播倚喂,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼瓣戚!你這毒婦竟也來了端圈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤子库,失蹤者是張志新(化名)和其女友劉穎舱权,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仑嗅,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宴倍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仓技。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸵贬。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖脖捻,靈堂內(nèi)的尸體忽然破棺而出阔逼,到底是詐尸還是另有隱情,我是刑警寧澤地沮,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布嗜浮,位于F島的核電站,受9級(jí)特大地震影響摩疑,放射性物質(zhì)發(fā)生泄漏危融。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一未荒、第九天 我趴在偏房一處隱蔽的房頂上張望专挪。 院中可真熱鬧,春花似錦片排、人聲如沸寨腔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫卢。三九已至,卻和暖如春冶共,著一層夾襖步出監(jiān)牢的瞬間乾蛤,已是汗流浹背每界。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留家卖,地道東北人眨层。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像上荡,于是被迫代替她去往敵國和親趴樱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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