Linux系統:Centos7下搭建ElasticSearch中間件,常用接口演示

本文源碼:GitHub·點這裏 || GitEE·點這裏

一、中間件簡介

1、基礎概念

ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並作爲Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。

2、分佈式數據庫

分佈式數據庫系統通常使用較小的計算機系統,每臺計算機可單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己局部的數據庫,位於不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分佈的大型數據庫。

3、核心角色

1)節點和集羣

cluster代表一個集羣,集羣中有多個節點,其中有一個爲主節點,這個主節點是可以通過選舉產生的,主從節點是對於集羣內部來說的。es的一個概念就是去中心化,字面上理解就是無中心節點,這是對於集羣外部來說的,因爲從外部來看es集羣,在邏輯上是個整體。單個 Elastic 實例稱爲一個節點(node)。一組節點構成一個集羣(cluster)。

2)Shards分片

代表索引分片,es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分佈到不同的節點上。構成分佈式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。

3)Document文檔

Index 裏面單條的記錄稱爲 Document(文檔)。許多條 Document 構成了一個 Index。Document 使用 JSON 格式表示。

4)Index索引

Elastic 會索引所有字段,查找數據的時候,直接查找該索引。每個 Index (即理解爲數據庫名稱)的名字必須是小寫。

5)Type類型

Document 可以根據Type進行虛擬的邏輯分組,用來過濾 Document,即理解爲數據庫表名稱。

二、中間件安裝

1、安裝環境和版本

Centos7
JDK1.8
elasticsearch-6.3.2

2、下載解壓

下載的路徑,當前目錄的文件夾下,也可以指定下載路徑。wget -P 目錄 網址。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip
[root@localhost roo]# mv elasticsearch-6.3.2.zip /usr/local/mysoft/
[root@localhost mysoft]# unzip elasticsearch-6.3.2.zip

3、啓動軟件

[root@localhost mysoft]# cd elasticsearch-6.3.2/
[root@localhost elasticsearch-6.3.2]# ./bin/elasticsearch

1)報錯一

org.elasticsearch.bootstrap.StartupException: 
java.lang.RuntimeException: can not run elasticsearch as root

新建用戶組和用戶

[root@localhost]# useradd esroot
[root@localhost]# passwd esroot
[root@localhost]# groupadd esgroup
[root@localhost]# usermod -g esgroup esroot

esroot用戶授權

chown esroot /usr/local/mysoft/elasticsearch-6.3.2 -R

切換到esroot用戶

[root@localhost mysoft]# su - esroot
[esroot@localhost ~]$ su #回到root用戶

2)報錯二

max file descriptors [4096] for elasticsearch process is too low, 
increase to at least [65536]

執行如下命名,該操作在Root權限下操作。

[root@localhost roo]# vim /etc/security/limits.conf 
添加內容
* soft nofile 65536
* hard nofile 65536

切回esroot用戶
再次啓動,沒有報錯信息。

4、打開命令行測試

curl localhost:9200

[roo@localhost ~]$ curl localhost:9200
{
  "name" : "YMS44oi",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "2ZXjBnkJSjieV_k1IWMzrQ",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

這樣elasticsearch-6.3.2環境搭建成功。
請求9200端口,Elastic 返回一個 JSON 對象,包含當前節點、集羣、版本等信息。
按下 Ctrl + C,Elastic 就會停止運行。

5、配置外部訪問

默認情況下,Elastic 只允許本機訪問,如果需要遠程訪問,可以修改 Elastic 安裝目錄的config/elasticsearch.yml文件,去掉network.host的註釋,將它的值改成0.0.0.0,然後重新啓動 Elastic。

[esroot@localhost config]$ cd /usr/local/mysoft/elasticsearch-6.3.2/config
[esroot@localhost config]$ vim elasticsearch.yml 
network.host: 0.0.0.0

6、安裝IK中文分詞器

切換到root用戶

[root@localhost elasticsearch-6.3.2]$ ./bin/elasticsearch-plugin 
install 
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip

三、入門操作

索引創建和刪除

1、創建索引

[esroot@localhost ~]$ curl -X PUT 'localhost:9200/esindex01'
# 返回數據
{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "esindex01"
}

服務器返回一個 JSON 對象,acknowledged:true字段表示操作成功。

2、刪除索引

[esroot@localhost ~]$ curl -X DELETE 'localhost:9200/esindex01'
{"acknowledged":true}

acknowledged:true字段表示操作成功。

四、源代碼地址

GitHub·地址
https://github.com/cicadasmile/linux-system-base
GitEE·地址
https://gitee.com/cicadasmile/linux-system-base

Linux系統:Centos7下搭建ElasticSearch中間件,常用接口演示

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