Elasticsearch集群环境搭建

1. 简介

此处搭建一个三个节点的集群环境,为了学习方便,我这边只在一台服务器上来演示主从环境。如果是虚拟机,调整虚拟机内存到3g以上

操作系统服务器ip端口号是否能成为主节点
centos7192.168.211.1369200
centos7192.168.211.1369201
centos7192.168.211.1369202

2. 核心概念

2.1 集群(Cluster)

一个Elasticsearch集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识

2.2 节点(Node)
  • 一个Elasticsearch实例即一个Node,一台机器可以有多个实例,正常使用下每个实例都应该 会部署在不同的机器上。Elasticsearch的配置文件中可以通过node.master、node.data来设 置节点类型。
  • node.master:表示节点是否具有成为主节点的资格
    true代表的是有资格竞选主节点
    false代表的是没有资格竞选主节点
  • node.data:表示节点是否存储数据
2.3 Node节点组合
  • 主节点+数据节点(master+data) 默认:节点既有成为主节点的资格,又存储数据
node.master: true 
node.data: true
  • 数据节点(data) 节点没有成为主节点的资格,不参与选举,只会存储数据
node.master: false 
node.data: true
  • 客户端节点(client) 不会成为主节点,也不会存储数据,主要是针对海量请求的时候可以进行负载均衡
node.master: false 
node.data: false
2.4 分片

每个索引有1个或多个分片,每个分片存储不同的数据。分片可分为主分片(primary shard)和复制分片(replica shard),复制分片是主分片的拷贝。默认每个主分片有一个复 制分片,每个索引的复制分片的数量可以动态地调整,复制分片从不与它的主分片在同一个 节点上

2.5 副本

这里指主分片的副本分片(主分片的拷贝)

提高恢复能力:当主分片挂掉时,某个复制分片可以变成主分片;
提高性能:get 和 search 请求既可以由主分片又可以由复制分片处理;

3. 节点配置

3.1 节点1

elasticsearch.yml配置文件说明,此处是针对es 7.X的配置

配置项作用
cluster.name集群名称,相同名称为一个集群
node.name节点名称,集群模式下每个节点名称唯一
node.master当前节点是否可以被选举为master节点,是:true、否:false
node.data当前节点是否用于存储数据,是:true、否:false
path.data索引数据存放的位置
path.logs日志文件存放的位置
bootstrap.memory_lock需求锁住物理内存,是:true、否:false
network.host监听地址,用于访问该es
http.portes对外提供的http端口,默认 9200
transport.port节点选举的通信端口 默认是9300 ,6.x版本配置为transport.tcp.port
discovery.seed_hostses7.x 之后新增的配置,写入候选主节点的设备地址,在开启服 务后可以被选为主节点
cluster.initial_master_nodeses7.x 之后新增的配置,初始化一个新的集群时需要此配置来选 举master
http.cors.enabled是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.allow-origin “*”表示支持所有域名

我们要只需要在之前的基础上,打开配置文件elasticsearch.yml,添加如下配置:

cluster.name: my-es #集群名称 ---
node.name: node-1 # 节点名称
node.master: true #当前节点是否可以被选举为master节点,是:true、否:false --- 
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300 # ---
#初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"] 
#写入候选主节点的设备地址 ---
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301","127.0.0.1:9302"] 
http.cors.enabled: true
http.cors.allow-origin: "*"

修改完配置文件之后,一定要把之前的data目录下node数据删除再重新服务即可。

3.2 节点2配置

拷贝原来的ES节点elasticsearch 并命名为elasticsearch1,并授权

cp -r elasticsearch elasticsearch1
chown -R es elasticsearch1

进入elasticsearch1目录config文件夹,修改elasticsearch.yml配置文件并保存。

# 修改node.name 和 http.port transport.port
node.name: node-2
http.port: 9201
transport.port: 9301
#启动从环境1 一定要用es用户来执行 
cd bin/
./elasticsearch

#后台启动
./elasticsearch -d
3.3 节点3配置

拷贝第一个节点 并命名为elasticsearch2,并授权

cp -r elasticsearch elasticsearch2
chown -R es elasticsearch2

进入elasticsearch2目录config文件夹,修改elasticsearch.yml配置文件并保存。

# 修改node.name 和 http.port transport.port
node.name: node-3
http.port: 9202
transport.port: 9302
#启动从环境2 一定要用es用户来执行 
cd bin/
./elasticsearch

#后台启动
./elasticsearch -d
  • 简单验证
    http://192.168.211.136:9200/_cat/health?v

在这里插入图片描述

4. Elasticsearch Head插件介绍及安装 和 验证主从环境

4.1 简介

elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到ES。es-head主要有三个方面的操作:

  1. 显示集群的拓扑 能够快速访问并显示集群的状态,并且能够执行索引和节点级别操作
  2. 搜索接口能够查询集群中原始json或表格格式的检索数据
  3. 有一个输入窗口,允许任意调用RESTful API。
4.2 安装

官方文档:https://github.com/mobz/elasticsearch-head

elasticsearch-head是一个基于node.js的前端工程。

  1. nodejs安装
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz // 下载
tar xf node-v10.15.3-linux-x64.tar.xz //解压
cd node-v10.15.3-linux-x64/ 
./bin/node -v		//执行node命令 查看版本
v10.15.3	

解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:

ln -s /root/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ 
ln -s /root/node-v10.15.3-linux-x64/bin/node /usr/local/bin/
  1. phantomjs安装配置
cd /usr/local
wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs- 2.1.1-linux-x86_64.tar.bz2

yum install -y bzip2
tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 

vim /etc/profile

export PATH=$PATH:/usr/local/phantomjs-2.1.1-linux-x86_64/bin 

source /etc/profile
  1. elasticsearch-head安装
npm install -g grunt-cli
npm install grunt
npm install grunt-contrib-clean
npm install grunt-contrib-concat
npm install grunt-contrib-watch
npm install grunt-contrib-connect
yum -y install git
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. elasticsearch-head发现主机 并连接 elasticsearch.yml配置文件修改:
http.cors.enabled: true 
http.cors.allow-origin: "*"
  1. 启动:在 elasticsearch-head 中执行命令
npm run start

如果启动出错 则把第三步中的依赖再安装一遍

4.3 验证

启动完成后,我们用Elasticsearch head查看,主从环境配置正常。

在这里插入图片描述
集群节点信息
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值