Elasticsearch基础篇(二):Elasticsearch在windows和liunx上的安装部署

Elasticsearch简介

  • 前言
  • 1. Windows环境部署Elasticsearch
    • 1.1 下载并解压Elasticsearch压缩包
    • 1.2 命令行启动elasticsearch
    • 1.3 验证是否成功启动elasticsearch
    • 1.4 关闭Elasticsearch
    • 1.5 在Windows上安装Elasticsearch作为服务
  • 2. Liunx环境部署Elasticsearch
    • 安装 Elasticsearch 7.17.11 并配置
    • 1. 下载es数据库并上传到服务器
    • 2. 创建 Elasticsearch 用户和组
    • 3. 系统配置
      • 3.1 修改文件句柄数和线程数
      • 3.2 修改虚拟内存
      • 3.3 关闭交换空间(Swap)
    • 4. 修改 Elasticsearch 配置
    • 5. 设置目录权限
    • 6. 启动 Elasticsearch 服务
      • startes-single.sh
      • stopes-single.sh
    • 7. 开放防火墙端口
      • CentOS
      • Ubuntu

前言

本文基于官方文档:Installing Elasticsearch
基于官方给出的几种不同环境不同的安装方式,本文将会选择在

  • Install Elasticsearch with .zip on Windows
    使用.zip文件在Windows上安装Elasticsearch

  • Install Elasticsearch from archive on Linux or MacOS
    在Linux或macOS上从存档文件安装Elasticsearch

  • Install Elasticsearch with Docker (此种方式待定)
    使用Docker安装Elasticsearch

在这里插入图片描述

1. Windows环境部署Elasticsearch

  • 本文参考: Install Elasticsearch with .zip on Windows

  • Download Elasticsearch v7.9.3 : Elasticsearch v7.9.3

1.1 下载并解压Elasticsearch压缩包

在这里插入图片描述

Unzip it with your favourite unzip tool. This will create a folder called elasticsearch-7.9.3, which we will refer to as %ES_HOME%. In a terminal window, cd to the %ES_HOME% directory, for instance:

将解压目录作为es的home目录,在 elasticsearch-7.9.3文件夹地址栏输入cmd 进入命令行
在这里插入图片描述

1.2 命令行启动elasticsearch

  • 启动elasticsearch

    Running Elasticsearch from the command line.Elasticsearch can be started from the command line as follows:
    从命令行运行Elasticsearch,可以按以下方式从命令行启动Elasticsearch:

    .\bin\elasticsearch.bat
    
  • 启动页面
    在这里插入图片描述

  • 启动成功页面
    在这里插入图片描述

1.3 验证是否成功启动elasticsearch

Checking that Elasticsearch is running
You can test that your Elasticsearch node is running by sending an HTTP request to port 9200 on localhost:
检查Elasticsearch是否正在运行
可以通过向本地主机的端口9200发送HTTP请求来测试您的Elasticsearch节点是否正在运行:

win+r输入cmd回车后输入下列请求url

curl -X GET "localhost:9200/?pretty"

表示启动成功
在这里插入图片描述
或者在浏览器地址栏输入:localhost:9200
在这里插入图片描述

1.4 关闭Elasticsearch

  • Ctrl+C停止Elasticsearch

    By default, Elasticsearch runs in the foreground, prints its logs to STDOUT, and can be stopped by pressing Ctrl-C.
    默认情况下,Elasticsearch在前台运行,将日志打印到标准输出(STDOUT),可以通过按下Ctrl-C来停止它。

    在这里插入图片描述

  • 验证是否已经关闭(直接关闭上面的命令行窗口也可以停止es)
    在这里插入图片描述

1.5 在Windows上安装Elasticsearch作为服务

Elasticsearch can be installed as a service to run in the background or start automatically at boot time without any user interaction. This can be achieved through the elasticsearch-service.bat script in the bin\ folder which allows one to install, remove, manage or configure the service and potentially start and stop the service, all from the command-line.
Elasticsearch可以安装为服务,在后台运行或在启动时自动启动,而无需任何用户交互。这可以通过bin\文件夹中的elasticsearch-service.bat脚本实现,该脚本允许您从命令行安装、删除、管理或配置服务,并且还可以潜在地启动和停止服务。

e:\elasticsearch-7.9.3\bin>elasticsearch-service.batUsage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]

在这里插入图片描述

The script requires one parameter (the command to execute) followed by an optional one indicating the service id (useful when installing multiple Elasticsearch services).
该脚本需要一个参数(要执行的命令),后面可以跟一个可选参数来指示服务ID(在安装多个Elasticsearch服务时很有用)

以下是elasticsearch-service.bat脚本可用的命令及其描述:

命令描述
install安装Elasticsearch作为服务
remove移除已安装的Elasticsearch服务(如果已启动则停止服务)
start启动Elasticsearch服务(如果已安装)
stop停止Elasticsearch服务(如果已启动)
manager打开用于管理已安装服务的GUI界面
  • 指定服务名安装
    安装为服务,服务ID(务必唯一):elasticsearch-9200-test
    elasticsearch-service.bat install elasticsearch-9200-test
    
  • 命令行启动或停止服务
    • 启动服务
      elasticsearch-service.bat start elasticsearch-9200-test
      
      在这里插入图片描述
    • 停止服务
      elasticsearch-service.bat stop elasticsearch-9200-test
      
      在这里插入图片描述
  • 服务页面启动或停止服务
    win+r回车输入services.msc进入服务列表,右击选择启动或者停止
    在这里插入图片描述
  • 设置为开机自启
    右击服务名,点击属性,选择启动类型为自动
    在这里插入图片描述

2. Liunx环境部署Elasticsearch

安装 Elasticsearch 7.17.11 并配置

本文介绍如何在 Linux 操作系统上下载、安装 Elasticsearch 7.17.11,并进行必要的配置。在centos或者是unbuntu中配置启动的流程基本一致,开放端口处的脚本不相同。

1. 下载es数据库并上传到服务器

首先,访问 Elasticsearch 下载页面 并下载 Elasticsearch 7.17.11
在这里插入图片描述
点击 “下载” 并将下载的文件上传到服务器指定目录中
在这里插入图片描述

在服务器上,使用以下命令解压 Elasticsearch:

tar -zxvf elasticsearch-7.17.11-linux-x86_64.tar.gz

在这里插入图片描述

2. 创建 Elasticsearch 用户和组

创建一个名为 “es” 的用户和一个名为 “es” 的群组,然后将用户添加到该群组中:

# 新建群组esgroupadd es
# 新建用户es并指定群组为esuseradd -g es es
# 设置用户密码 passwd es  
# usermod 将用户添加到某个组groupusermod -aG root es

3. 系统配置

3.1 修改文件句柄数和线程数

为了防止 Elasticsearch 用户拥有的可创建文件描述符权限过低而导致错误,需要修改文件句柄数和线程数。编辑 /etc/security/limits.conf 文件并添加以下内容:

# 文件句柄
es  soft nofile 65536
es  hard nofile 65536
# 线程
es  soft nproc 4096
es  hard nproc 4096

保存退出后,需要重新启动系统

以上配置是为了解决:

报错问题:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
问题描述:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;

3.2 修改虚拟内存

编辑 /etc/sysctl.conf 文件并添加以下内容:

vm.max_map_count=262144

保存退出后,刷新配置文件:

sysctl -p

验证是否修改成功:

sysctl vm.max_map_count

以上配置是为了解决:
报错问题:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

3.3 关闭交换空间(Swap)

官方建议:把内存的一半给Lucene+不要超过32G+关闭swap
ES建议要关闭 swap 内存交换空间,禁用swapping。因为当内存交换到磁盘上,一个100微秒的操作可能变成 10毫秒,然后100 微秒的操作时延累加起来,可以看出 swapping 对于性能的影响是致命的

vim /etc/fstab

注释含有swap一行
在这里插入图片描述
注释前:
在这里插入图片描述

保存退出后需要系统重启!

注释后:
在这里插入图片描述

4. 修改 Elasticsearch 配置

编辑 Elasticsearch 配置文件 conf/elasticsearch.yml 并根据你的需求进行配置,以下是一些示例配置项:

# 禁用了 es 的机器学习功能(Machine Learning)减少资源消耗
xpack.ml.enabled: false
# 设置 Elasticsearch 集群的名称
cluster.name: es-single
# 设置当前 Elasticsearch 节点的名称
node.name: node
# 数据目录
path.data: /home/es/path/node/data
# 日志目录
path.logs: /home/es/path/node/logs
# 当前主机的 IP
network.host: 192.168.0.10
# 暴露的 HTTP 端口
http.port: 11700
# 暴露的 Transport 端口
transport.port: 11710
# 设置节点发现的种子主机列表
discovery.seed_hosts: ["192.168.0.10:11710"]
# 设置初始的主节点列表,新节点将联系这些主节点以加入集群
cluster.initial_master_nodes: ["node"]

5. 设置目录权限

设置 Elasticsearch 数据目录所属的用户和组:

chown -R es:es /mnt/data/elasticsearch-7.17.11

6. 启动 Elasticsearch 服务

注意当前目录是在 ../elasticsearch-7.17.11

创建启动和停止 Elasticsearch 服务的脚本:

startes-single.sh

#!/bin/bash
cd "$(dirname "$0")"
# -d:后台(daemon)方式运行 Elasticsearch
./bin/elasticsearch -d -p pid

stopes-single.sh

#!/bin/bash
cd "$(dirname "$0")"
if [ -f "pid" ]; thenpkill -F pid
fi

给这两个脚本赋予执行权限:

chmod 755 startes-single.sh stopes-single.sh
chown es:es startes-single.sh stopes-single.sh

然后,以 Elasticsearch 用户身份启动 Elasticsearch 服务:

su - es
cd /mnt/data/elasticsearch-7.17.11
./startes-single.sh

7. 开放防火墙端口

CentOS

# 查看防火墙状态
systemctl status firewalld
# 查看开放的端口
firewall-cmd --query-port=9200/tcp
# 添加端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
# 重载防火墙
firewall-cmd --reload
# 再次查看端口是否已经开放
firewall-cmd --query-port=9200/tcp

Ubuntu

# 查看防火墙状态
sudo ufw status
# 开放端口 9200
sudo ufw allow 9200/tcp
# 查看已添加的规则
sudo ufw status numbered
# 查看防火墙状态
sudo ufw status

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

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

相关文章

逆变器下垂控制单机

仿真控制参数 主电路 坐标变换 功率计算 下垂控制 电压电流双闭环控制 结果变量监控 断路器闭合,负载突增 负载突增,有功和无功突增 有功增加,频率减小 无功增加,参考电压减小

基于JavaWeb技术的在线考试系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 考试统计管理 专业列表管理 忘记密码人员登记管理 修改密码 试卷信息 考试信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理…

Linux Vi编辑器基础操作指南

Linux Vi编辑器基础操作指南 Linux中的Vi是一个强大的文本编辑器,虽然它有一些陡峭的学习曲线,但一旦掌握了基本操作,它就变得非常高效。以下是Vi编辑器的一些基本用法: 打开Vi编辑器: vi 文件名退出Vi编辑器&#xff…

pygame - 贪吃蛇小游戏

蛇每吃掉一个身体块,蛇身就增加一个长度。为了统一计算,界面的尺寸和游戏元素的位置都是身体块长度的倍数 1. 上下左右方向键(或者ASDW键)控制蛇的移动方向 2. 空格键暂停和继续蛇的身体图片文件,复制到项目的asset\im…

Python逐日填补Excel中的日期并用0值填充缺失日期的数据

本文介绍基于Python语言,读取一个不同的列表示不同的日期的.csv格式文件,将其中缺失的日期数值加以填补;并用0值对这些缺失日期对应的数据加以填充的方法。 首先,我们明确一下本文的需求。现在有一个.csv格式文件,其第…

1.7.C++项目:仿muduo库实现并发服务器之Poller模块的设计

项目完整在: 文章目录 一、Poller模块:描述符IO事件监控模块二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计 四、封装思想五、代码(一)框架&#…

轻量级网络IP扫描器WatchYourLAN

什么是 WatchYourLAN ? WatchYourLAN 是一款带有 Web GUI 的轻量级网络 IP 扫描器。支持使用不同的主题和色彩模式进行个性化设置。 准备工作 扫描网络,首先要找到对应的网络接口,一般常见的包括 eth0、lo、docker0 等,可以在 SS…

Spring的依赖注入(DI)以及优缺点

Spring的依赖注入(DI):解释和优点 依赖注入(Dependency Injection,简称DI)是Spring框架的核心概念之一,也是现代Java应用程序开发的重要组成部分。本文将深入探讨DI是什么,以及它的…

react项目从webpack迁移到vite的解决方案

虽然webpack是前端工程编译工具的王者,但是最近vite牛逼吹的震天响,说什么开发/生产打包速度甩webpack 100条街。不管是不是事实,总得尝试一下吧。 于是说干就干,在网上找了很多资料,终于搞定了,以下就是r…

[Linux]线程互斥

[Linux]线程互斥 文章目录 [Linux]线程互斥线程并发访问问题线程互斥控制--加锁pthread_mutex_init函数pthread_mutex_destroy函数pthread_mutex_lock函数pthread_mutex_unlock函数锁相关函数使用示例使用锁的细节加锁解锁的实现原理 线程安全概念常见的线程不安全的情况常见的…

C++:stl:stack、queue、priority_queue介绍及模拟实现和容量适配器deque介绍

本文主要介绍c中stl的栈、队列和优先级队列并对其模拟实现,对deque进行一定介绍并在栈和队列的模拟实现中使用。 目录 一、stack的介绍和使用 1.stack的介绍 2.stack的使用 3.stack的模拟实现 二、queue的介绍和使用 1.queue的介绍 2.queue的使用 3.queue的…

“在 ArchiMate EA 建模中的组合关系:构建块和依赖关系

简介 在企业架构(EA)建模领域,结构关系在描绘架构内静态一致性方面起着至关重要的作用。其中一个关键的结构关系是组合关系,这是 ArchiMate 语言中深植的概念,提供了一个全面的框架,用于表达元素如何组合形…