Elasticsearch簡介和安裝

各位小夥伴,又到了本期分享大數據技術的時間,本次給大夥帶來的是Elasticsearch這個技術,閒話不多聊,我們開始進入正題。
一、什麼是elasticsearch

Elasticsearch是一個基於Lucene的實時的分佈式搜索和分析 引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠, 快速,安裝使用方便。基於RESTful接口。

二、Elasticsearch與solr對比

2.1.熱度

圖片描述

從上圖可以看出,在elasticserach出現後,它的搜索指數急劇上升,不久就超過了solr

2.2.性能對比
大型互聯網公司,實際生產環境測試,將搜索引擎從Solr轉到Elasticsearch以後的平均查詢速度有了50倍的提升。

圖片描述
2.3.優勢
a)Elasticsearch是分佈式的。不需要其他組件,分發是實時的,被叫做”Push replication”。
b)Elasticsearch 完全支持 Apache Lucene 的接近實時的搜索。
處理多租戶(multitenancy)不需要特殊配置,而Solr則需要更多的高級設置。
c)Elasticsearch 採用 Gateway 的概念,使得備份更加簡單。
各節點組成對等的網絡結構,某些節點出現故障時會自動分配其他節點代替其進行工作。

三、Lucene與ES關係?

1)Lucene只是一個庫。想要使用它,你必須使用Java來作爲開發語言並將其直接集成到你的應用中,更糟糕的是,Lucene非常複雜,你需要深入瞭解檢索的相關知識來理解它是如何工作的。

2)Elasticsearch也使用Java開發並使用Lucene作爲其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。

四、Elasticsearch與關係型數據庫對比

ElasticSearch與關係型數據庫的相似:
圖片描述

1.一個ES集羣可以包含多個索引(數據庫),每個索引又包含了很多類型(表),類型中包含了很多文檔(行),每個文檔又包含了很多字段(列)。
2.傳統數據庫爲特定列增加一個索引,例如B-Tree索引來加速檢索。Elasticsearch和Lucene使用一種叫做倒排索引(inverted index)的數據結構來達到相同目的。
3.倒排索引源於實際應用中需要根據屬性的值來查找記錄。這種索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱爲倒排索引(inverted index)。

五、Elasticsearch部署與啓動

注:java版本要求:最低1.7 »
5.1.下載
地址:https://www.elastic.co/downlo...
這裏選擇elasticsearch-2.4.5.tar.gz

5.2.安裝
Es是一個分佈式的搜索技術,故安裝時既可以是單機版也可以是集羣,這裏介紹的是分佈式安裝。
首先選擇三臺虛擬機,且這三臺虛擬機都已經安裝好jdk7,它們的IP分別爲:192.168.78.204,192.168.78.205,172.168.78.206。

5.2.1 上傳並解壓
命令: tar -zxvf elasticsearch-2.4.5.tar.gz

5.2.2 配置
修改es_home/config/elasticsearch.yml (注意配置要頂格寫,冒號後面要加一個空格,最好用vim編輯器修改,容易發現錯誤)
圖片描述

以上爲一臺虛擬機的配置,另外兩臺也要配置,需要修改的是node.name和network.host,其他地方不需要修改.

5.2.3 啓動

elasticsearch啓動的時候,不能以root用戶啓動,否則會報錯。我們可以創建一個es用戶,來專門管理elasticsearch.

創建用戶:useradd es
修改密碼:passwd es
然後將elasticsearch的整個目錄所有者和所屬組都修改成es用戶。命令:chown -R es:es elasticsearch-2.4.5

圖片描述

修改權限後,切換成es用戶,然後分別啓動三臺虛擬機上的elasticsearch.
命令:es_home/bin/elasticsearch
後臺運行命令:es_home/bin/elasticsearch -d
我這裏直接啓動,如下圖:
圖片描述

當日志出現圖中的2步驟時,說明這臺虛擬機上的ES進程啓動成功,但是這時該節點還沒組建集羣,只有出現了3步驟,cluster.service日誌出來時,才說明集羣組建成功。

訪問任意一臺虛擬機的9200端口,查看單機情況。如圖:
圖片描述

訪問任意一臺虛擬機的ip:9200/_cluster/health?pretty 地址,查看集羣的狀態

圖片描述

Elasticsearch提供了rest接口,故可以用curl命令,發送http請求來對索引庫進行操作。創建一個叫myindex的索引庫
命令:curl -XPUT 192.168.78.204:9200/myindex?pretty

圖片描述

如上圖,返回true說明創建索引庫成功。

好了,本次的對elasticsearch的介紹就到這裏了
^_^,感興趣的童學可以繼續關注上海尚學堂大數據文章。也可以加維信 java8733獲取資料支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章