《再也不怕elasticsearch》es环境搭建、集群搭建

2023-11-03

Elasticsearch环境搭建

大家好我是迷途,一个在互联网行业,摸爬滚打的学子。热爱学习,热爱代码,热爱技术。热爱互联网的一切。再也不怕elasticsearch系列,帅途会慢慢由浅入深,为大家剖析一遍,各位大佬请放心,虽然这个系列帅途有时候更新的有点慢,但是绝对不会烂尾!如果你喜欢本系列的话,就快点赞关注收藏安排一波吧~

什么是Elasticsearch

ElasticSearch简称ES,他是一个开源的搜索引擎基于Lucene是当下最先进、高性能、全功能的搜索引擎库,Java编写。他对Lucene进行了封装,简化了开发者操作

ES的作用

  • 全文搜索引擎
  • 分布式试试文档存储引擎
  • 分布式实时分析搜索引擎
  • 可拓展性高,并且支持PB级别数据存储(1PB=1024TB)

ES发家史

在这里插入图片描述

简单来说,就是一个程序员为了在泡妞的同时为了方便工作做出来的一个基于Lucene的搜索引擎

ES安装

这里使用winscp工具上传
在这里插入图片描述
解压:在你上传的文件目录下解压es

tar -zxvf elasticsearch-7.3.2-no-jdk-linux-x86_64.tar.gz 
  • 新增es启动用户,并授权(注:在es5.0之后,出于考虑,不允许root用户直接启动es,所以我们在这里新增用户)
useradd es #添加一个名为es用户
passwd es #将它的密码设置为es
chown -R es:es  /java/elasticsearch-7.3.2/ #给es用户授予文件所在目录权限

在这里插入图片描述
在这里插入图片描述

  • 修改es中config目录下的elasticsearch.yml文件
    这里博主直接使用winscp工具修改,不习惯的朋友在es的config目录找到elasticlsearch.yml使用vim修改即可。修改这里是因为当我们在服务器配置了es之后,es正常启动却无法访问。
    在这里插入图片描述
  • 测试启动es
ES_JAVA_OPTS="-Xms2g -Xmx2g" ./elasticsearch -d
# ES_JAVA_OPTS="-Xms2g -Xmx2g" 选填,设置es的启动参数,不写则默认读取配置文件中jvm.options中的配置
# -d 选填,后台启动

在这里插入图片描述
出现两个问题:
1、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
用户拥有内存权限太小,我们切换root用户修改内存权限即可

在 /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144
在这里插入图片描述
修改/etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

在这里插入图片描述

修改并保存后执行

sysctl -p #刷新配置

在这里插入图片描述
2、the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
// 简单来说就是叫你配置节点

在es的config包中找到elasticsearch.yml取消注释并配置节点
cluster.initial_master_nodes: [“node-1”]
在这里插入图片描述

  • 测试是否启动成功,es默认端口号是9200
curl 127.0.0.1:9200

在这里插入图片描述
外网访问
在这里插入图片描述
注:有些小可爱,发现外网无法访问,curl却可以成功,请检查你服务器端口是否开放

集群搭建

  • 配置主节点:主节点配置中,需要手动配置该节点信息。在我们启动集群之后,es会根据我们的配置信息进行选举

在这里插入图片描述
在这里插入图片描述

  • 配置从节点:在从节点的配置中,大体配置都是一样,如果是单机部署集群,那么需要更改端口号。否者会端口号占用启动不成功,在集群中所有节点集群名称必须一致,但节点名称不可重复。集群之间的默认访问端口是9300
    在这里插入图片描述

在这里插入图片描述
+主节点配置

# 集群名称
cluster.name: "es_cluster"
# 节点名称,这儿我直接取名为 master
node.name: master
# 是否可以成为master节点
node.master: true
# 是否允许该节点存储数据,默认开启
node.data: true
 
# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: 0.0.0.0
 
# 设置对外服务的http端口,默认为9200
http.port: 9200
 
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
 
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
 
# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["127.0.0.1"]
  • 从节点配置
# 集群名称,处于同一个集群所有节点,该名称必须相同
cluster.name: "es_cluster"
 
# 节点名称
node.name: slave1
# 是否可以成为主节点
node.master: false
# 是否允许该节点存储数据,默认开启
node.data: true
 
# 支持所有ip访问
network.host: 0.0.0.0
 
# 设置对外服务的http端口,默认为9200,这里我们修改为 9201,不然会有端口冲突
http.port: 9201
 
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

# 集群发现
discovery.seed_hosts: ["127.0.0.1:9300"]
  • 使用head查看集群状态
    在这里插入图片描述

注意:es5.0版本与7.0版本在配置文件上有些许不同,小伙伴们在搭建环境的时候需要注意使用es的版本

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《再也不怕elasticsearch》es环境搭建、集群搭建 的相关文章

  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • 静态加密数据时 ElasticSearch 的工作原理

    我的数据存在于 DynamoDB 中 为了启用全文搜索 我使用 Lambda 函数将其转发到 ES 索引 但如果可能的话 我希望在不影响搜索效率的情况下对数据进行加密 但我不确定我的搜索在这里如何进行 我找不到任何文档 文章来说明当数据静态
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • Rails Searchkick / Elasticsearch has_many 和belongs_to 关联

    我尝试使用 Searchkick 运行搜索并基于多个模型返回 我的书本模型包含这个 class Book lt ActiveRecord Base searchkick has many book subjects has many sub
  • 如何将不带空格的单词与带空格的 ElasticSearch 数据进行匹配

    在我的elasticsearch中 我有数据 New York 我想查询并匹配 NewYork 请注意查询字符串中没有空格 我怎样才能实现这个目标 有什么分析仪可以在这里提供帮助吗 我认为你可以申请木瓦令牌过滤器 https www ela
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 如何在线程创建和退出时调用函数?

    include
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 如何更新与elasticsearch中的查询匹配的多个文档

    我的文档最初只包含 url 已分析 和 respsize 未分析 字段 我想更新与 url 匹配的文档并添加新字段 类别 我是说 首先doc1 url http stackoverflow com users 4005632 mehmet
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了

随机推荐

  • 原代码阅读与分析

    服务计算web技术之原代码阅读与分析 先给出分析代码的链接 mux go 路由Router 创建Router实例 type Router struct Configurable Handler to be used when no rout
  • 编译原理实验 实验二 LL(1)分析法 Python实现

    1 实验目的 通过完成预测分析法的语法分析程序 了解预测分析法和递归子程序法的区别和联系 使学生了解语法分析的功能 掌握语法分析程序设计的原理和构造方法 训练学生掌握开发应用程序的基本方法 有利于提高学生的专业素质 为培养适应社会多方面需要
  • python更换版本。

    问题背景 由于ddddocr库需要python3 9及以下的版本 本人安装的为python3 11版本 所以需要更换版本 解决办法 1 安装所需要版本的pyhton我安装的是python3 9 之前安装的python3 11是不需要卸载的
  • 机器学习笔记(一):监督学习与无监督学习概述

    机器学习的两种模型 监督学习和无监督学习 一 监督学习 supervised learning 监督学习是实际应用中使用更多的机器学习类型 1 监督学习就是学习从x到y 即学习从输入到输出的映射的算法 关键特征就是提供学习算法的实例供机器学
  • Microsoft Dynamics CRM 2015 之安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错...

    错误详细信息 安装 Microsoft NET Framework 3 5 时出错 启用 Windows 功能 NetFx3 时出错 错误代码 2146498298 请尝试从 Windows 管理工具启用 Windows 功能 NetFx3
  • LeetCode日记

    题目 实现 strStr 函数 给定一个 haystack 字符串和一个 needle 字符串 在 haystack 字符串中找出 needle 字符串出现的第一个位置 从0开始 如果不存在 则返回 1 说明 当 needle 是空字符串时
  • html input date不起效,JavaScript – HTML 5 input type =“date”在Firefox中不起作用

    Firefox doesn t support HTML5 s 你有两个选择 gt 总是使用Javascript日期时间选择器 或 gt 检查浏览器是否支持该标签 如果是使用它 如果没有 然后回退在javascript datepicker
  • frida启动报错:./frida-server-15.1.27-android-x86_64: can‘t execute: Is a directory

    报错场景 在MuMu模拟器上安装frida server 启动的时候报错 报错信息如下 frida server 15 1 27 android x86 64 can t execute Is a directory 原因剖析 报错信息上显
  • 10g r2 RAC Dataguard 3 nodes

    最近在深圳实施windows 2003 上的oracle RAC项目 原来计划是两个节点 结果客户要求三个节点 因为是他们认为购买的服务器只有二个cpu 原来计划是四个cpu 然后还要在做dataguard 一开始安装很顺利 两个节点测试也
  • HTTP状态 405 - 方法不允许

    错误描述 HTTP状态 405 方法不允许 类型 状态报告 消息 Request method GET not supported 描述 请求行中接收的方法由源服务器知道 但目标资源不支持 此时的原因是请求类型错误 网页是get请求 但是实
  • springMVC项目如何配置tomcat

    先打开项目然后按图片所示操作 最后点击ok就可以启动项目啦
  • 【机器学习教程】四、随机森林:从论文到实践

    引言 随机森林 Random Forest 是机器学习领域中一种强大的集成学习算法 它的优秀性能和广泛应用使得它成为了机器学习领域的一个重要里程碑 本文将从算法的发展历程 重要论文 原理以及实际应用等方面详细介绍随机森林 并提供一个复杂的实
  • 时间段随机 java_java生成指定范围的随机日期

    有这样一个需求 构造一个方法 随机生成1990 12 31 00 00 00到 2013 12 31 00 00 00之间任意一个时间点 思路是这样 在javaAPI中 Date类型和long类型很好转化 所以我们可以把问题转化为 求两个l
  • Selinux

    1 Selinux的影响 对于文件的影响 当selinux开启时 内核会对每个文件及每个开启的程序进行标签加载 标签内记录程序和文件的安全上下文 context 对于程序功能的影响 当selinux开启会对程序的功能加载开关 并设定此开关的
  • HBuilder 打包 H5 APP 进行认证登录

    H5 Mui App 统一身份认证登录过程的记录 在 h5 app 开发的过程中 用到到统一认证登录的功能 统一身份认证登接口 来进行登录验证 在开发 h5 app 的时候 一般会提供 app 网页版的 这时候会发现 网页版和打包的APP几
  • Perl知识点滴

    函数多返回值 v1 abc v2 bcd v3 v4 upcase v1 v2 sub upcase my parms for parms tr a z A Z return wantarray parms parms 0 print v3
  • 【数据结构】6.4 AVL树(C++)

    数据结构 6 4 AVL树 没有学过二叉搜索树 也叫二叉排序树或二叉查找树 的小伙伴们建议先学习一下 这样阅读会更轻松哦 点我学习二叉搜索树 目录 一 AVL树的概念 1 二叉搜索树的问题 2 AVL树的性质 二 AVL树实现平衡的方法 1
  • 为啥要用三层结构

    开发人员可以只关注整个结构中的其中某一层 可以很容易的用新的实现来替换原有层次的实现 可以降低层与层之间的依赖 有利于标准化 利于各层逻辑的复用 结构更加的明确 在后期维护的时候 极大地降低了维护成本和维护时间 体现了高内聚 低耦合的思想
  • DocuCentre SC2020 打印机连接

    驱动下载地址 https support fb fujifilm com setupDriverForm do ctry code CN lang code zh CN d lang zh CN pid DCSC2020 anchor0 安
  • 《再也不怕elasticsearch》es环境搭建、集群搭建

    Elasticsearch环境搭建 大家好我是迷途 一个在互联网行业 摸爬滚打的学子 热爱学习 热爱代码 热爱技术 热爱互联网的一切 再也不怕elasticsearch系列 帅途会慢慢由浅入深 为大家剖析一遍 各位大佬请放心 虽然这个系列帅