ElasticSearch是一個基于Apache Lucene(TM)的開源搜尋引擎。無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜尋引擎庫。通過簡單的RESTful API來隐藏Lucene的複雜性,進而讓全文搜尋變得簡單。
近幾篇ElasticSearch系列:
1、阿裡雲伺服器Linux系統安裝配置ElasticSearch搜尋引擎
2、Linux系統中ElasticSearch搜尋引擎安裝配置Head插件
3、ElasticSearch搜尋引擎安裝配置中文分詞器IK插件
4、ElasticSearch搜尋引擎安裝配置拼音插件pinyin
5、ElasticSearch搜尋引擎在JavaWeb項目中的應用
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。
如有疏漏錯誤之處,還請不吝賜教!