怎样搭建 Elasticsearch 7.15.1集群
1-1、准备环境
采用三台CentOS6.5部署Elasticsearch集群,部署Elasticsearch集群就不得不提索引分片,以下是索引分片的简单介绍。
系统 | 节点名称 | IP地址 |
---|---|---|
centos 6.5 | els-node1 | 192.168.60.201 |
centos 6.5 | els-node2 | 192.168.60.201 |
centos 6.5 | els-node3 | 192.168.60.201 |
ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。
由于 Elasticsearch 6.5.4要求linux 内核版本要高于3.5+,所以我们先要将系统内核升级至3.5+,详细请移步
CentOS6.5升级内核至4.4
1-2、Elasticsearch集群搭建
1.安装JDK
Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中,所以第一步要安装JDK
yum install -y java-1.8.0-openjdk-devel # 安装1.8或1.8以上版本
2.下载elasticsearch
https://www.elastic.co/cn/downloads/elasticsearch,是ELasticsearch的官方站点,如果需要下载最新的版本,进入官网下载即可。可以下载到本地电脑然后再导入CentOS中,也可以直接在CentOS中下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.1-linux-x86_64.tar.gz
3.安装elasticsearch
tar xf elasticsearch-7.15.1-linux-x86_64.tar.gz -C /opt
4.配置目录
安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径
/opt/elasticsearch-7.15.1/config/elasticsearch.yml # els的配置文件
/opt/elasticsearch-7.15.1/config/jvm.options # JVM相关的配置,内存大小等等
/opt/elasticsearch-7.15.1/config/log4j2.properties # 日志系统定义
5.创建用于存放数据与日志的目录
数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,那么手动创建日志与数据文件路径,可以使用NFS、可以使用Raid等等方便以后的管理与扩展
mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/log
chown -R elasticsearch.elasticsearch /opt/elasticsearch/*
6.集群配置
集群配置中最重要的两项是node.name与network.host,每个节点都必须不同。其中node.name是节点名称主要是在Elasticsearch自己的日志加以区分每一个节点信息。
discovery.zen.ping.unicast.hosts是集群中的节点信息,可以使用IP地址、可以使用主机名(必须可以解析)。
vim /opt/elasticsearch-7.15.1/config/elasticsearch.yml
cluster.name: my-els # 集群名称
node.name: els-node1 # 节点名称,仅仅是描述名称,用于在日志中区分
path.data: /opt/elasticsearch/data # 数据的默认存放路径
path.logs: /opt/elasticsearch/log # 日志的默认存放路径
network.host: 192.168.60.201 # 当前节点的IP地址
http.port: 9200 # 对外提供服务的端口,9300为集群服务的端口
#添加如下内容
#culster transport port
transport.tcp.port: 9300
transport.tcp.compress: true
cluster.initial_master_nodes: ["192.168.60.201", "192.168.60.202","192.168.60.203"]
discovery.seed_hosts: ["192.168.60.201", "192.168.60.202","192.168.60.203"]
discovery.zen.minimum_master_nodes: 2 # 为了避免脑裂,集群节点数最少为 半数+1
#当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
#是否支持跨域,默认为false
http.cors.enabled: true
#是不是有资格主节点
node.master: true
node.data: true
7.JVM配置
由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。
vim /etc/elasticsearch/jvm.options
-Xms1g # JVM最大、最小使用内存
-Xmx1g
8.使用ROOT账户执行以下命令
elasticsearch的相关配置已经完成,下面需要启动elasticsearch集群。但是由于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群。
创建ES运行用户
# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es
# 更改用户密码(输入 123123)
passwd es
修改ES目录权限
chown -R es:es /etc/share/elasticsearch/
chown -R es:es /usr/share/elasticsearch/
chown -R es:es /var/log/elasticsearch/ # 以上操作都是为了赋予es用户操作权限
启动服务
# 需切换为es用户
su es
# 启动服务(当前的路径为:/usr/share/elasticsearch/)
./bin/elasticsearch
后台运行ES
可以加入-p 命令 让es在后台运行, -p 参数 记录进程ID为一个文件
# 设置后台启动
./bin/elasticsearch -p /tmp/elasticsearch-pid -d
结束进程
# 查看运行的pid
cat /tmp/elasticsearch-pid && echo
# 结束进程
kill -SIGTERM {pid}
验证一下服务是否正常
curl -i "http://192.168.60.200:9200"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75710.html