首页 > 系统相关 >ES Linux集群简单搭建

ES Linux集群简单搭建

时间:2023-03-10 17:24:28浏览次数:52  
标签:node icoding 192.168 cluster 集群 ES Linux 节点 es

1 环境

  这里使用的是虚拟机,系统是centos7,jdk11,es7.6.2

 

2 虚拟机安装centos及静态ip配置

  虚拟机安装centos及静态ip配置

 

3 JDK安装配置

  安装配置

 

4 先安装单机版的

  下载地址

 

4.1 上传es的压缩包并解压

tar -zxvf elasticsearch-7.6.2

 

4.2 配置文件

  进入config目录

cd elasticsearch-7.6.2/config/

 修改elasticsearch.yml

vi elasticsearch.yml

  添加以下配置

# ================= Elasticsearch   configuration =================
cluster.name: jcc_es_cluster
node.name: es_node_01
network.host: 0.0.0.0
http.port: 9201
cluster.initial_master_nodes: ["es_node_01"]

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

1)cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
2)node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
3)network.host:设置为0.0.0.0允许外网访问
4)http.port::Elasticsearch的http访问端口
5)cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

4.3 添加普通用户

  因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令

passwd  icoding  #为icoding用户设置密码
passwd  icoding  #为icoding用户设置密码
#为这个用户授权
chown -R icoding:icoding /usr/local/programs/elasticsearch-7.6.2

 

4.4 为普通用户做更多配置

  新创建的icoding用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容

 

4.4.1 最大可创建文件数太小配置

#1.===最大可创建文件数太小======
vi /etc/security/limits.conf
#在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536

 

#====
vi /etc/security/limits.d/90-nproc.conf 
#在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536
*  hard    nproc     4096
#注:*代表Linux所有用户名称

 

4.4.2 最大虚拟内存太小配置

#2.===最大虚拟内存太小====
vi /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p

 

4.5 启动

4.5.1 切换到icoding用户启动

su icoding

 

4.5.2 启动

cd /usr/local/programs/elasticsearch-7.6.2/bin
./elasticsearch

 

4.6 访问

  http://192.168.28.110:9201/

 

4.7 启动遇到错误

Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 

  原因是垃圾回收器版本过低

  进入 elasticsearch的config文件夹,修改配置文件jvm.options

  把垃圾回收期修改为G1

 

5 配置集群

5.1 简要说明

  总共三个节点:

  es-node-01   192.168.28.110  9201  9700

  es-node-02   192.168.28.111  9202  9800

  es-node-03   192.168.28.112  9203  9900

 

5.2 在上面单机版的基础上修改配置文件

## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_01
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.110
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

 

5.3 清空data和logs

  删除data文件夹和logs文件夹下的所有文件,因为下面要复制过去的,不清空会有问题

 

5.4 克隆虚拟机

  先关机,再右键虚拟机实例ES-NODE01,选择管理,选择克隆

  

   下一步

  

  选择创建完成克隆

  

   填写名称和路径

  

   完成克隆

 

5.5 进入新的虚拟机,配置ip

  把ip修改为192.168.28.111

 

5.6 修改es配置文件

# ================= Elasticsearch   configuration =================
## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_02
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.111
#端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9800
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

 

5.7 重复上面的操作,再克隆一个

  修改ip为192.168.28.112

 

5.8 修改es配置文件

# ================= Elasticsearch   configuration =================
## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_03
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.112
#端口
http.port: 9203
#内部节点之间沟通端口
transport.tcp.port: 9900
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

 

5.9 全部切换到用户icoding

su icoding

 

5.10 全部进入bin目录

cd /usr/local/programs/elasticsearch-7.6.2/bin

 

5.11 启动

./elasticsearch

 

5.12 访问

  发现node.total是3,说明成功

 

标签:node,icoding,192.168,cluster,集群,ES,Linux,节点,es
From: https://www.cnblogs.com/jthr/p/17204110.html

相关文章

  • J4、ResNet与DenseNet结合探索
    ......
  • Games101-Cp1-Transformation
    最近为了求职重新开始把图形学相关的内容重新系统的学习,先把Games101的内容入门,然后把虎书相关的内容补充。Transformation矩阵变换可以对不同坐标系之间进行转换,在这个......
  • 不支持设置运行目录主机thinkphp伪静态使用方法.htaccess
    不支持设置运行目录主机thinkphp伪静态使用方法.htaccess资源宝分享:​​www.httple.net​​<IfModulemod_rewrite.c>RewriteEngineonRewriteBase/RewriteCond%{REQUEST_......
  • Mybatis-lesson5-属性及别名-2023-3-10
    属性文件:resources-> db.propertiesdriver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=U......
  • 如何搭建属于自己的服务器(Linux7.6版)
    从0搭建属于自己的服务器最近小伙伴推荐的华为云活动,购买服务器相当的划算,本人也是耗费巨资购买了一台2核4GHECS云服务器。话不多说,在这里给华为云打一个广子,活动力度还......
  • CWinThread Pump Message, crashing
    如果在MFC消息循环中收到非法访问异常试着找找是不是在多线程中哪个线程提前结束了,而线程创建的对象仍然存活,并且触发了 AccessViolation c0000005大消息泵里发现......
  • ERP 和 MES 之间的联系是什么?
    从企业的管理来说,ERP(EnterpriseResourcePlanning,企业资源计划)与MES(ManufacturingExecutionSystem,即制造执行系统)系统之间的关系有点像公司总部与分厂的关系,ERP向......
  • LVS+keepalived+nginx+redis+mysql集群负载
    背景:梳理知识体系,关于架构,有做过一个项目,是关于双机热备高可用的方案。两台机器相对独立,两套一模一样且独立运行的系统,客户要求实现高可用。经过和架构部的商讨,通过lvs+ke......
  • TypeScript学习笔记#6 构造函数
    TypeScript学习笔记#6构造函数classDog{name:string;age:number;//构造函数//构造函数会在创建对象时调用constructor(name:string,age:number......
  • TypeScript学习笔记#2 其他类型声明
    TypeScrip学习笔记#2其他类型说明1.对象类型声明//{}用来指定这个对象中可以包含哪些属性//语法:{属性名:属性值,属性名:属性值}//?表示属性名可选letb:{name:......