目錄
ES鏡像
https://mirrors.huaweicloud.com/elasticsearch/6.8.5/
https://mirrors.huaweicloud.com/kibana/6.8.5/
- ES下載中心
https://elasticsearch.cn/download/
找到對應版本名字,拼域名下載
wget https://elasticsearch.thans.cn/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
JDK鏡像
清華大學開源鏡像庫
https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/
華為
https://mirrors.huaweicloud.com/java/jdk/
安裝
安裝環境:Vmware Centos7.4 jdk8 elasticsearch 5.1.1
1. 安裝JDK
export JAVA_HOME=/opt/software/jdk1.8.0_201 #jdk安裝目錄
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
2. 解壓安裝ES
tar zxf elasticsearch-5.1.1.tar.gz -C /opt/software/
3. 配置
3.1 修改配置文件
vim /opt/software/elasticsearch-5.1.1/config/elasticsearch.yml
# 方便管理,自定義了數據和日志目錄
path.data: /opt/software/elasticsearch-5.1.1/data
path.data: /opt/software/elasticsearch-5.1.1/data
# 0.0.0.0為所有人可訪問,默認只能本機器訪問
network.host: 0.0.0.0
3.2 修改jvm參數,調小java內存,安裝的環境是虛擬機,提供不了內存
vim /opt/software/elasticsearch-5.1.1/config/jvm.options
-Xms256m
-Xmx256m
4. 新建用戶
4.1 新建ES用戶(5.0以后,只能用非root用戶啟動)
groupadd es
useradd es -g es
4.2 文件改用戶
[root@localhost ~]# chown -R es:es /opt/software/elasticsearch-5.1.1
[root@localhost ~]# ll /opt/software/
total 0
drwxr-xr-x. 9 es es 155 May 1 06:06 elasticsearch-5.1.1
drwxr-xr-x. 7 10 143 245 Dec 16 2018 jdk1.8.0_201
5. 啟動
切換到es用戶,啟動
[root@localhost ~]# cd /opt/software/elasticsearch-5.1.1/
[root@localhost elasticsearch-5.1.1]# su es
[es@localhost elasticsearch-5.1.1]$ bin/elasticsearch
成功后可以查看
curl localhost:9200
{
"name": "node1",
"cluster_name": "baby-application",
"cluster_uuid": "UH40FdtFSr-DDfRv4AEZeA",
"version": {
"number": "5.1.1",
"build_hash": "5395e21",
"build_date": "2016-12-06T12:36:15.409Z",
"build_snapshot": false,
"lucene_version": "6.3.0"
},
"tagline": "You Know, for Search"
}
不出意外會報錯。。。下面是踩坑
踩坑
1. root啟用報錯
[root@localhost elasticsearch-5.1.1]# bin/elasticsearch
[2020-05-01T06:30:12,140][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node1] 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:125) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.1.1.jar:5.1.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
... 6 more
[root@localhost elasticsearch-5.1.1]#
提示很明顯,要用非root用戶啟動
2. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
2.1 打開文件數有限制,報錯如下
[2020-05-01T06:34:04,496][INFO ][o.e.n.Node ] [node1] starting ...
[2020-05-01T06:34:04,608][INFO ][o.e.t.TransportService ] [node1] publish_address {192.168.1.200:9300}, bound_addresses {[::]:9300}
[2020-05-01T06:34:04,613][INFO ][o.e.b.BootstrapCheck ] [node1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2020-05-01T06:34:04,629][INFO ][o.e.n.Node ] [node1] stopping ...
[2020-05-01T06:34:04,670][INFO ][o.e.n.Node ] [node1] stopped
[2020-05-01T06:34:04,670][INFO ][o.e.n.Node ] [node1] closing ...
[2020-05-01T06:34:04,687][INFO ][o.e.n.Node ] [node1] closed
2.2 修改配置,在文件末尾,End of File之前,End of File之前, End of File 之前加入配置信息,給啟動es用戶,調大數量。
[root@localhost elasticsearch-5.1.1]# vim /etc/security/limits.conf
#@student - maxlogins 4
es soft nofile 655350
es hard nofile 655350
# End of file
3. max virtual memory areas vm.max_map_count [2048] is too low, increase to at least [262144]
[es@localhost elasticsearch-5.1.1]$ bin/elasticsearch
[2020-05-01T06:38:18,677][INFO ][o.e.n.Node ] [node1] initializing ...
[2020-05-01T06:38:18,734][INFO ][o.e.e.NodeEnvironment ] [node1] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [24.5gb], net total_space [26.9gb], spins? [unknown], types [rootfs]
[2020-05-01T06:38:18,734][INFO ][o.e.e.NodeEnvironment ] [node1] heap size [247.5mb], compressed ordinary object pointers [true]
[2020-05-01T06:38:18,735][INFO ][o.e.n.Node ] [node1] node name [node1], node ID [mY1O__gESOiyAFBcJOh9eA]
[2020-05-01T06:38:18,737][INFO ][o.e.n.Node ] [node1] version[5.1.1], pid[2150], build[5395e21/2016-12-06T12:36:15.409Z], OS[Linux/3.10.0-693.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_201/25.201-b09]
[2020-05-01T06:38:19,329][INFO ][o.e.p.PluginsService ] [node1] loaded module [aggs-matrix-stats]
[2020-05-01T06:38:19,329][INFO ][o.e.p.PluginsService ] [node1] loaded module [ingest-common]
[2020-05-01T06:38:19,330][INFO ][o.e.p.PluginsService ] [node1] loaded module [lang-expression]
[2020-05-01T06:38:19,330][INFO ][o.e.p.PluginsService ] [node1] loaded module [lang-groovy]
[2020-05-01T06:38:19,330][INFO ][o.e.p.PluginsService ] [node1] loaded module [lang-mustache]
[2020-05-01T06:38:19,330][INFO ][o.e.p.PluginsService ] [node1] loaded module [lang-painless]
[2020-05-01T06:38:19,331][INFO ][o.e.p.PluginsService ] [node1] loaded module [percolator]
[2020-05-01T06:38:19,331][INFO ][o.e.p.PluginsService ] [node1] loaded module [reindex]
[2020-05-01T06:38:19,332][INFO ][o.e.p.PluginsService ] [node1] loaded module [transport-netty3]
[2020-05-01T06:38:19,332][INFO ][o.e.p.PluginsService ] [node1] loaded module [transport-netty4]
[2020-05-01T06:38:19,333][INFO ][o.e.p.PluginsService ] [node1] no plugins loaded
[2020-05-01T06:38:20,684][INFO ][o.e.n.Node ] [node1] initialized
[2020-05-01T06:38:20,684][INFO ][o.e.n.Node ] [node1] starting ...
[2020-05-01T06:38:20,788][INFO ][o.e.t.TransportService ] [node1] publish_address {192.168.1.200:9300}, bound_addresses {[::]:9300}
[2020-05-01T06:38:20,792][INFO ][o.e.b.BootstrapCheck ] [node1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [2048] is too low, increase to at least [262144]
[2020-05-01T06:38:20,808][INFO ][o.e.n.Node ] [node1] stopping ...
[2020-05-01T06:38:20,852][INFO ][o.e.n.Node ] [node1] stopped
[2020-05-01T06:38:20,852][INFO ][o.e.n.Node ] [node1] closing ...
[2020-05-01T06:38:20,858][INFO ][o.e.n.Node ] [node1] closed
調大vm.max_map_count
3.1 root用戶,編輯sysctl.conf
[root@localhost elasticsearch-5.1.1]# vim /etc/sysctl.conf
最后加入
vm.max_map_count=262144
3.2 刷新配置
[root@localhost elasticsearch-5.1.1]# sysctl -p
vm.max_map_count = 262144
[root@localhost elasticsearch-5.1.1]#
集群搭建
在單節點成功的情況下
1. 修改yml
# nodename要保證不重復,例如node1,node2
node.name: node1
# 選其中一個節點為主節點
node.master: true
# 自動發現主機配置,填其余節點的信息
discovery.zen.ping.unicast.hosts: ["192.168.1.201"]
2. 啟動雙節點
成功后,可訪問
[root@localhost ~]# curl http://localhost:9200/_cluster/health?pretty
{
"cluster_name" : "baby-application",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}