1. 程式人生 > >阿裏雲服務器Linux系統安裝配置ElasticSearch搜索引擎

阿裏雲服務器Linux系統安裝配置ElasticSearch搜索引擎

headers virtual ctrl+ img pass 阿裏雲服務器 div 一個 插件

ElasticSearch是一個基於Apache Lucene(TM)的開源搜索引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。

不過ElasticSearch不僅僅是Lucene和全文搜索,我們還能這樣去描述它:

  a:分布式的實時文件存儲,每個字段都被索引並可被搜索

  b:分布式的實時分析搜索引擎

  c:可以擴展到上百臺服務器,處理PB級結構化或非結構化數據

一、下載與解壓

  1、ElasticSearch是需要Java支持,所以安裝配置前需要Java環境。這裏我安裝的JDK是1.8版本,ElasticSearch是6.3.2版本。選擇TAR格式(如下圖所示),下載完成之後還是通過之前兩篇提到的MobaXterm軟件上傳至home目錄下,再解壓至/usr/java/elasticsearch/目錄(如下圖所示)。下載地址

技術分享圖片 技術分享圖片

命令如下圖所示:

技術分享圖片

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# tar -xzf /home/elasticsearch-6.3.2.tar.gz -C /usr/java/elasticsearch/

  2、官方文檔上說ElasticSearch不適合在root管理員帳號下運行,所以要先建立一個賬號專門運行ElasticSearch。以下是創建esUser組和其下用戶esUser。

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# groupadd esUser
1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# useradd -g esUser esUser
1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# passwd esUser

  3、修改limits.conf與sysctl.conf文件的系統參數,如下圖所示。

技術分享圖片 技術分享圖片

  a、編輯 limits.conf 文件並添加內容:

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /etc/security/limits.conf
1 root soft nofile 65535
2 root hard nofile 65535
3 
4 #esUser
5 esUser  soft nofile 65536
6 esUser  hard nofile 65536
7 8 * soft nofile 65535 9 * hard nofile 65535

  b、編輯 sysctl.conf 文件並添加內容,因為max virtual memory areas vm.max_map_count increase to at least [262144]

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /etc/sysctl.conf
1 vm.max_map_count=262144

  c、最後執行如下命令:

1 sysctl -p

二、安裝與配置

  a、解壓完成後,進入config目錄,編輯elasticsearch.yml文件。該文件配置需要註意!!!將下述代碼中標紅“你的IP地址”更改為 自己的IP地址,添加配置時需註意配置文件":"後要有空格。如下所示。

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /usr/java/elasticsearch/elasticsearch-6.3.2/config/elasticsearch.yml

 1 #這是集群名字,起名為elasticsearch
 2 #es啟動後會將具有相同集群名字的節點放到一個集群下。
 3 cluster.name:  elasticsearch
 4 #
 5 #節點名字。
 6 node.name: "node1"
 7 #
 8 # 數據存儲位置,配置之後該目錄會自動生成
 9 path.data: /usr/java/elasticsearch/elasticsearch-6.3.2/data
10 #
11 # 日誌文件的路徑,配置之後該目錄會自動生成
12 path.logs: /usr/java/elasticsearch/elasticsearch-6.3.2/logs
13 #
14 #
15 #設置綁定的ip地址,可以是ipv4或ipv6的,默認為0.0.0.0
16 #network.bind_host: xxxxxx
17 #
18 #設置其它節點和該節點交互的ip地址,如果不設置它會自動設置,值必須是個真實的ip地址
19 #network.publish_host: xxxxxx
20 #
21 #同時設置bind_host和publish_host上面兩個參數,該地址為默認地址
22 network.host: 0.0.0.0
23 #
24 #
25 # 設置節點間交互的tcp端口,默認是9300
26 #transport.tcp.port: 9300
27 #
28 # 設置是否壓縮tcp傳輸時的數據,默認為false,不壓縮
29 transport.tcp.compress: true
30 #
31 # 設置對外服務的http端口,默認為9200
32 #http.port: 9200
33 #
34 # 使用http協議對外提供服務,默認為true,開啟
35 #http.enabled: false
36 #
37 #discovery.zen.ping.unicast.hosts:["節點1的 ip","節點2 的ip","節點3的ip"]
38 #這是一個集群中的主節點的初始列表,當節點(主節點或者數據節點)啟動時使用這個列表進行探測
39 discovery.zen.ping.unicast.hosts: ["你的IP地址"]
40 #
41 #指定集群中的節點中有幾個有master資格的節點。
42 #對於大集群可以寫(2-4)。
43 discovery.zen.minimum_master_nodes: 1
44 #解決head的集群健康值問題,後續會安裝head插件
45 http.cors.enabled: true
46 http.cors.allow-origin: "*"
47 http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

  b、若服務器運行內存不大,也可能還有一個錯誤是關於Jvm內存分配的問題,需要修改Jvm配置。如下所示。

1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /usr/java/elasticsearch/elasticsearch-6.3.2/config/jvm.options

技術分享圖片

三、啟動與測試

上述安裝配置均是在root用戶下進行的,下面將切換至esUser用戶,來啟動ElasticSearch,即運行bin目錄下的elasticsearch文件,若看到[node1] started表示啟動成功。

技術分享圖片

這時若是Ctrl+C退出後,則ElasticSearch將終止正在運行的程序。下面是在後臺啟動ElasticSearch,進程會一直在運行,除非特殊情況,如內存不夠會自動結束運行。

技術分享圖片

下面是查看ElasticSearch進程情況,可以執行命令: kill -9 進程ID 來結束程序。

技術分享圖片

下面是測試是否有如下提示:

1 [esUser@izwz9eu3mkqq1njlkrfhc8z root]$ curl http://localhost:9200/?pretty

技術分享圖片

或在瀏覽器中查看,輸入:服務器IP地址:9200

技術分享圖片

本文部分學習參考了:https://www.cnblogs.com/cheyunhua/p/8087658.html#undefined

至此是關於介紹在Linux系統中安裝配置ElasticSearch搜索引擎,後續會介紹ElasticSearch-Head、ElasticSearch中文分詞器IK插件、ElasticSearch拼音插件pinyin。

如有疏漏錯誤之處,還請不吝賜教!

阿裏雲服務器Linux系統安裝配置ElasticSearch搜索引擎