Elasticsearch5.5.1基本安裝及相關(guān)插件

?最近項目用到了es搜索引擎,行業(yè)對全文搜索引擎方面對es具有高度的評價,es基于目前最流行的開源Luence封裝的搜索服務(wù)器。具有分布式,響應(yīng)快速等優(yōu)點。

對es的基本了解可以參考

極客wiki ?http://wiki.jikexueyuan.com/project/elasticsearch-definitive-guide-cn/?

官網(wǎng) https://www.elastic.co/products/elasticsearch

es中幾個重要的概念_index,_type,_id,shards分片

聯(lián)想到關(guān)系數(shù)據(jù)庫中相關(guān)關(guān)系??梢宰鲆韵吕斫?/p>

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices? -> Types? -> Documents -> Fields

數(shù)據(jù)庫對應(yīng)es的索引index,數(shù)據(jù)庫中的表table對應(yīng)es的_type,數(shù)據(jù)表中的行數(shù)據(jù)對應(yīng)es中的document文檔,數(shù)據(jù)表中的列對應(yīng)es中的field。理解好了這幾個基本概念,那么繼續(xù),由于es是分布式的,默認(rèn)的接口有http通信的9200接口,以及為集群通信的9300端口。

準(zhǔn)備一臺linux服務(wù)器,寫文章時我的相關(guān)硬件配置如下

CentOS7,JRE8

相關(guān)軟件的百度網(wǎng)盤地址 http://pan.baidu.com/s/1cKsXDO

其中

elasticsearch-5.5.1.tar.gz是es的文件

elasticsearch-analysis-ik-5.5.0.zip是使用maven打包后的壓縮文件,只需解壓就可以使用

elasticsearch-head-master.zip是es的一個插件,5.x之后需要使用node.js和grunt獨立運行。

1安裝es及配置

由于es的安全策略需要使用非root的用戶,登陸centos后創(chuàng)建es組添加一個用戶es密碼為esearch

# groupadd es

#useradd es -g es -p esearch

#chown es:es -R /user/elasticsearch-5.5.1 ?//給文件夾賦予用戶組和用戶

如果遇到有權(quán)限相關(guān)的問題,使用chown <用戶名>? <文件/文件夾> 設(shè)置文件/文件夾的所屬用戶。例如以下的解壓后的es文件,需要使用chown -R es elasticsearch-5.5.1 來設(shè)置文件夾的歸屬

將elasticsearch-5.5.1.tar.gz上傳到centos的/opt目錄下

#tar -zxvf elasticsearch-5.5.1.tar.gz? //解壓縮文件獲得文件夾elasticsearch-5.5.1

#vi /opt/elasticsearch-5.5.1/config/elasticsearch.yml ? //編輯相關(guān)配置,需要如下的配置

network.host: es1.com ? ?//本來是綁定ip地址的,由于網(wǎng)絡(luò)的問題使用域名綁定,可在/etc/hosts中添加你的ip 域名映射。

path.data: /var/elasticsearch/data ? //設(shè)置存放數(shù)據(jù)的目錄

path.logs: /var/elasticsearch/logs ?//設(shè)置存放日志的目錄

discovery.zen.ping.unicast.hosts: ["es1.com"] ? //由于集群還未搭建。這里先放自己進(jìn)去.可不配置

discovery.zen.minimum_master_nodes: 1 //設(shè)置嘴下的主節(jié)點數(shù)為1 ,默認(rèn)3,這里可不配置

修改后,保存文件

到此,基本配置結(jié)束,不過別急,如果你開始啟動的話,肯定報錯。大概有如下,java分配的內(nèi)存不夠,max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

核心就這幾個錯誤

1,修改 vi /opt/elasticsearch-5.5.1/config/jvm.properties 文件,設(shè)置-Xms256 ?-Xmx256。由于默認(rèn)配置是2g配置,這個對于我使用虛擬機搭建的來說耗不起。。正式環(huán)境可以考慮不改。

2,修復(fù)262144問題

使用root賬戶執(zhí)行

#sysctl -w vm.max_map_count=262144

#sysctl -a|grep vm.max_map_count ?//可以查看修改的結(jié)果,如果要永久生效執(zhí)行以下

# cat /etc/sysctl.conf | grep -v "vm.max_map_count" > /tmp/system_sysctl.conf

# echo "vm.max_map_count=262144" >> /tmp/system_sysctl.conf

# mv /tmp/system_sysctl.conf /etc/sysctl.conf ? //提示是否覆蓋,輸入y

# cat /etc/sysctl.conf ?//查看更改是否有效,一般會出現(xiàn)以下,輸出

vm.max_map_count=262144

# sysctl -p ? //需要使用root用戶。用戶之間的切換使用su username

3,修復(fù)65535問題使用root用戶

# cp /etc/security/limits.conf /etc/security/limits.conf.bak

//注意一下的es hard nofile.es是指代的上面創(chuàng)建的es用戶名

# echo "es hard nofile 65536" >> /tmp/system_limits.conf

# echo "es soft nofile 65536" >> /tmp/system_limits.conf

# mv /tmp/system_limits.conf /etc/security/limits.conf

修復(fù)完成后,啟動es。(注意centos的防火墻對9200,9100,9300的限制)

#最后不知道為什么,

# /opt/elasticsearch-5.5.1/bin/ealsticsearch ? ?//需要切換到es用戶執(zhí)行命令,加上-d是后臺啟動。

此時可以看到相關(guān)的日志。如果沒保存的話,使用http:ip:9200 就會回調(diào)對應(yīng)的json數(shù)據(jù)。you know for search等信息。

2 插件的安裝

es的head插件適用于數(shù)據(jù)查詢與分析,當(dāng)然不適合做監(jiān)控。

在我的網(wǎng)盤中下載elasticsearch-head-master.zip文件

上傳到/opt目錄下并使用unzip elasticsearch-head-master.zip 解壓,切換到對于目錄下

#cd /opt/elasticsearch-head-master

由于head插件需要安裝node.js和grunt。最開始我是拒絕的,因為es以前的版本是直接可以放到es的plugins目錄下跟隨es節(jié)點一起啟動,之后就禁用了這種方式,目前以下的方案是使用grunt啟動這個插件。安裝好node.js環(huán)境后使用grunt server就能單獨的和es節(jié)點通信,獲取相關(guān)集群狀態(tài)及發(fā)送命令。

2.1 安裝node.js

網(wǎng)盤地址:http://pan.baidu.com/s/1pLPsmld ?這是6.11.2.tar.xz文件,需要2步

# xz -d *.tar.xz ?//能獲得tar文件,對tar文件再提取

#tar -xvf *.tar? //獲得node-v6.11.2-linux-x64文件夾,切換進(jìn)入

#bin/node -v ?//如果沒問題會出現(xiàn)v6.11.2

//將node的源文件路徑加入到環(huán)境中去,使任何位置都可以使用node命令

# ln -s /opt/node-v6.11.2-linux-x64/bin/node /usr/local/bin/node

# ln -s /opt/node-v6.11.2-linux-x64/bin/npm ? /usr/local/bin/npm

至此在/usr/local/bin下加了連個軟連接。接下來開始使用npm安裝grunt

由于國內(nèi)墻的問題,使用npm安裝軟件很慢,所以一般建議使用國內(nèi)的鏡像。

#npm config set registry http://registry.npm.taobao.org ? //設(shè)置淘寶源

2.2 安裝grunt

切換到/opt/elasticsearch-head-master執(zhí)行以下,可能需要耐心等待

# npm install grunt --save ?

安裝成功后看到node_modules相關(guān)文件

修改es的elasticsearch.yml,添加

http.cors.enabled: true

http.cors.allow-origin: "*"

配置,方便head插件能訪問到結(jié)點。

#node_modules/grunt/bin/grunt server ?//啟動插件

使用ip:9100可以看到想界面。點擊連接,就可以查看相關(guān)信息。


3. 安裝中文分詞器ik

在以上提供的網(wǎng)盤中下載elasticsearch-analysis-ik-5.5.0.zip ?這個壓縮文件已經(jīng)使用maven package了,只需解壓,并修改配置文件。切換到ed用戶到/opt/elasticsearch-5.5.1/plugins

#mkdir ik?

#cd ik

#unzip elasticsearch-analysis-ik-5.5.0.zip ? //將文件傳到ik下,并解壓

解壓后會有些jar包和一些配置文件,由于ik需要和es的版本對應(yīng),在github上下載的最新ik版本為5.5.0和本篇使用的5.5.1不匹配。在啟動es節(jié)點的時候會報錯,固以下手動修改了ik的版本號為5.5.1

編輯plugin-descriptor.properties文件,修改elasticsearch.version=5.5.1

最后啟動節(jié)點,會提示ik插件也加入到了es中。

最后,關(guān)于集群的搭建。和以上相似,只是額外多了對elasticsearch.yml中集群名字(集群中的節(jié)點需要一直)和節(jié)點名稱配置,配置discovery.zen.ping.unicast.hosts與discovery.zen.minimum_master_nodes。其余節(jié)點可以不配置head插件。


至此強大的Elasticsearch就搭建好了。接下來準(zhǔn)備好在API的海洋中翻滾吧。。.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容