Elasticsearch环境搭建|ES单机|ES单节点模式启动|ES集群搭建|ES集群环境搭建

文章目录

  • 版本选择
  • 单机ES安装与配置
    • 创建非root用户
    • 导入安装包
    • 安装包解压
    • 配置JDK环境变量
    • 配置single-node
    • 配置JVM参数
    • 后台启动|启动日志查看
    • 启动成功,访问
      • 终端访问
      • 浏览器访问
  • Kibana安装
    • 修改配置
    • 后台启动|启动日志查看
    • 浏览器访问
  • ES三节点集群搭建
    • 停止es服务
    • 域名配置
    • 配置修改
    • 集群配置
      • 配置说明
      • 配置节点1
      • 配置节点2
      • 配置节点3
      • 分别启动
      • 验证集群搭建成功
    • Kibana配置修改
    • 重启Kibana
      • 查看进程
      • 停止Kibana服务
      • 启动Kibana
      • 验证

版本选择

在[ElasticSearch]分析京东商城商品搜索实现|聚合|全文查找|搜索引擎|ES Java High Level Rest Client|ES Java API Client这篇文章里进行了说明,使用的7.17.3版本,不再赘述。

  • Elasticsearch 7.17.3下载地址
  • Kibana 7.17.3下载地址
  • 环境CentOS 7.6.1

单机ES安装与配置

创建非root用户

ES不允许root用户运行,使用root用户为其创建一个用户es,为用户es配置密码,并切换到es用户。

adduser es
passwd es
su es

导入安装包

将下载好的Elasticsearch,Kibana导入到es用户home目录

[es@polaris ~]$ cd ~
[es@polaris ~]$ pwd
/home/es
[es@polaris ~]$ ls        
kibana-7.17.3-linux-x86_64.tar.gz              
elasticsearch-7.17.3-linux-x86_64.tar.gz    

安装包解压

tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz
tar -zxvf kibana-7.17.3-linux-x86_64.tar.gz

配置JDK环境变量

当前还在用户home目录下,
添加两行(ES7.x及以后版本内置了jdk)

export ES_JAVA_HOME=/home/es/elasticsearch-7.17.3/jdk
export ES_HOME=/home/es/elasticsearch-7.17.3
[es@polaris ~]$ vim .bash_profile # .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsexport ES_JAVA_HOME=/home/es/elasticsearch-7.17.3/jdk
export ES_HOME=/home/es/elasticsearch-7.17.3PATH=$PATH:$HOME/.local/bin:$HOME/binexport PATH

执行以下命令,使之生效。(之后使用es用户开启一个终端会话(参考:ES环境变量设置的问题,分析用户级环境变量设置与读取,报错分析与解决⚠️ usage of JAVA_HOME is deprecated, use ES_JAVA_HOME),该环境变量配置就会是生效的)

source .bash_profile

配置single-node

切换到es目录

cd elasticsearch-7.17.3/
# 0. 备份一下原配置文件
cp config/elasticsearch.yml config/elasticsearch.yml.origin
# 修改配置
vim config/elasticsearch.yml
# 1. 开启远程访问,监听所有网卡,可以在虚拟机外部如win主机上访问  
network.host: 0.0.0.0
# 2. 单节点模式
discovery.type: single-node

配置JVM参数

官方建议:将 Xms 和 Xmx 设置为不超过总内存的 50%。 Elasticsearch 需要内存用于 JVM堆以外的用途。例如,Elasticsearch 使用堆外缓冲区来实现高效的网络通信,并依赖操作系统的文件系统缓存来高效地访问文件。 JVM本身也需要一些内存。Elasticsearch 使用的内存多于 Xmx 设置配置的限制是正常的。

机器情况:CPU 4核8线程,内存16GB,打算搭三节点集群演示,主机上还会运行一些东西,因此为每个虚拟机分配了2GB的内存,处理器数量2个,单个处理器内核数量设置为了2个,处理器内核总数为4

虚拟机内存2GB,堆内存设置不超过50%,这里设置1GB

# 0. 备份一下原配置文件
cp config/jvm.options config/jvm.options.origin
# 修改堆内存
vim config/jvm.option-Xms1g
-Xmx1g

后台启动|启动日志查看

后台启动可以保证启动成功后,当前会话断开,es还是在运行,不会随着终端会话关闭而终止。

bin/elasticsearch -d

如果启动有问题可以查看es启动日志

tail -f logs/elasticsearch.log

启动成功,访问

终端访问

在这里插入图片描述

浏览器访问

如果浏览器访问不通,那么可以关闭防火墙简化操作,
云服务器的话可以通过配置安全组规则,进行端口映射,开放端口(参考:添加安全组规则)

在这里插入图片描述

这样单节点的es就可以正常工作,之后通过修改配置把他加入到集群。

Kibana安装

Kibana是官方提供的ES一个客户端连接工具。
只在一台虚拟机上安装即可(或者win主机上安装一个都行),注意修改配置,使之能够访问到es(单机或集群),以及可以对外提供服务(Kibana对外能够被访问)。
这里是在虚拟机上安装。

修改配置

cd ~/kibana-7.17.3-linux-x86_64/
#备份一个源文件
cp config/kibana.yml config/kibana.yml.origin
#修改配置
vim config/kibana.yml#指定Kibana服务器监听的端口号
server.port: 5601    
#开启远程访问,监听所有网卡,可以在虚拟机外部如win主机上访问  
server.host: "0.0.0.0"    
#指定Kibana连接到的ES实例的访问地址,
#如果访问本地的ES(Kibana与ES安装在同一台服务器上)就是localhost,访问其他的换成ip
#集群的话就配上所有的节点elasticsearch.hosts: ["http://192.168.43.69:9200", "http://192.168.43.133:9200", "http://192.168.43.225:9200"]
elasticsearch.hosts: ["http://localhost:9200"]  
#将 Kibana 的界面语言设置为简体中文。默认en
i18n.locale: "zh-CN"  

后台启动|启动日志查看

后台启动可以保证启动成功后,当前会话断开,kibana还是在运行,不会随着终端会话关闭而终止。

nohup bin/kibana &

如果启动有问题可以查看Kibana启动日志

tail -f nohup.out

浏览器访问

win主机浏览器访问机器ip+“:”+port(5601),

http://192.168.43.69:5601/

到此,Elasticsearch环境及客户端Kibana就安装配置完成。

在这里插入图片描述

这里查看到的节点ip是192.168.25.74而不是我们访问的机器ip 192.168.43.69,是有问题的(正常情况是不会有这个问题的)。这个问题的原因参考:[ES] ElasticSearch节点加入集群失败经历分析主节点选举、ES网络配置 [publish_address不是当前机器ip]

下面说明ES集群搭建方法。

ES三节点集群搭建

可以把刚才的虚拟机克隆出额外的两个,也可以在额外的两个虚拟机上重复上面es的安装过程(Kibana不需要再装了,它只是个es连接工具,装一个就行了)

停止es服务

#查看es进程
ps -ef|grep elasticsearch
#停止es运行
kill pid #pid是上面命令查出来的进程号

域名配置

三台机器都切换root用户,配置机器ip与域名对应关系,用于在服务发现时,集群内的各节点通过这个域名彼此可以找到彼此。

su
vim /etc/hosts192.168.43.69 es-node1
192.168.43.133 es-node2
192.168.43.225 es-node3

之后再切换回es用户

su es

配置修改

注释掉单节点

#注释掉单节点
#discovery.type: single-node

集群配置

注意:数据目录日志目录单独指定,要和之前单机启动区别开

配置说明

  • cluster.name:集群名称,指定一个(避免因未指定,启动一个es就会加入到集群中),配置好其他属性,然后集群同名才可加入到这个集群中。
  • node.name:节点名字,集群内唯一
  • node.master:是否有资格为master节点,默认为true,表示这个节点有资格成为主节点(master node)。主节点主要负责集群级别的操作,如创建或删除索引、跟踪集群中哪些节点是活动的等。
  • node.data:是否为data数据节点,默认为true,表示这个节点也是一个数据节点(data node),它会存储索引数据并处理搜索请求。
  • http.cors.enabled: true:允许跨源资源共享(CORS)。当你想从另一个域的网页或应用访问这个Elasticsearch节点时,CORS允许这样的请求
  • http.cors.allow-origin: “*” : 允许来自任何域的CORS请求。但出于安全考虑,通常不建议在生产环境中使用*,而是指定特定的域名。
  • path.data:定义了Elasticsearch用于存储索引数据的路径。
  • path.logs:定义了Elasticsearch存储其日志文件的路径。
  • network.host: 0.0.0.0:告诉Elasticsearch监听所有可用的网络接口。但在生产环境中,为了安全起见,通常会指定特定的IP地址或范围。
  • discovery.seed_hosts:定义了Elasticsearch在启动时用于发现其他集群成员的初始主机列表。可以通过es-node1、es-node2和es-node3这些主机域名或IP地址来访问其他节点。(上面配置了域名与机器ip的映射关系,因此可以使用机器域名)
  • cluster.initial_master_nodes:在Elasticsearch第一次启动时,需要指定哪些节点应该成为主节点(指定node.name指定的节点名字列表)。

配置节点1

vim config/elasticsearch.yml
# node-1
cluster.name: es-clusternode.name: node-1
node.master: true
node.data: truehttp.cors.enabled: true
http.cors.allow-origin: "*"path.data: /home/es/elasticsearch-7.17.3/data-cluster
path.logs: /home/es/elasticsearch-7.17.3/logs-clusternetwork.host: 0.0.0.0discovery.seed_hosts: ["es-node1","es-node2","es-node3"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

配置节点2

vim config/elasticsearch.yml
# node-2
cluster.name: es-clusternode.name: node-2
node.master: true
node.data: truehttp.cors.enabled: true
http.cors.allow-origin: "*"path.data: /home/es/elasticsearch-7.17.3/data-cluster
path.logs: /home/es/elasticsearch-7.17.3/logs-clusternetwork.host: 0.0.0.0discovery.seed_hosts: ["es-node1","es-node2","es-node3"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

配置节点3

vim config/elasticsearch.yml
# node-3
cluster.name: es-clusternode.name: node-3
node.master: true
node.data: truehttp.cors.enabled: true
http.cors.allow-origin: "*"path.data: /home/es/elasticsearch-7.17.3/data-clusterpath.logs: /home/es/elasticsearch-7.17.3/logs-clusternetwork.host: 0.0.0.0discovery.seed_hosts: ["es-node1","es-node2","es-node3"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

分别启动

bin/elasticsearch -d

验证集群搭建成功

在这里插入图片描述

Kibana配置修改

集群搭建成功,更改kibana的配置中的ES instances地址

elasticsearch.hosts: ["http://192.168.43.6:9200", "http://192.168.43.133:9200", "http://192.168.43.225:9200"]

重启Kibana

查看进程

netstat -tunlp|grep 5601
[es@polaris kibana-7.17.3-linux-x86_64]$ netstat -tunlp|grep 5601
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      7379/bin/../node/bi 

停止Kibana服务

kill 7379

启动Kibana

nohup bin/kibana &

验证

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/361931.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统,贴合物业工作场景,轻…

未来20年人工智能将如何塑造社会

照片由Brian McGowan在Unsplash上拍摄 更多资讯,请访问 2img.ai “人工智能会成为我们的救星还是我们的末日?” 几十年来,这个问题一直困扰着哲学家、科学家和科幻爱好者。 当我们踏上技术革命的边缘时,是时候透过水晶球&#x…

【java算法专场】双指针(上)

目录 前言 基本原理 对撞指针 快慢指针 移动零 算法思路 算法步骤 代码实现 算法分析 复写零 算法思路 算法步骤 代码实现 快乐数 算法思路 算法步骤 代码实现 盛最多水的容器 ​编辑算法思路 代码实现 前言 双指针是一种在数组或链表等线性数据结构中高效…

CV每日论文--2024.6.26

1、StableNormal: Reducing Diffusion Variance for Stable and Sharp Normal 中文标题:StableNormal:减少扩散方差以实现稳定且锐利的法线 简介:本文介绍了一种创新解决方案,旨在优化单目彩色输入(包括静态图片与动态…

CCS的安装步骤

CCS的安装步骤 安装之前有几件重要的事情要做: 首先肯定是要下载安装包啦!点击此处是跳到官网下载地址安装包不能处的路径中不能包含中文关闭病毒防护和防火墙,以及其他杀毒软件最后是在重启后进行安装 主要的步骤如下: 找到安…

PDF转成清晰长图

打开一个宝藏网址在线PDF转换器/处理工具 - 在线工具系列 点击图下所示位置 按照图下所示先上传文件,设置转换参数后点击转换,等待 等待转换完成后,可以在转换结果处选择下载地址,点击即可进行下载使用了。对比了其他几个网站的转…

.NET C# Asp.Net Core Web API 配置 Nginx

.NET C# Asp.Net Core Web API 配置 Nginx 目录 .NET C# Asp.Net Core Web API 配置 Nginx1 创建Asp.Net Core Web API应用2 接口代码3 发布4 启动服务5 Nginx安装6 配置Nginx7 启动Nginx8 测试9 Nginx日志10 附: 1 创建Asp.Net Core Web API应用 2 接口代码 Weath…

高考志愿填报选专业,解读“冲稳保”三步策略

高考界流传着一句话“一分压倒千人”,在特定的分数段,比别人高一分,高考排名就比别人高一千并不是危言耸听,而利用好这些分数和排名,则有利于我们人生进入新的阶段。 纵观每年的高考,无论是老师考生还是家…

“北京到底有谁在啊”影视APP开发,解锁最简单的快乐

随着电视剧《玫瑰的故事》在腾讯视频APP热播,APP也增加了很多热度,一款丰富的影视APP,无论是热门大片、经典影视剧、还是最新综艺节目,能畅享无限精彩的影视内容! 开发影视APP,需要专业的技术服务商来解决…

[leetcode]k-th-smallest-in-lexicographical-order 字典序的第K小数字

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int getSteps(int curr, long n) {int steps 0;long first curr;long last curr;while (first < n) {steps min(last, n) - first 1;first first * 10;last last * 10 9;}return steps;}int find…

kettle使用手册 安装9.0版本 建议设置为英语

0.新建转换的常用组件 0. Generate rows 定一个字符串 name value就是字符串的值 0.1 String operations 字段转大写 去空格 1. Json input 来源于一个json文件 1.json 或mq接收到的data内容是json字符串 2. Json output 定义Jsonbloc值为 data, 左侧Fieldname是数据库查…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接&#xff1a;安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

SAP ABAP 常用实用类

文章目录 前言一、输出 展示 数据信息 a.将 JSON 格式化为可读 并以弹框形式输出 b.将内表内容以表格形式输出 c.弹框形式显示 HTML 内容。也能显示包含js 的html。也可以显示pdf 图片 二、输入 获取 数据信息 a.弹框 添加 输入框…

算法基础详解

大O记法 为了统一描述&#xff0c;大O不关注算法所用的时间&#xff0c;只关注其所用的步数。 比如数组不论多大&#xff0c;读取都只需1步。用大O记法来表示&#xff0c;就是&#xff1a;O(1)很多人将其读作“大O1”&#xff0c;也有些人读成“1数量级”。一般读成“O1”。虽…

DM达梦数据库转换、条件函数整理

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

系统运维面试题总结(网络基础类)

系统运维面试题总结&#xff08;网络基础类&#xff09; 网络基础类第七层&#xff1a;应用层第六层&#xff1a;表示层第五层&#xff1a;会话层第四层&#xff1a;传输层第三层&#xff1a;网络层第二层&#xff1a;数据链路层第一层&#xff1a;物理层 类似面试题1、TCP/IP四…

802.11漫游流程简单解析与笔记_Part2_02_wpa_supplicant、cfg80211、nl80211内核与驱动的关系

wpa、cfg80211、nl80211内核与驱动的关系示意图如下&#xff1a; nl80211和cfg80211都是内核定义的标准接口&#xff0c;目的是规范驱动和应用的统一调用&#xff0c;wpa中常出现nl80211就是通过内核的nl80211接口调用对应cfg80211的部分&#xff0c;进而控制驱动收发数据或切换…

windows 安装 Kubernetes(k8s)

windows 安装 docker 详情见&#xff1a; https://blog.csdn.net/sinat_32502451/article/details/133026301 minikube Minikube 是一种轻量级的Kubernetes 实现&#xff0c;可在本地计算机上创建VM 并部署仅包含一个节点的简单集群。 下载地址&#xff1a;https://github.…

安宝特方案 | AR术者培养:AR眼镜如何帮助医生从“看”到“做”?

每一种新药品的上市都需要通过大量的临床试验&#xff0c;而每一种新的手术工具在普及使用之前也需要经过反复的实践和验证。医疗器械公司都面临着这样的挑战&#xff1a;如何促使保守谨慎的医生从仅仅观察新工具在手术中的应用&#xff0c;转变为在实际手术中实操这项工具。安…

mysql岗位实习----教务系统管理

教务管理系统 一、DDL CREATE TABLE users (user_id int(11) NOT NULL AUTO_INCREMENT COMMENT 用户ID,username varchar(50) NOT NULL COMMENT 用户名,password varchar(255) NOT NULL COMMENT 密码,gender enum(男,女) NOT NULL COMMENT 性别,email varchar(100) DEFAULT N…