1. 程式人生 > 其它 >Elasticsearch系列(1):安裝與介紹

Elasticsearch系列(1):安裝與介紹

簡介

Elasticsearch是一個基於Lucene構建的開源搜尋引擎,簡稱ES。它是使用Java語言開發的,並提供了簡單易用的RestFul API,是一種流行的企業級搜尋引擎。

Elasticsearch的術語

Elasticsearch與MySQL概念上的類比如下表:

MySQL Elasticsearch
Table Index(Type)
Row Document
Column Field
Schema Mapping

Index(索引):一個索引是擁有幾分相似特徵的文件的集合,類似與MySQL中的Table。

Type(型別):型別是索引中的一個邏輯上的分類或分割槽,Type的概念已經被逐漸弱化,在Elasticsearch 7.X中,Type的概念已經被刪除。

Document(文件):一個文件是一個可被索引的基礎資訊單元,類似表中的一條記錄。

Field(欄位):類似與表中的列。

Mapping(對映):類似於MySQL中表的schema。

Elasticsearch安裝

安裝

下載:

cd /opt/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz

解壓:

tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz 
建立使用者

Elasticsearch不允許使用root使用者啟動,所以需要建立使用者並將Elasticsearch目錄的擁有者設定為建立的新使用者:

useradd es
passwd es 
chown -R es:es /opt/elasticsearch-7.12.1
修改配置

1.修改conf/elasticsearch.yml,新增配置:

cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

cluster.name:叢集名稱,預設為elasticsearch。

node.name:節點名稱。

network.host:此處配置es服務可以被任何機器訪問。

http.port:HTTP埠。

cluster.initial_master_nodes:使用一組初始的符合主節點的節點引導叢集,當第一次啟動Elasticsearch叢集時,叢集引導步驟將確定在第一次選舉中計票的符合主資格的節點集。

2.修改/etc/security/limits.conf,新增配置:

es soft nofile 65536
es hard nofile 65536

3.修改/etc/security/limits.d/20-nproc.conf,新增配置:

es soft nofile 65536
es hard nofile 65536
* hard nproc 4096

4.修改/etc/sysctl.conf,新增配置:

vm.max_map_count=655360

5.退出重新登入新使用者。

啟動Elasticsearch

前臺啟動:

/opt/elasticsearch-7.12.1/bin/elasticsearch

後臺啟動:

/opt/elasticsearch-7.12.1/bin/elasticsearch -d

訪問localhost:9200,如果返回結果如下則表示啟動成功:

{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "K5zjHV0LTQ6fCB-f_klulw",
  "version" : {
    "number" : "7.12.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "3186837139b9c6b6d23c3200870651f10d3343b7",
    "build_date" : "2021-04-20T20:56:39.040728659Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch目錄介紹

bin:可執行指令碼目錄。

config:配置檔案目錄。

data:分配在節點上的每個索引/分片的資料檔案的位置。

logs:日誌檔案目錄。

plugins:外掛檔案目錄。

lib:類庫。

jdk:內建JDK目錄。如果配置了環境變數JAVA_HOME,則Elasticsearch啟動時會使用JAVA_HOME作為Java路徑,否則使用Elasticsearch根目錄下內建的JDK目錄作為Java路徑。

modules:模組目錄。