一、解压
或者,到指定目录下载,再解压也可以
二、进入到bin目录
三、启动
四、ElasticSearch 提示 future versions of Elasticsearch will require Java 11解决方法
五、can not run elasticsearch as root解决方法
1、新增用户密码命令:
1.1、useradd 用户名
1.2、passwd 回车,输入密码
2、赋予新用户目录权限命令:chown -R 用户名 /xxx/xxx/xxx/elasticsearch
3、切换刚新增的用户 su 用户名,该用户用来执行ES
六、ERROR
1、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:
# vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
# sysctl -p
2、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方法:
切换到root用户
# ulimit -Hn 查看硬限制
# vi /etc/security/limits.conf
##在末尾添加下面设置
* soft nofile 655350
* hard nofile 655350
退出用户重新登录,使配置生效
重新 ulimit -Hn 查看硬限制 会发现数值有4096改成655350
3、max number of threads [XXX] for user [XX] is too low, increase to at least [4096]
解决方法:
# vi /etc/security/limits.d/xx-nproc.conf
找到如下内容:
soft nproc 1024 修改为 soft nproc 2048
或
添加 * hard nproc 4096
重启服务器
重新 ulimit -Hn 查看限制
4、org.elasticsearch.bootstrap.StartupException: Java.lang.IllegalStateException: failed to obtain node locks, tried [[/data/elasticsearch/data/elasticsearch]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
解决方法:
在开启多个elasticsearch 实例时,config/elasticsearch.yml文件中新增一个配置变量:
[elsearch@Elk_Server elasticsearch]$ vi config/elasticsearch.yml
node.max_local_storage_nodes: 256
5、system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2019-03-01T16:20:49,025][INFO ][o.e.n.Node ] [node-data1] stopping ...
[2019-03-01T16:20:49,081][INFO ][o.e.n.Node ] [node-data1] stopped
[2019-03-01T16:20:49,081][INFO ][o.e.n.Node ] [node-data1] closing ...
[2019-03-01T16:20:49,100][INFO ][o.e.n.Node ] [node-data1] closed
解决方法:
CentOSCentOSCentOS6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true
禁用:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
七、修改配置文件,添加配置项
八、退出SSH终端,服务终止该如何解决? 用 nohup 命令进行挂起服务不中断
1、切换用户执行,不能在root下启动ES
2、nohup ./elasticsearch &
九、查看启动是否成功
1、ps -ef|grep elastic
十、服务器内访问看看
十一、服务器外访问 服务器IP:9200,如果访问不成功,可能是被防火墙封锁,需开放端口。
1、添加:firewall-cmd --zone=public --add-port=9200/tcp --permanent
2、重加载:firewall-cmd --reload
3、查看开放的端口:firewall-cmd --zone=public --list-ports
十二、安装插件,浏览
1、安装ES浏览插件
2、利用插件浏览
3、有yellow的原因
黄色状态原因:
3.1、图中每个索引,主分片数为1,副分片数为1
3.2、单节点集群。由于只有一个node-1节点,因此集群无法放置副本(副分片),因此处于黄色状态
primary shard:分片,每个文档都存储在一个分片中,当你存储一个文档的时候,系统会首先存储在主分片中,然后会复制到不同的副本中。默认情况下,一个索引有5个主分片。你可以在事先制定分片的数量,当分片一旦建立,分片的数量则不能修改。
replica shard:副本分片,每一个primary shard有零个或多个副本。副本主要是primary shard的复制,可以 增加高可用性,提高性能。
默认情况下,一个主分配有一个副本,但副本的数量可以在后面动态的配置增加。副本必须部署在不同的节点上,不能部署在和主分片相同的节点上。
参考文献
1、
2、
十三、JAVA代码调用
1、创建索引库时,预设主、副分片(可以解决单机,集群健康值为黄问题)
2、调用ES服务器,出现如下问题
解决方案:
3、调用ES接口,出现 HTTP/1.1 413 Request Entity Too Large
解决方案:
提交内容请求实体太大超过了es中设置的最大值,Bulk 默认设置批量提交的数据量不能超过 100M
4、异常如下,需要处理数据的内存,已超过最大限制,需要设置ES的JVM使用内存
解决方案:
5、es 数据修改后,同时发起查询,还是会查到未修改前的数据,因为它是近实时系统,es数据更新完后,有个默认的refresh时间,默认1s刷新,所以,才会在短时间内查询到未更新的数据,解决方案如下:
5.1、在写的时候增加refresh参数,强制刷新即可。但建议不这么干,会把整个集群拖垮。
5.2、代码层增加个延迟阻塞,例如