ubuntu 20.04 创建elasticsearch 7.x cluster

2023-09-21 15:57:23

方式一直接固定主节点

  1. 准备两台20.04 的ubuntu服务器
  2. 在每台服务器上安装elasticsearch
sudo apt install openjdk-11-jdk
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch
  1. 设置开机启动elasticsearch
sudo systemctl enable elasticsearch
  1. 设置节点名称
master
sudo hostnamectl set-hostname controller
worker名称
sudo hostnamectl set-hostname node-1
  1. 配置elasticsearch
    这一步需要在每个服务器上执行一次,我们将第一个节点称为controller,第二个节点称为node1.
    controller 配置
sudo nano /etc/elasticsearch/elasticsearch.yml

cluster.name: ellistest

# ------------------------------------ Node -------------------
node.name: controller
node.master: true #主节点设置true
node.data: false #主节点设置false
# ----------------------------------- Paths ------------------
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory ------------------
bootstrap.memory_lock: false
# ---------------------------------- Network ------------------
network.host: 192.168.214.134
http.port: 9200
# --------------------------------- Discovery -----------------
discovery.seed_hosts: ["192.168.214.134", "192.168.214.135"]

cluster.initial_master_nodes: ["192.168.214.134"]

node 配置

sudo nano /etc/elasticsearch/elasticsearch.yml

cluster.name: ellistest

# ------------------------------------ Node -------------------
node.name: node-1
node.master: false #主节点设置true
node.data: true#主节点设置false
# ----------------------------------- Paths ------------------
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory ------------------
bootstrap.memory_lock: false
# ---------------------------------- Network ------------------
network.host: 192.168.214.135
http.port: 9200
# --------------------------------- Discovery -----------------
discovery.seed_hosts: ["192.168.214.134", "192.168.214.135"]

cluster.initial_master_nodes: ["192.168.214.134"]
  1. 启动elasticsearch即可
  2. 验证集群成功
curl -XGET http://localhost:9200/_cat/nodes?v 查看工作节点
curl -XGET http://localhost:9200/_cat/master?v 查看主节点

https://developer.aliyun.com/article/1266948

https://logz.io/blog/elasticsearch-cluster-tutorial/

https://www.techrepublic.com/article/how-to-deploy-an-elasticsearch-cluster-on-ubuntu-server-20-04/

方式二筛选主节点

  1. 准备两台20.04 的ubuntu服务器
  2. 在每台服务器上安装elasticsearch
sudo apt install openjdk-11-jdk
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch
  1. 设置开机启动elasticsearch
sudo systemctl enable elasticsearch
  1. 设置节点名称
master
sudo hostnamectl set-hostname controller
worker名称
sudo hostnamectl set-hostname node-1
  1. 配置elasticsearch
    这一步需要在每个服务器上执行一次,我们将第一个节点称为controller,第二个节点称为node1.
    controller 配置
sudo nano /etc/elasticsearch/elasticsearch.yml

cluster.name: ellistest

# ------------------------------------ Node -------------------
node.name: controller
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
# ----------------------------------- Paths ------------------
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory ------------------
bootstrap.memory_lock: false
# ---------------------------------- Network ------------------
network.host: 0.0.0.0
network.publish_host: 192.168.214.134
http.port: 9200

#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.214.134:9300","192.168.214.135:9300"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["Controller", "node-1"] 

node 配置

sudo nano /etc/elasticsearch/elasticsearch.yml

cluster.name: ellistest

# ------------------------------------ Node -------------------
node.name: node-1
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
# ----------------------------------- Paths ------------------
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory ------------------
bootstrap.memory_lock: false
# ---------------------------------- Network ------------------
network.host: 0.0.0.0
network.publish_host: 192.168.214.135
http.port: 9200

#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.214.134:9300","192.168.214.135:9300"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["Controller", "node-1"] 

  1. 启动elasticsearch即可
  2. 验证集群成功
curl -XGET http://localhost:9200/_cat/nodes?v 查看工作节点
curl -XGET http://localhost:9200/_cat/master?v 查看主节点

https://developer.aliyun.com/article/1266948

https://logz.io/blog/elasticsearch-cluster-tutorial/

https://www.techrepublic.com/article/how-to-deploy-an-elasticsearch-cluster-on-ubuntu-server-20-04/

更多推荐

Golang代码漏洞扫描工具介绍——govulncheck

GolangGolang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身,而且golang代码的漏洞扫描工具,毕竟作为服务端的程序,安全性一直是一个不同忽视的地方Go安全团队在2022.09.0

基于Qt实现的可视化大屏监控

基于Qt实现的可视化大屏监控先上图基于Qt实现的可视化大屏监控总有人质疑QWidget实现不了炫酷的界面,其实QWidget已经很强大了,虽然很多效果没有现成的框架,所以比不上html5或者安卓这种,但是也能实现很多不错的效果了,而且在嵌入式设备上一样能达到这种效果,这是其他很多框架所不能实现的。本次大屏监控主要使用以

安达发APS|生产计划部门如何提升产量?

在当下制造业中,生产计划的制定和执行对于提高产量、降低成本、保证交货期等方面具有重要意义。随着科技的发展,越来越多的企业开始使用APS生产排程软件来优化生产计划,提高生产效率。本文将从以下几个方面介绍如何利用APS生产排程软件提升产量。1.需求预测与订单管理首先,企业需要对市场需求进行准确预测,以便合理安排生产计划。A

三、数学建模之非线性规划

1、定义2、例题matlan代码求解一、定义1.非线性规划(NonlinearProgramming,简称NLP)是一种数学优化问题的方法,它处理的目标函数或约束条件包含非线性项。与线性规划不同,非线性规划涉及到在非线性约束下寻找最优解。在许多领域都有广泛的应用,包括工程、经济学、物流、金融等。它可以用来解决各种实际问

Vue-01:MVVM数据双向绑定与Vue的生命周期

一、Vue介绍1.1什么是Vue?Vue是一个渐进式的JavaScript框架,用于构建用户界面。"渐进式"意味着Vue的设计理念是逐步增强应用的功能和复杂性,而不是一次性地引入所有功能。这使得开发者可以根据项目需求选择性地使用Vue的不同特性和功能。1.2Vue的优点Vue具有许多实际应用的优点,以下是其中一些:易学

全面了解SpringBoot拦截器

在本文中,我们将详细介绍SpringBoot中的拦截器,包括拦截器的概念、作用、实现方式、执行顺序、生命周期以及高级应用。最后,我们还将探讨拦截器的性能优化策略和常见问题。1.拦截器的概念和作用1.1什么是拦截器拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器

前端代码规范

HTML编码规约(WC-HTML)-HTML编码规约前言本规约涉及HTML语言的编码风格、最佳实践。参与和反馈对规约有任何意见和建议,欢迎留言讨论:)1【推荐】使用2个空格缩进。统一使用2个空格缩进,不要使用4个空格或tab缩进:<!DOCTYPEhtml><html><head><title>Pagetitle</t

Rust中的结构体

专栏简介:本专栏作为Rust语言的入门级的文章,目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言,虽然历史没有C++、和python历史悠远,但是它的优点可以说是非常的多,既继承了C++运行速度,还拥有了Java的内存管理,就我个人来说,还有一个优点就是集成化的编译工具cargo,语句风格和C++极其相

rom修改----安卓系列机型如何内置app 如何选择so文件内置

系统内置app的需求在与各工作室对接中操作单中,很多需要内置客户特定的有些app到系统里,这样方便客户刷入固件后直接调用。例如内置apk去开机引导去usb调试默认开启usb安全设置等等。那么很多app内置有不同的反应。有的可以直接内置。有的需要加so才能解决我们先来看一张图片1---直接内置方法将需要的app直接放置系

应急响应LINUX&Windows

应急响应LINUX&Windowslinux文件名说明/etc/passwd用户信息文件/etc/crontab定时任务文件/etc/anacrontab异步定时任务文件/etc/rc.d/rc.local开机启动项/var/log/btmp登录失败日志,使用last命令查看/var/log/cron定时任务执行日志/

内存管理之虚拟内存

本篇遵循内存管理->地址空间->虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系,较为详细的介绍了作为在校大学生对于虚拟内存的理解。内存管理引入RAM(内存)是计算机中非常重要的资源,由于造价的昂贵,我们家用的计算机一般是8/16G。对于如此紧俏的资源我们当然需要对它好好管理,尽力做到不浪费,高效压榨它的每

热文推荐