各位小夥伴,又到了本期分享大數據技術的時間,本次給大夥帶來的是Elasticsearch這個技術,閒話很少聊,咱們開始進入正題。
1、什麼是elasticsearchhtml
Elasticsearch是一個基於Lucene的實時的分佈式搜索和分析 引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠, 快速,安裝使用方便。基於RESTful接口。html5
2、Elasticsearch與solr對比java
2.1.熱度node
從上圖能夠看出,在elasticserach出現後,它的搜索指數急劇上升,不久就超過了solr數據庫
2.2.性能對比
大型互聯網公司,實際生產環境測試,將搜索引擎從Solr轉到Elasticsearch之後的平均查詢速度有了50倍的提高。vim
2.3.優點
a)Elasticsearch是分佈式的。不須要其餘組件,分發是實時的,被叫作」Push replication」。
b)Elasticsearch 徹底支持 Apache Lucene 的接近實時的搜索。
處理多租戶(multitenancy)不須要特殊配置,而Solr則須要更多的高級設置。
c)Elasticsearch 採用 Gateway 的概念,使得備份更加簡單。
各節點組成對等的網絡結構,某些節點出現故障時會自動分配其餘節點代替其進行工做。網絡
3、Lucene與ES關係?數據結構
1)Lucene只是一個庫。想要使用它,你必須使用Java來做爲開發語言並將其直接集成到你的應用中,更糟糕的是,Lucene很是複雜,你須要深刻了解檢索的相關知識來理解它是如何工做的。curl
2)Elasticsearch也使用Java開發並使用Lucene做爲其核心來實現全部索引和搜索的功能,可是它的目的是經過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。elasticsearch
4、Elasticsearch與關係型數據庫對比
ElasticSearch與關係型數據庫的類似:
1.一個ES集羣能夠包含多個索引(數據庫),每一個索引又包含了不少類型(表),類型中包含了不少文檔(行),每一個文檔又包含了不少字段(列)。
2.傳統數據庫爲特定列增長一個索引,例如B-Tree索引來加速檢索。Elasticsearch和Lucene使用一種叫作倒排索引(inverted index)的數據結構來達到相同目的。
3.倒排索引源於實際應用中須要根據屬性的值來查找記錄。這種索引表中的每一項都包括一個屬性值和具備該屬性值的各記錄的地址。因爲不是由記錄來肯定屬性值,而是由屬性值來肯定記錄的位置,於是稱爲倒排索引(inverted index)。
5、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獲取資料支持。