ElasticSearch初探-安裝
寫在前面的話
經過一個半月的不懈努力, 小說專案已經完成了一大半, 前端介面以及api對接全部完成, 後臺系統完成一小部分功能。
記得當初做這個專案的初衷是因為感覺自己所學太雜, 而且自己對一些技術如Kafka, ES很感興趣,所以想通過這個專案對這些東西進行融合,加深對其印象
在專案中, 我採用ElasticSearch來處理專案中的小說搜尋
Elasticsearch 是什麼
-
Elasticsearch是一個基於Apache Lucene(TM)的實時分散式搜尋和分析引擎,但是如果要直接使用lucene,卻非常困難。 因為Lucene只是一個庫, 想要使用它,你必須使用Java來作為開發語言並將其直接整合到你的應用中,更糟糕的是,Lucene非常複雜,你需要深入瞭解檢索的相關知識來理解它是如何工作的。。。
-
Elasticsearch也使用Java開發並使用Lucene作為其核心來實現所有索引和搜尋的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜尋變得簡單
-
Elasticsearch可以很輕鬆的橫向擴充套件, 可支援PB級的結構和非結構資料處理
關於Elasticsearch的應用場景
- 海量資料的分析
- 站內搜尋引擎
- 資料倉庫
對ES(Elasticsearch)的瞭解
-
加深對ES的理解的最好方式就是執行它, 那麼我們先來安裝
-
安裝環境
CentOS 7
JDK 1.8 (必須)
ES-6.8.2 和JDK的版本是對應關係
- 下載
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.2.tar.gz
- 下載完成後, 解壓
tar -zxvf elasticsearch-6.8.2.tar.gz
- 建立使用者組, 授權
ES不能使用root使用者來啟動
groupadd elasticsearch
useradd -r -g elasticsearch elasticsearch
chown -Rf elasticsearch:elasticsearch elasticsearch-6.8.2
複製程式碼
- 啟動ES
./bin/elasticsearch
- ES預設只能通過本地來執行, 如果需要修改, 修改配置檔案 elasticsearch.yml
network.host: 0.0.0.0
- 如果想要在後臺啟動, 可以通過以下命令
nohup ./bin/elasticsearch &
./bin/elasticsearch -d
- 驗證是否啟動
ES預設監聽9200埠
curl 'http://localhost:9200/'
{
"name" : "7J76WwT","cluster_name" : "elasticsearch","cluster_uuid" : "Wsfbm6vLS2uOyoDqWVppdw","version" : {
"number" : "5.5.2","build_hash" : "b2f0c09","build_date" : "2017-08-14T12:33:14.154Z","build_snapshot" : false,"lucene_version" : "6.6.0"
},"tagline" : "You Know,for Search"
}
複製程式碼
能夠輸出類似的內容說明已經啟動成功
到此, 關於ES的簡介和單機版安裝就完成了
擴充套件
按照上述的安裝方式, 在遠端連線ES的時候會出現出現以下問題, 我們來解決下
當我們設定 network.host: 0.0.0.0
在啟動過程中會出現以下問題
max file descriptors [4096] for elasticsearch process is too low,increase to at least [65536]
這裡錯誤是每個程式最大同時開啟檔案數太小
修改/etc/security/limits.conf檔案,增加配置,需要重新進行登入才能生效
* soft nofile 65536
* hard nofile 65536
複製程式碼
可以通過以下命令來檢視
ulimit -Hn
ulimit -Sn
複製程式碼
max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]
修改/etc/sysctl.conf檔案,增加配置
vm.max_map_count=262144
sysctl -p 檢視是否生效
複製程式碼
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own ris
這個問題是由於centos的版本問題引起的,在elasticsearch配置中配置
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
複製程式碼
外掛head安裝
在ES中的配置允許跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
複製程式碼
下載head專案 推薦採用Git下載, 點選下載
這裡需要安裝Node,大家另行baidu查詢
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
//安裝依賴外掛
npm install
//執行
npm run start
複製程式碼
通過 http://localhost:9100/ 訪問