ElasticSearch 5.4 安裝
1. 前期準備
- 環境準備
IP地址 | 操作系統 | 內存 |
192.168.1.10 | centos 7 | 16 |
192.168.1.11 | centos 7 | 16 |
192.168.1.12 | centos 7 | 16 |
192.168.1.13 | centos 7 | 16 |
- 安裝包下載
官方下載地址:https://www.elastic.co/downloads/elasticsearch。
- jdk版本需要 jdk 8
2.
首先解壓安裝包,然後進入解壓程序文件夾。
# 解壓安裝包
tar -xvf elasticsearch-5.4.0.tar;
# 進入解壓後的文件夾
cd elasticsearch-5.4.0
在elasticsearch的根目錄下啟動elasticsearch或者將elasticsearch做為環境變量添加到/etc/profile中(類似於JAVA_HOME的配置),如下是在elasticsearch的根目錄下啟動的命令:
./bin/elasticsearch
如果是以root用戶登錄並執行的上述命令,則會看到如下所示的錯誤提示
[[email protected] elasticsearch]# ./bin/elasticsearch [2017-06-26T18:31:30,940][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:127) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.4.0.jar:5.4.0] Caused by: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:204) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:360) ~[elasticsearch-5.4.0.jar:5.4.0] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123) ~[elasticsearch-5.4.0.jar:5.4.0] ... 6 more [[email protected] elasticsearch]#
錯誤信息很明確,不能以root賬號來啟動elasticsearch。那麽就需要以一個團隊獨有的賬號(不建議使用個人賬號,個人脫離團隊可能導致任務運行出錯)。 創建用戶和用戶組的腳本如下:
# 創建用戶 es-user
useradd es-user
# 創建用戶組 es-group groupadd es-group
# 添加用戶es-user 到 es-group組 usermod -G es-group es-user
使用新創建的賬號啟動es,可能會遇到如下幾個問題。
1. max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
解決方案: 使用管理員角色編輯/etc/security/limits.conf文件,增加如下四條即可。
* soft nofile 65536 * hard nofile 65536 * soft nproc 2048 * hard nproc 4096
2. max virtual memory areas vm.max_map_count[65530] is too low, increase to at least [262144]
解決方案: 使用管理員角色編輯/etc/sysctl.conf,增加如下命令即可。
set vm.max_map_count=262144
這樣就能正常的運行起單機版的elasticsearch,運行成功後,在本地的瀏覽器輸入http://localhost:9200 能夠看到es的基本信息。在其他服務器也可以通過http://ip:9200來訪問。
單機版的elasticsearch安裝是不是挺簡單的^-^。
3. ElasticSearch 集群安裝
集群的安裝其實和單機的安裝是類似的。主要是配置文件(./config/elasticsearch.yml) 的調整,ElasticSearch能夠根據配置信息自動發現集群的其他節點,並通過選舉的方式來推選主節點。
常用的配置信息:
- cluster.name : 集群的名稱,當包含多個節點時,同一個集群的節點上各個節點的cluster.name必須完全一樣,互聯的服務器就是通過該屬性來判斷是否屬於同一個集群。
- node.name : 當前節點的名稱,集群存在多個節點的時候,通過該屬性來區分各個節點。
- path.data : 該節點的數據存放位置,一般指定為服務器上的非系統磁盤,如果放到系統磁盤上,容易造成空間不足。
- path.logs :該節點的elasticSearch運行日誌的保存位置,同path.data,建議放到費系統磁盤。
- bootstrap.memory_lock:啟動的時候是否鎖定內存,避免系統內容交換到磁盤,如果內存交換到磁盤對性能影響巨大。
- network.host : 集群中該節點的網絡標識,必須和系統配置的網絡IP一致。否則找不到該IP。
- http.port :webapi 對應的端口號,默認為9200
- discovery.zen.ping.unicast.hosts: 用來指定集群的其他節點,不需要指定全部,僅指定部分集群節點即可,elasticsearch能夠自動發現全部節點。
- discovery.zen.minimum_master_nodes : 用來指定集群至少包含的節點數,建議為節點總數/2 + 1,也就是超過半數,這樣不會造成一個集群存在兩個主節點的情況。否則,當部分節點與其他節點網絡不通了,這部分節點會自動組成集群,選舉自己的主節點,這時網路恢復就會存在兩個主節點,無法工作了
配置上述配置信息後,將集群的各個節點服務啟動即可構成集群。單個節點的安裝見上述。
集群啟動後,通過http://ip:9200/_cat/nodes 能夠查看集群的節點信息,其中 標記為 * 的為主節點。如果主節點掛掉,集群會重新選舉產生新的主節點。
通過 http://ip:9200/_cat 可以查看集群的其他信息,通過指定_cat後的參數來展示不同的系統功能。
安裝就記錄到這,此篇博文供大家來參閱,也是個人學習的一個記錄。
ElasticSearch 5.4 安裝