1. 程式人生 > >ElasticSearch(一)概念介紹及環境搭建

ElasticSearch(一)概念介紹及環境搭建

一、什麼是ElasticSearch:

  Elasticsearch (ES)是一個基於Lucene構建的開源、分散式、RESTful 介面全文搜尋引擎。Elasticsearch 還是一個分散式文件資料庫,其中每個欄位均是被索引的資料且可被搜尋,它能夠擴充套件至數以百計的伺服器儲存以及處理PB級的資料。它可以在很短的時間內在儲、搜尋和分析大量的資料。它通常作為具有複雜搜尋場景情況下的核心發動機。 Elasticsearch就是為高可用和可擴充套件而生的。可以通過購置效能更強的伺服器來完成。 官網:https://www.elastic.co/downloads/elasticsearch 中文社群https://es.xiaoleilu.com/

  ES的優勢:橫向可擴充套件性:只需要增加臺伺服器,做一點兒配置,啟動一下Elasticsearch就可以併入叢集。 分片機制提供更好的分佈性:同一個索引分成多個分片(sharding), 這點類似於HDFS的塊機制;分而治之的方式可提升處理效率。 高可用:提供複製( replica) 機制,一個分片可以設定多個複製,使得某臺伺服器在宕機的情況下,叢集仍舊可以照常執行,並會把伺服器宕機丟失的資料資訊複製恢復到其他可用節點上。

  ES應用場景:大型分散式日誌分析系統ELK elasticsearch(儲存日誌)+logstash(收集日誌)+kibana(展示資料) 大型電商商品搜尋系統、網站站內搜尋、網盤搜尋引擎等。

  ES儲存結構:Elasticsearch是檔案儲存,Elasticsearch是面向文件型資料庫,一條資料在這裡就是一個文件,用JSON作為文件序列化的格式,比如下面這條使用者資料:

  {

    "name" : "yushengjun",

    "sex" : 0,

     "age" : 25

  }

 

  ES與關係型資料庫的比較:

  關係資料庫     ⇒ 資料庫 (會員資料庫)⇒ 表 (使用者表) ⇒ 行                      ⇒ 列(Columns)

   Elasticsearch ⇒ 索引(Index)                   ⇒ 型別(type) ⇒ 文件(Docments) ⇒ 欄位(Fields)

 

二、ES環境搭建

  都是在Linux上操作

  1、Linux系統上必須安裝JDK8.0以上版本(ES是Java語言寫的,需要JDK支援)

   2、解壓ES到一個目錄,一般放在usr下

    解壓後目錄:

  3、修改配置檔案,進入config資料夾

    (1)、jvm.options檔案,裡面就有修改記憶體的(預設記憶體佔用是1G,ES很吃記憶體的)

    (2)、elasticsearch.yml檔案(叢集、埠號、IP地址)都是在這裡面修改的。

    先改這兩個,進行試驗,之後用到什麼改什麼

 

 

三、啟動ElasticSearch

  進入es的bin目錄,./elasticsearch進行啟動,但是會報錯誤,錯誤解決辦法如下:

  第一個錯誤,不能用root賬戶進行啟動:

 

  第二個錯誤,修改檔案的時候,進入root賬戶進行修改:

 

  第三個錯誤,需要在這個檔案(limits.conf)中加上4行程式碼(在root賬戶進行修改)

  vi /etc/security/limits.conf

  * soft nofile 65536

  * hard nofile 131072

  * soft nproc 2048

  * hard nproc 4096

 

  最後重新啟動伺服器(shutdown -r now),並在es賬戶中重新啟動es;

 

四、訪問ElasticSearch

  1、關閉防火牆:systemctl stop firewalld.service

  2、在瀏覽器中輸入在elasticsearch.yml中設定的IP地址,和9200埠號