目录
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
}