Elasticsearch(一)Elasticsearch安装与配置

303 阅读5分钟

ES 是一个主从架构

一:环境准备

1 :各个版本需要java依赖(ES是用java写的)

Elasticsearch5需要则java8以上的版本

Elasticsearch从6.5开始支持java11

Elasticsearch7.0开始,内置了Java环境,就不需要我们本地的java版本依赖了。

 

2 :下载地址:

https://www.elastic.co/cn/downloads/past-releases/#elasticsearch

 

3 :windows版本ES配置文件解析

我将下载到本地的ES压缩包解压,在根目录下的bin目录下找到elasticsearch-env.bat文件,使用编辑器打开,找到下面这部分代码:

1.jpg

通过阅读上方的代码,就可以发现,ES7.0以上是如何使用java依赖的了。

 

4 :目录结构

2.jpg

 

5 :elasticsearch.yml

配置文件存放在根目录下的config目录下的elasticsearch.yml文件,在不同的系统(windows/linux)中安装需要不同的配置。这个在不同系统中安装我们再说。

 

二:windows安装 elasticsearch

这个就很简单了,直接将下载的压缩包解压就可以。

启动文件是在根目录下的bin目录下的elasticsearch.bat文件,双击运行即可。

那我们如何知道es是否运行成功呢?很简单,在浏览器中访问:http://localhost:9200/

如下图所示,则运行成功:

3.jpg

 

三:linux安装 elasticsearch

我的linux服务器的操作系统是centos7.8

也是一样,从官网下载压缩包传到linux服务器的对应目录(放到案例取决于你的心情)中。解压即可。

因为linux服务器中每个用户权限不同(理论上直接用root用户就可以)直接使用root用户不太好,因此,我们下边还需要对他做一些设置。

1 :修改elasticsearch.yml

(1):修改监听ip

# 监听所有的网卡
network.host: 0.0.0.0
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
 
cluster.initial_master_nodes: ["node-1"]
# 关闭集群 小内存服务器使用 
cluster.routing.allocation.disk.threshold_enabled: false

4.jpg

2 :修改JVM配置

修改config/jvm.option配置文件,调整jvm堆内存大小,这个参数要根据你服务器的内存去调整,不能大于你的服务器运行内存

-Xms1g
-Xmx1g

上方的两个参数去掉注释即可。

 

3 :创建ES用户

Es是不可以使用root用户来执行的,因此我们需要创建一个新用户,新用户叫啥都可以,看你心情。

adduser es
passwd es
chown -R es:es 你的es目录

 

4 :启动elasticsearch

切换至es用户:

su es

进入es根目录下的bin目录下,执行启动es命令:

./elasticsearch

然后,报错了:

5.jpg

上边是两个报错,我们一个一个解决

(1):Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

解决方案:修改config/jvm.options

这个问题是GC回收的问题,需要修改一个GC回收的配置

## GC configuration
## 8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:+UseG1GC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly

 

(2):Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000ca660000, 899284992, 0) failed; error='Not enough space' (errno=12)

解决方案:修改config/jvm.options

这个问题是内存不足,我的服务器内存是2G,上边参数设置的是1G,很显然,我需要把内存调试小一点:

-Xms256m
-Xmx256m

 

(3):ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.

主要是文件权限与内存大小问题:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536

#切换到root用户修改
vi /etc/security/limits.conf

在文件最后,增加如下配置:

es soft nofile 65536
es hard nofile 65536

此文件修改后需要重新登录用户,才会生效

 

在/etc/sysctl.conf文件最后添加一行

vm.max_map_count=655360

添加完毕之后,

执行命令:

 sysctl -p

(4):bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

看提示可知:缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数

discovery.seed_hosts:  集群主机列表
discovery.seed_providers: 基于配置文件配置集群主机列表
cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填

解决方案:

修改配置文件,添加参数即可

vim config/elasticsearch.yml

 

#添加配置

discovery.seed_hosts["127.0.0.1"]
cluster.initial_master_nodes["node-1"]

 

再次使用./elasticsearch启动es

启动成功,linux服务器使用curl访问:

curl http://127.0.0.1:9200

结果如下图所示:

6.jpg

 

Linux服务器安装成功。

 

如果启动一半程序自动被killed,那可能是服务器内存不足,再把内存调小点应该就可以了。

 

四:其他配置

1 :conf/elasticsearch.yml

# 数据目录位置
# 集群名称,各节点配成相同的集群名称。
cluster.name: zmsz   
path.data: /home/es/data
# 日志目录位置
path.logs: /home/es/logs
#绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
network.host: 0.0.0.0
#设置对外服务的http端口,默认为9200。 
http.port: 9200
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

 

五:启动和关闭ES命令

1 :启动命令

切换至es用户:su es

前台启动: 

./bin/elasticsearch

后台启动: 

./bin/elasticsearch -d
nohup ./elasticsearch &

2 :关闭命令:

(1):如果是shell工具链接,使用ctrl+c组合键关闭即可,这个只针对于前台启动程序

 

(2):如果是后台启动,我们需要找到对应的进程id,使用kill命令,结束进程。

ps -aux | grep elasticsearch
kill -9 端口号

 

以上大概是elasticsearch的基本安装流程。

 

有好的建议,请在下方输入你的评论。