Linux搭建es集群

今天写一篇Linux环境下搭建es集群文章,大家跟着步骤来,避免踩坑(自己踩过很多坑真的很烦很烦的),es集群是在单机版es的基础上的,所以下面我们先开始搭建单机版es。

重点声明一下虚拟机最好用CentOS7版本 不然中间会有很多坑 最好用7版本

步骤:

1、下载或者上传安装包(我这里用的Linux64(TAR)7.4.0版本 自带JDK) 安装包下载传送门
2、解压安装包
3、创建普通用户
4、为新用户授权
5、修改elasticsearch.yml文件
6、修改其他配置文件
7、启动elasticsearch
8、访问elasticsearch

一、ElasticSearch安装

1、上传ElasticSearch安装包到/opt目录下
可以用Xftp直接拖动安装包,方便快捷

2、执行解压操作,如下

#将elasticsearch-7.4.0-linux-x86_64.tar. gz解压到opt文件夹下. -C大写
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt

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

useradd icoding  #新增icoding用户
passwd  icoding  #为icoding用户设置密码
userde1 -r icoding   #如果错了可以删除再加
#为普通用户授权 否则无法运行es
cd /opt/
chown -R icoding:icoding elasticsearch-7.4.0

4、修改elasticsearch.yml文件

vi /opt/elasticsearch-7.4.0/config/elasticsearch.yml
# ================= Elasticsearch   configuration =================
cluster.name: icoding-course
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

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

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

#切换到root用户
su root
#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所有用户名称#2.===最大虚拟内存太小====
vi /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p

6、启动elasticsearch

su icoding
#切换到icoding用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动

二、访问elasticsearch

浏览器输入(自己虚拟器ip ifconfig命令查看)
http://192.168.200.130:9200/
1、在访问elasticsearch前,请确保防火墙是关闭的,执行命令:

#暂时关闭防火墙
systemctl stop firewalld
#或者
#永久设置防火墙状态
systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原#以上命令关闭防火墙不管用试试下面这行
service iptables stop

到此 单机版es就配置完毕! 觉得凑乎的麻烦大家点个赞!不胜感激-,-

接下来我们接着配置es集群!

整体步骤

步骤如下:
1、拷贝opt目录下的elasticsearch-7.4.0安装包3个,分别命名:

elasticsearch-7.4.0-icoding1
elasticsearch-7.4.0-icoding2
elasticsearch-7.4.0-icoding3

·2、然后修改elasticsearch.yml文件。

·3、然后启动启动icoding1、icoding2、icoding3三个节点。

·4、打开浏览器输入: http://192.168.189.129:9201/_cat/health?v如果返回的node.total是3,代表集群搭建成功
在此,需要我们特别注意的是,像本文这样单服务器多节点(3个节点)的情况,仅供测试使用,集群环境如下:

cluster name node name IP Addr http端口/通信端口
icoding-es icoding1 192.168.200.130 9201 / 9700
icoding-es icoding1 192.168.200.130 9202 / 9800
icoding-es icoding1 192.168.200.130 9203 / 9900

1、拷贝副本

拷贝opt目录下的elasticsearch-7.4.0安装包3个,打开虚拟机到opt目录

执行拷贝三份

cd /opt
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding1
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding2
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding3

2、修改elasticsearch.yml配置文件

1)、创建日志目录

cd /opt
mkdir logs
mkdir data
#授权给icoding用户
chown -R icoding:icoding ./logs
chown -R icoding:icoding ./data

打开elasticsearch.yml配置,分别配置下面三个节点的配置文件

vi /opt/elasticsearch-7.4.0-icoding1/config/elasticsearch.yml
vi /opt/elasticsearch-7.4.0-icoding2/config/elasticsearch.yml
vi /opt/elasticsearch-7.4.0-icoding3/config/elasticsearch.yml
## 集群名称,保证唯一
cluster.name: icoding-course
#### 节点名称,必须不一样
node.name: icoding-1
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 0.0.0.0
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
#数据和存储路径
path.data: /opt/data
path.logs: /opt/logs#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

2)、下面是elasticsearch-7.4.0-icoding1配置文件

cluster.name: icoding-course
node.name: icoding-1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9700
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

3)、下面是elasticsearch-7.4.0-icoding2配置文件

cluster.name: icoding-course
node.name: icoding-2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9800
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

4)、下面是elasticsearch-7.4.0-icoding3配置文件

cluster.name: icoding-course
node.name: icoding-3
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9203
transport.tcp.port: 9900
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

5)、执行授权

在root用户下执行
chown -R icoding:icoding /opt/elasticsearch-7.4.0-icoding1
chown -R icoding:icoding /opt/elasticsearch-7.4.0-icoding2
chown -R icoding:icoding /opt/e1asticsearch-7.4.0-icoding3
如果有的日志文件授权失败,可使用(也是在root下执行)cd /opt/elasticsearch-7.4.0-icoding1
chown -R icoding:icoding logs
cd /opt/elasticsearch-7.4.0-icoding2
chown -R icoding:icoding logs
cd /opt/elasticsearch-7.4.0-icoding3
chown -R icoding:icoding logs

6)、设置ES的JVM占用内存参数

启动之前,设置ES的JVM占用内存参数,防止内存不足错误

vi /opt/elasticsearch-7.4.0-icoding1/config/jvm.options
vi /opt/elasticsearch-7.4.0-icoding2/config/jvm.options
vi /opt/elasticsearch-7.4.0-icoding3/config/jvm.options

默认情况下,ES启动JVM最小内存1G,最大内存1G

-Xms256m
-Xmx256m

尽量全部修改为256m

7)、访问节点
依次启动我们搭建的es(切换为普通用户再启动)

cd /opt/elasticsearch-7.4.0-icoding1/bin/
./elasticsearch
cd /opt/elasticsearch-7.4.0-icoding2/bin/
./elasticsearch
cd /opt/elasticsearch-7.4.0-icoding3/bin/
./elasticsearch

8)、查看集群状态
打开浏览器输入:http://192.168.189.129:9201/_cat/health?v,如果返回的node.total是3,代表集群搭建成功

到此,es集群搭建完毕,感谢大家的耐心,感谢点赞-,

Linux搭建es集群详细教程(最终版)相关推荐

  1. linux搭建es集群

    准备 安装docker. 安装好Docker Compose. 注意:运行内存最好8g以上,es运行会占用很多内存(2-3g) 方式1: 单机多节点. 参考官网的方式创建(docker-compose ...

  2. 计算机集群搭建教程,Windows搭建Redis集群-详细教程

    一.集群知识 1.集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 2.使用redis集群的必要性 问题:我们已经部署好了redis,并且能启动 ...

  3. Kubernetes 搭建 ES 集群(存储使用 local pv)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  4. 在Linux搭建Kafka集群

    文章目录 前言 准备工作 安装和配置 测试 参考链接 前言 以kafka_2.13-2.8.0版本做示例,安装架构图如下所示,4台服务器,4个节点的Zookeeper集群(1主2从1观察)以及3个Ka ...

  5. VM虚拟机 - Docker - CentOS 7 - 快速使用Docker从零搭建Hadoop完全分布式集群详细教程(亲测有效,※吐血推荐※)(内含快速启动容器脚本)

    目录 阅读须知 最小安装(可跳) 安装VMware Tool(可直接安装) 关闭防火墙和Selinux 安装docker 迁移docker安装目录 docker安装CentOS 7 安装必要工具 安装 ...

  6. Linux 搭建Kafka集群,最新教程,细到极致

      大家好呀,今天给大家带来的是,最新版kafka集群的安装教程,希望给小伙伴们一点小小的帮助. 注意:提前安装好jdk, Jdk安装教程 1.准备安装包,Kafka官网下载 2.kafka安装需要z ...

  7. Linux搭建eureka集群,基于dns搭建eureka集群

    eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...

  8. 阿里云 ECS 服务器上如何搭建 Hadoop 集群详细步骤图解

    1.前言 在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础.集群可以理解为多台装有ha ...

  9. Kubernetes 搭建 ES 集群(存储使用 cephfs)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  10. ElasticSearch 5. 搭建ES集群

    Elasticsearch集群 1. why? 提高负载能力 提高存储容量上限 实现高可用 提高并发处理能力 - 2. 数据分片(Shard) ​ es集群把数据拆分成多份,每一份存储到不同节点(no ...

最新文章

  1. linux定时任务定向到空,Linux 定时任务下 /dev/null 21 相关知识说明
  2. 全志a64linux内核编译,芯灵思Sinlinx A64 Linuxqt编译安装
  3. java: BigDecimal 调用add后,求和结果没有变化
  4. SCI论文需要什么程度的统计学
  5. hibernate中对象的3种状态----瞬时态、持久态、脱管态
  6. LeetCode算法入门- Implement strStr() -day22
  7. webpack4 es6转换
  8. java语言程序设计基础篇课后答案_《Java语言程序设计:基础篇》课后复习题答案-第十五章.pdf...
  9. Web Components系列(七) ——自定义组件的生命周期
  10. Java2十大经典中文图书
  11. android 网络程序下载,Android从网络上下载文件
  12. overload方法重载
  13. Nodemcu 背篼酥课堂--物联网实战体系课程
  14. 团体项目搜查令更新一
  15. HP光影精灵3 TPN-Q193显卡驱动安装不上,鲁大师检测不到显卡
  16. tp中ueditor编辑器的使用
  17. “双一流”哈尔滨工程大学成立人工智能有关学院,打造一流学科群!
  18. 1、Python培训 Python 简介
  19. CS、BS架构定义(笔记)
  20. Socaverse正在推动体育文化成为Web3发展的新驱动力

热门文章

  1. 推荐一本 python自动化框架pytest -上海悠悠
  2. windows资源监视器中内存项(提交、工作集、可共享、专用)的含义及区别
  3. 润乾报表如何固定表头
  4. 【搜素算法02】—回溯法
  5. Max Script 入门教程
  6. 【Java Map数据】中国各省份省会城市经纬度
  7. TIBCO Spotfire 入门指南
  8. 【毕业设计】深度学习指纹识别算法研究与实现 - python opencv
  9. 《Redis视频教程》(p5)
  10. Midas GTS NX三维地质建模及边坡稳定性分析