一、解压

es 默认配置_elasticsearch

或者,到指定目录下载,再解压也可以

es 默认配置_elasticsearch_02

二、进入到bin目录

es 默认配置_解决方法_03

三、启动

es 默认配置_es 默认配置_04

四、ElasticSearch 提示 future versions of Elasticsearch will require Java 11解决方法

es 默认配置_elasticsearch_05

es 默认配置_es 默认配置_06


五、can not run elasticsearch as root解决方法

es 默认配置_解决方法_07

        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]

es 默认配置_es 默认配置_08

        解决方法:

        # 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

七、修改配置文件,添加配置项

es 默认配置_服务器_09

es 默认配置_解决方法_10

es 默认配置_解决方法_11

八、退出SSH终端,服务终止该如何解决? 用 nohup 命令进行挂起服务不中断

        1、切换用户执行,不能在root下启动ES

es 默认配置_服务器_12

        2、nohup ./elasticsearch &

九、查看启动是否成功

        1、ps -ef|grep elastic

es 默认配置_服务器_13

十、服务器内访问看看

es 默认配置_elasticsearch_14

es 默认配置_es 默认配置_15

十一、服务器外访问 服务器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浏览插件

es 默认配置_es 默认配置_16

        2、利用插件浏览

 

es 默认配置_es 默认配置_17

        3、有yellow的原因

es 默认配置_解决方法_18

         黄色状态原因:

                3.1、图中每个索引,主分片数为1,副分片数为1

                3.2、单节点集群。由于只有一个node-1节点,因此集群无法放置副本(副分片),因此处于黄色状态

                        primary shard:分片,每个文档都存储在一个分片中,当你存储一个文档的时候,系统会首先存储在主分片中,然后会复制到不同的副本中。默认情况下,一个索引有5个主分片。你可以在事先制定分片的数量,当分片一旦建立,分片的数量则不能修改

                        replica shard:副本分片,每一个primary shard有零个或多个副本。副本主要是primary shard的复制,可以 增加高可用性,提高性能。

                        默认情况下,一个主分配有一个副本,但副本的数量可以在后面动态的配置增加。副本必须部署在不同的节点上,不能部署在和主分片相同的节点上。

es 默认配置_服务器_19

参考文献

1、

es 默认配置_es 默认配置_20

  2、 

es 默认配置_服务器_21

 

es 默认配置_es 默认配置_22

 

es 默认配置_es 默认配置_23

十三、JAVA代码调用

        1、创建索引库时,预设主、副分片(可以解决单机,集群健康值为黄问题)

        

es 默认配置_elasticsearch_24

es 默认配置_es 默认配置_25

es 默认配置_elasticsearch_26

2、调用ES服务器,出现如下问题

es 默认配置_解决方法_27

es 默认配置_es 默认配置_28

解决方案:

es 默认配置_elasticsearch_29

 3、调用ES接口,出现 HTTP/1.1 413 Request Entity Too Large

es 默认配置_elasticsearch_30

es 默认配置_解决方法_31

es 默认配置_elasticsearch_32

 

解决方案:

提交内容请求实体太大超过了es中设置的最大值,Bulk 默认设置批量提交的数据量不能超过 100M

es 默认配置_服务器_33

es 默认配置_解决方法_34

4、异常如下,需要处理数据的内存,已超过最大限制,需要设置ES的JVM使用内存

es 默认配置_解决方法_35

es 默认配置_服务器_36

 

es 默认配置_服务器_37

 解决方案:

es 默认配置_服务器_38

es 默认配置_服务器_39

5、es 数据修改后,同时发起查询,还是会查到未修改前的数据,因为它是近实时系统es数据更新完后,有个默认的refresh时间,默认1s刷新,所以,才会在短时间内查询到未更新的数据,解决方案如下:

5.1、在写的时候增加refresh参数,强制刷新即可。但建议不这么干,会把整个集群拖垮。

5.2、代码层增加个延迟阻塞,例如

es 默认配置_elasticsearch_40