es 原生linux部署集群

背景

目的:

  1. 理解不同部署方式的架构差异

  2. 对比环境配置的复杂度

  3. 评估性能与资源管理

  4. 探索扩展性与高可用性

  5. 学习安全与隔离机制

  6. 实践监控与维护

  7. 掌握混合部署与云原生场景

实验的最终目标

技能提升:

全面掌握Elasticsearch在不同环境下的部署、配置、优化和故障排查能力。

决策支持:

为实际生产环境中的技术选型(原生 vs. 容器化)提供数据支持和实践经验。

需求:

es 原生linux部署集群

原生linux命令部署

1.准备两台服务器,修改静态IP,关闭防火墙和SELinux,其中静态IP分别设为10.1.1.32和10.1.1.33,通过命令systemctl stop firewalld && systemctl disable firewalld关闭防火墙,修改selinux配置文件后重启。

2.安装ES准备工作:安装Java并验证版本,下载ES安装包并解压,创建es用户和组,移动文件目录并赋予权限,修改sysctl.conf和limits.conf文件,其中在sysctl.conf添加vm.max_map_count=262144 ,在limits.conf配置用户文件打开数限制。

3.安装ES:配置elasticsearch.yml文件,设置集群名称、节点名称、绑定IP等参数,两台服务器的集群名称需相同;切换到es用户启动ES服务,另一台服务器重复相同步骤。

4.测试:在任意一台服务器上使用curl命令测试ES集群状态,注意修改为自己的IP地址。

一.准备环境

1.1环境准备(可先配置好一台,随后克隆)

|-------------------|------------------------------|
| IP | |
| 10.1.1.32 | cpu 2核 内存:4G 硬盘 100G |
| 10.1.1.33 | cpu 2核 内存:4G 硬盘 100G |

1.2 修改静态IP

bash 复制代码
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9ca3309e-8a00-4ad0-a902-792e121282d9
DEVICE=ens33
ONBOOT=yes
IPADDR=10.1.1.32
PREFIX=24
GATEWAY=10.1.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8

1.3关闭Slinux和防火墙

systemctl stop firewalld && systemctl disable firewalld

vi /etc/sysconfig/selinux

SELinux=enforcing改为SELinux=disabled

reboot #重启

二.安装es准备工作

2.1 安装java

sudo yum install java-1.8.0-openjdk

java -version #验证java

2.2 下载es

bash 复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
tar -xvf elasticsearch-6.5.4.tar.gz #解压

2.3创建用户和组

#创建组

groupadd es

#创建用户 组 密码

useradd es -g es -p es

#移动文件目录 把解压的elasticsearch-6.5.4 移到 /home/es下

mv elasticsearch-6.5.4 /home/es

#赋值权限

chown -R es:es /home/es/elasticsearch-6.5.4

2.4 修改sysctl.conf

vi /etc/sysctl.conf

需要在:/etc/sysctl.conf 添加上:vm.max_map_count=262144最后启动配置:sysctl -w vm.max_map_count=262144

2.5 修改limits.conf

vim /etc/security/limits.conf

配置内容 *表示所有用户生效

* soft nofile 65536

* hard nofile 65536

重新登录即可生效

可使用命令查看是否生效

ulimit -H -n

. 安装es

此处可用执行完以上操作的虚拟机克隆一台新的虚拟机,修改IP为10.1.1.33

3.1 配置文件

vi /home/es/elasticsearch-6.5.4/config/elasticsearch.yml

IP为10.1.1.32:

cluster.name: my-application

node.name: node-1

network.host: 0.0.0.0

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

discovery.zen.minimum_master_nodes: 2

bash 复制代码
cluster.name: my-application

node.name: node-1

network.host: 0.0.0.0

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

discovery.zen.minimum_master_nodes: 2

IP为10.1.1.33:

cluster.name: my-es-cluster

node.name: node-2

network.host: 10.1.1.33

http.port: 9200

discovery.zen.ping.unicast.hosts: ["10.1.1.32", "10.1.1.33"]

discovery.zen.minimum_master_nodes: 2

node.master: true

node.data: true

bash 复制代码
cluster.name: my-es-cluster
node.name: node-2
network.host: 10.1.1.33
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.1.1.32", "10.1.1.33"]
discovery.zen.minimum_master_nodes: 2
node.master: true
node.data: true
  • cluster.name: 集群名称,所有节点必须相同。

  • node.name: 当前节点的名称。

  • network.host: 节点绑定的 IP 地址。

  • discovery.zen.ping.unicast.hosts: 用于发现其他节点的主机列表。

  • discovery.zen.minimum_master_nodes: 主节点数量的最小值,通常是 (节点总数 / 2) + 1。

3.2 切换用户

su es

cd /home/es/elasticsearch-6.5.4/bin

./elasticsearch -d

四.测试

curl -X GET "10.1.1.33:9200/_cluster/health?pretty"

curl -X GET "10.1.1.32:9200/_cluster/health?pretty"

相关推荐
眠修6 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
bxlj_jcj44 分钟前
深入Flink核心概念:解锁大数据流处理的奥秘
大数据·flink
云资源服务商1 小时前
阿里云Flink:开启大数据实时处理新时代
大数据·阿里云·云计算
BAOYUCompany1 小时前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
Aurora_NeAr2 小时前
Spark SQL架构及高级用法
大数据·后端·spark
王小王-1232 小时前
基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
大数据·hive·hadoop·分布式·hadoop公共自行车·共享单车大数据分析·hadoop共享单车
数据与人工智能律师2 小时前
数字资产革命中的信任之锚:RWA法律架构的隐形密码
大数据·网络·人工智能·云计算·区块链
鳄鱼皮坡3 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
Edingbrugh.南空3 小时前
Flink OceanBase CDC 环境配置与验证
大数据·flink·oceanbase
即将头秃的程序媛3 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos