學(xué)習(xí)筆記20170601">【PMP】學(xué)習(xí)筆記20170601
860
2025-04-02
elasticsearch的簡單入門:(一)ES簡介與安裝
像天貓、京東這樣的商城,用戶訪問商城的首頁,一般都會直接搜索來尋找自己想要購買的商品。而商品的數(shù)量非常多,而且分類繁雜。如果能正確的顯示出用戶想要的商品,并進(jìn)行合理的過濾,盡快促成交易,是搜索系統(tǒng)要研究的核心。面對這樣復(fù)雜的搜索業(yè)務(wù)和數(shù)據(jù)量,使用傳統(tǒng)數(shù)據(jù)庫搜索就顯得力不從心,一般我們都會使用全文檢索技術(shù),比如Solr,elasticsearch。今天我們的主角是Elasticsearch。
1、elasticsearch的介紹與安裝
1.1.elasticsearch的簡單介紹
Elastic官網(wǎng):https://www.elastic.co/cn/
Elastic有一條完整的產(chǎn)品線及解決方案:Elasticsearch、Kibana、Logstash等,前面說的三個就是大家常說的ELK技術(shù)棧。
Elasticsearch(官網(wǎng):https://www.elastic.co/cn/products/elasticsearch?)是Elastic Stack 的核心技術(shù)。詳細(xì)介紹參考官網(wǎng)
Elasticsearch具備以下特點:
分布式,無需人工搭建集群(solr就需要人為配置,使用Zookeeper作為注冊中心)
Restful風(fēng)格,一切API都遵循Rest原則,容易上手近實時搜索,數(shù)據(jù)更新在Elasticsearch中幾乎是完全同步的。
1.2.安裝和配置
為了模擬真實場景,我們將在linux下安裝Elasticsearch。 虛擬機(jī)(需要JDK1.8以上)我們用到VirtualBox,SSH工具用到Xshell連上Linux系統(tǒng),Xftp傳輸文件。如果內(nèi)存不夠用把不相干的東西停掉
1.2.1.新建一個用戶leyou(用戶名隨意)
出于安全考慮,elasticsearch默認(rèn)不允許以root賬號運行。
創(chuàng)建用戶:useradd leyou
設(shè)置密碼:passwd leyou
切換用戶:su - leyou
1.2.2.上傳安裝包,并解壓
我們將安裝包上傳到:/home/leyou目錄(目錄自己創(chuàng)建)
解壓縮:tar -zxvf elasticsearch-6.2.4.tar.gz
目錄重命名:mv elasticsearch-6.2.4/ elasticsearch
完成后,查看下目錄結(jié)構(gòu):
1.2.3.修改配置
進(jìn)入config目錄:
cd config
需要修改的配置文件有兩個:
Elasticsearch基于Lucene的,而Lucene底層是java實現(xiàn),因此我們需要配置jvm參數(shù)。
編輯jvm.options
vim jvm.options
修改默認(rèn)配置:-Xms1g? ? -Xmx1g為
-Xms512m
-Xmx512m
編輯vim elasticsearch.yml修改數(shù)據(jù)和日志目錄
path.data: /home/leyou/elasticsearch/data # 數(shù)據(jù)目錄位置
path.logs: /home/leyou/elasticsearch/logs # 日志目錄位置
我們把data和logs目錄修改指向了elasticsearch的安裝目錄。但是這兩個目錄并不存在,因此我們需要創(chuàng)建出來。
進(jìn)入elasticsearch的根目錄,然后創(chuàng)建:
mkdir data
mkdir logs
修改綁定的ip:默認(rèn)只允許本機(jī)訪問,修改為0.0.0.0后則可以遠(yuǎn)程訪問
network.host: 0.0.0.0 # 綁定到0.0.0.0,允許任何ip來訪問
目前我們是做的單機(jī)安裝,如果要做集群,只需要在這個配置文件中添加其它節(jié)點信息即可。
elasticsearch.yml的其它可配置信息:
1.3.運行
進(jìn)入elasticsearch/bin目錄,可以看到下面的執(zhí)行文件:
然后輸入命令:
./elasticsearch
發(fā)現(xiàn)報錯了,啟動失敗:
如果用centos6(其linux內(nèi)核版本為2.6 ),則會出現(xiàn)如下報錯,原因是Elasticsearch的插件要求至少3.5以上版本。
不過沒關(guān)系,我們禁用這個插件即可。修改elasticsearch.yml文件,在最下面添加如下配置:
bootstrap.system_call_filter: false
然后再重啟 。
1.3.2.錯誤2:文件權(quán)限不足
再次啟動,又出錯了
上面三條錯誤,我們逐一分析。
[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
我們用的是新用戶leyou,而不是root,所以文件權(quán)限不足。
首先用root用戶登錄,然后修改配置文件:
vim /etc/security/limits.conf
并添加下面的內(nèi)容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
1.3.3.錯誤3:線程數(shù)不夠
[2]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
這是線程數(shù)不夠,繼續(xù)修改配置:
vim /etc/security/limits.d/90-nproc.conf
將* soft nproc 1024改為
* soft nproc 4096
1.3.4.錯誤4:進(jìn)程虛擬內(nèi)存
[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
vm.max_map_count:限制一個進(jìn)程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的數(shù)量,繼續(xù)修改配置文件:
vim /etc/sysctl.conf
添加下面內(nèi)容
vm.max_map_count=655360
完成后執(zhí)行sysctl -p命令,載入sysctl配置文件;
sysctl -p
1.3.5.重啟終端窗口
所有錯誤修改完畢,一定要重啟你的 Xshell終端,否則配置無效。
1.3.6.啟動
再次啟動,終于成功了!
可以看到綁定了兩個端口:
9300:集群節(jié)點間通訊接口
9200:客戶端訪問接口
我們在瀏覽器中訪問:http://192.168.0.113:9200?(192.168.0.113對應(yīng)你虛擬機(jī)的IP,可以通過ifconfig或者ip addr命令查看)
1.4.安裝kibana
1.4.1.什么是Kibana?
Kibana是一個基于Node.js的Elasticsearch索引庫數(shù)據(jù)統(tǒng)計工具,可以利用Elasticsearch的聚合功能,生成各種圖表,如柱形圖,線狀圖,餅圖等。
而且還提供了操作Elasticsearch索引數(shù)據(jù)的控制臺,并且提供了一定的API提示,非常有利于我們學(xué)習(xí)Elasticsearch的語法。
1.4.2.安裝
因為Kibana依賴于node,由于虛擬機(jī)沒有安裝node,而window中安裝過。所以我們選擇在window下使用kibana。
版本與elasticsearch的版本保持一致
解壓到特定目錄即可使用。
1.4.3.配置運行
進(jìn)入安裝目錄下的config目錄,修改kibana.yml文件:
修改elasticsearch服務(wù)器的地址:
elasticsearch.url: "http://192.168.0.113:9200"
進(jìn)入安裝目錄下的bin目錄:
雙擊運行:
發(fā)現(xiàn)kibana的監(jiān)聽端口是5601
我們訪問:http://127.0.0.1:5601,點擊Dev Tools打開控制臺
在頁面右側(cè),我們就可以輸入請求,訪問Elasticsearch了。
1.5.安裝ik分詞器
Lucene的IK分詞器早在2012年已經(jīng)沒有維護(hù)了,現(xiàn)在我們要使用的是在其基礎(chǔ)上維護(hù)升級的版本,并且開發(fā)為ElasticSearch的集成插件了,與Elasticsearch一起維護(hù)升級,版本也保持一致
1.5.1.安裝
Xftp上傳下載好的zip包,并解壓到Elasticsearch目錄的plugins目錄中:
使用unzip命令解壓:
unzip elasticsearch-analysis-ik-6.2.4.zip
使用mv命令改名:
mv elasticsearch-analysis-ik-6.2.4 ik-analyzer
刪除安裝包:
rm -rf elasticsearch-analysis-ik-6.2.4.zip
然后重啟elasticsearch即可。
1.6.測試
大家先不管語法,我們先測試一波。在kibana控制臺輸入下面的請求:
運行得到右邊的結(jié)果。
1.7.API
Elasticsearch提供了Rest風(fēng)格的API,即http請求接口,而且也提供了各種語言的客戶端API
文檔地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
學(xué)習(xí)用的是6.2.4版本,發(fā)現(xiàn)當(dāng)前版本已經(jīng)到6.6了。
Elasticsearch 虛擬化
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。