近幾篇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。
如有疏漏錯誤之處,還請不吝賜教!