加關注,私信“專案課程”,即可獲得高併發分散式電商專案以及適合初學者的網盤專案課程影片以及原始碼哦[狗頭]
前言
Elasticsearch作為主流的搜尋引擎,在分散式系統中佔據著不可或缺的地位,文章重點介紹它的安裝和使用。
Elasticsearch介紹
Elasticsearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。
Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。
Elasticsearch用於雲計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。
官網:https://www。elastic。co/cn/elasticsearch/
Elasticsearch概念
Elasticsearch 可以理解成一種資料庫,類似MySQL,也可以對資料進行增刪改查,它優勢是搜尋速度快,如果表中有上億級別的資料,使用ES檢索資料要遠遠快於傳統的關係型資料庫。
把ES中的概念和MySQL對比,就比較好理解了。
Elasticsearch安裝
Elasticsearch不允許使用root使用者,所以需要新建使用者新建使用者
useradd xray
配置密碼
passwd xray
切換使用者
su xray
上傳和解壓
tar -zxvf elasticsearch-6。2。4。tar。gz
重新命名目錄
mv elasticsearch-6。2。4/ elasticsearch
進入目錄
cd elasticsearch
新建目錄
mkdir datamkdir logs
修改配置
cd configvi elasticsearch。yml
新增內容path。data: /usr/local/elasticsearch/data # 資料目錄位置path。logs: /usr/local/elasticsearch/logs # 日誌目錄位置修改繫結的ipnetwork。host: 0。0。0。0 # 繫結到0。0。0。0,允許任何ip來訪問
其他可配置資訊:
執行
。/bin/elasticsearch
可能的錯誤:
錯誤1:核心過低
在elasticsearch。yml下面新增配置:
bootstrap。system_call_filter: false
禁用這個外掛,然後重啟
錯誤2:檔案許可權不足
[1]max file descriptors…是檔案許可權不足
用root登入,然後修改配置檔案:
vim /etc/security/limits。conf
新增下面的內容:
* soft nofile 65536* hard nofile 131072* soft nproc 4096* hard nproc 4096
錯誤3:執行緒數不足[2]: max number of threads … 是執行緒數不足修改配置:
vim /etc/security/limits。d/20-nproc。conf
修改下面的內容:
* soft nproc 1024改為:* soft nproc 4096
錯誤4:程序虛擬記憶體不足
[3]: max virtual memory… 程序虛擬記憶體不足
修改配置檔案:
vim /etc/sysctl。conf
新增下面內容:
vm。max_map_count=655360
然後執行命令:
sysctl -p
再次啟動ES
兩個埠:9300:叢集節點間通訊介面9200:客戶端訪問介面
我們在瀏覽器中訪問
Kibana安裝
Kibana是ES的客戶端工具需要先安裝nodejs
tar -vxf node-v12。18。2-linux-x64。tar。xzmv node-v12。18。2-linux-x64 nodejsln -s /usr/local/nodejs/bin/node /usr/local/binln -s /usr/local/nodejs/bin/npm /usr/local/binnode -v
解壓kibana
tar -vxf kibana-6。2。4-linux-x86_64。tar。gzmv kibana-6。2。4-linux-x86_64 kibana
修改 config/kibana。yml 新增
server。host: “0。0。0。0”elasticsearch。url: “http://機器IP:9200”
啟動
。/bin/kibana
kibana的埠是5601,在瀏覽器開啟後,可以測試查詢
安裝分詞器
分詞器能把一個字串拆分成多個單詞,搜尋時再按每個單詞分別索引,這樣能大大提高搜尋效率。如:“我是中國人”拆分為“我”、“是”、“中國”、“國人”、“中國人”。
安裝步驟:下載分詞器檔案,版本和ES版本一致
如: elasticsearch-analysis-ik-6。2。4。zip
上傳到elasticsearch/plugins目錄中解壓
unzip elasticsearch-analysis-ik-6。2。4。zip
使用kibana測試
Elasticsearch基本操作
建立索引
PUT /test
建立型別並進行對映
PUT /test/_mapping/student{ “properties”: { “name” :{ “type”: “text”, “analyzer”: “ik_max_word” }, “gender”:{ “type”: “keyword” }, “age”:{ “type”: “integer” } }}
新增資料
POST /test/student{ “name”:“張三三”, “gender”:“男”, “age”:“20”}
修改
PUT /test/student/B6eRR3cBeDxKxs3sWYow{ “name”:“張三”, “age”:“33”, “gender”:“F”}
刪除
GET /test/student/_search/B6eRR3cBeDxKxs3sWYow-
查詢
GET /test/student/_search