[000-01-018].第3节:Linux环境下ElasticSearch环境搭建

我的后端学习笔记大纲

我的ElasticSearch学习大纲


1.Linux系统搭建ES环境:

1.1.单机版:

a.安装ES-7.8版本

  • 1.下载ES:
    在这里插入图片描述
  • 2.上传与解压:将下载的tar包上传到服务器software目录下,然后解压缩:tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module
    在这里插入图片描述
  • 3.将文件名更改成es-cluster:mv elasticsearch-7.8.0 es-cluster:
    在这里插入图片描述
  • 4.将软件分发到另外两台服务器上:
    在这里插入图片描述
  • 5.创建用户: 因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要在每个节点中创建新用户,在 root 用户中创建新用户在这里插入图片描述
  • 6.修改配置文件:修改/opt/module/es/config/elasticsearch.yml 文件,分发文件:
    # 加入如下配置
    cluster.name: elasticsearch
    node.name: node-1
    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: ["node-1"]
    
  • 7.修改/etc/security/limits.conf
    # 在文件末尾中增加下面内容
    # 每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    
  • 8.修改/etc/security/limits.d/20-nproc.conf
    # 在文件末尾中增加下面内容
    # 每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    # 操作系统级别对每个用户创建的进程数的限制
    * hard nproc 4096
    # 注:* 带表 Linux 所有用户名称
    
  • 9.修改/etc/sysctl.conf
    # 在文件中增加下面内容
    # 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
    vm.max_map_count=655360
    
  • 10.重新加载:sysctl -p
  • 11.启动软件:
    cd /opt/module/es/
    #前台启动
    bin/elasticsearch
    #后台启动
    bin/elasticsearch -d
    
  • 12.测试软件:浏览器中输入地址:http://192.168.148.3:9200/
    在这里插入图片描述

b.安装ES6.8.0版本安装

  • 1.下载ES6.8.0版本安装并上传到服务器上jdk
  • 2.JDK安装:
# 1.在官方网站下载ES
- wget http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.tar.gz# 2.安装JDK(必须JDK1.8+)
- rpm -ivh jdk-8u181-linux-x64.rpm
/*注意:默认安装位置 /usr/java/jdk1.8.0_171-amd64*/# 3.配置环境变量
- vim /etc/profile在文件末尾加入:export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64export PATH=$PATH:$JAVA_HOME/bin# 4.重载系统配置
- source /etc/profile
  • 3.安装ES服务:
# 1. ES不能以root用户身份启动必须创建普通用户
- a.在linux系统中创建新的组groupadd es
- b.创建新的用户es并将es用户放入es组中useradd es -g es 
- c.修改es用户密码passwd es
# 2.使用普通用户登录并上传安装包3.解压缩elasticsearch
- tar -zxvf elasticsearch-6.4.1.tar.gz
# 4.进入ES安装目录查看目录结构
- bin                         可执行的二进制文件的目录
- config                    	配置文件的目录
- lib                         运行时依赖的库
- logs         								运行时日志文件
- modules											运行时依赖的模块
- plugins                   	可以安装官方以及第三方插件
# 5.进入bin目录中启动ES服务
- ./elasticsearch
- 出现下图红色日志说明启动成功:# 6.执行如下命令测试客户端操作
- curl http://localhost:9200
  • 3.开启远程连接权限
    • 注意:ES服务默认启动是受保护的,只允许本地客户端连接,如果想要通过远程客户端访问,必须开启远程连接
# 1.开启ES远程访问
- vim elasticsearch.yml 将原来network修改为以下配置:network.host: 0.0.0.0

c.Dcoke安装ES

  • 1.我们以安装Elasticsearch-7.4.2版本为例,下载镜像文件:注意版本要对应
docker pull elasticsearch:7.4.2  存储和检索数据
docker pull kibana:7.4.2         可视化检索数据
  • 2.创建elasticsearch实例:
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.ymlchmod -R 777 /mydata/elasticsearch/ 保证权限docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
  • 4.测试:
    在这里插入图片描述

1.2.集群版:

  • 1.Elasticsearch集群规划:
关系型数据库(比如Mysql)非关系型数据库(Elasticsearch)非关系型数据库(Elasticsearch)
centos7hadoop103192.168.148.3
centos7hadoop104192.168.148.4
centos7hadoop105192.168.148.5

a.版本ES-6.8.0集群:

b.版本ES-7.8.0集群:

  • 1.解压压缩包:tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module
    在这里插入图片描述
  • 2.将文件名更改成es-cluster:mv elasticsearch-7.8.0 es-cluster:
    在这里插入图片描述
  • 3.创建用户:Elasticsearch 因为安全问题,不允许 root 用户直接运行,所以要在每个节点中创建新用户,在 root 用户中创建新用户
useradd es #新增 es 用户
passwd es #为 es 用户设置密码
userdel -r es #如果错了,可以删除再加
chown -R es:es /opt/module/es-cluster #文件夹所有者

在这里插入图片描述

  • 4.将软件分发到另外两台服务器上:
    在这里插入图片描述
  • 5.配置目录:安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径
    • /opt/module/es-cluster/ # elasticsearch 安装目录
    • /opt/module/es-cluster/config/elasticsearch.yml #elasticsearch的配置文件
    • /opt/module/es-cluster/config/jvm.options #JVM相关的配置,内存大小等等
    • /data/elk1/data # 数据存放路径
    • /data/elk1/logs # 日志存放路径
  • 6.创建用于存放数据与日志的目录:数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,需要手动创建日志与数据文件路径
mkdir -p /data/elk1/data
mkdir -p /data/elk1/logs
  • 7.集群配置:vim /opt/module/es-cluster/config/elasticsearch.yml(yml文件有严格的语法要求,在配置的时候,一定要注意语法,这里容易出现错误)
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-1
#ip 地址,每个节点的地址不能重复network.host: hadoop103
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-2
#ip 地址,每个节点的地址不能重复network.host: hadoop104
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名称cluster.name: cluster-es
# 节点名称,每个节点的名称不能重复node.name: node-3
#ip 地址,每个节点的地址不能重复network.host: hadoop105
#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200
## head 插件需要这打开这两个配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16
  • 三台机器不一样的elasticsearch.yml配置点如下
node.name: node-1      #192.168.148.3
node.name: node-2      #192.168.148.4
node.name: node-3      #192.168.148.5
network.host: 192.168.148.3	#192.168.148.3
network.host: 192.168.148.4	#192.168.148.4
network.host: 192.168.148.5	#192.168.148.5
  • 8.JVM配置:
    • 由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
    • 但是其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。
 vim /opt/module/es-cluster/config/jvm.options
-Xms1g   修改为 ===>  -Xms2g
-Xmx1g   修改为 ===>  -Xmx2g
  • 9.修改/etc/sysctl.conf:添加如下配置后并重新加载:sysctl -p
vm.max_map_count=655360
  • 10.切换用户es后,切到es的安装目录后,启动服务:./bin/elasticsearch

c.使用Docker部署ES集群版:


3.Kinbana环境搭建

  • 1.创建Kinbana实例:
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.148.3:9200 -p 5601:5601 \
-d kibana:6.8.1
  • 5.访问测试:192.168.148.3:5601
    在这里插入图片描述

4.Logstaish环境搭建:


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

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

相关文章

人工智能算法工程师(中级)课程21-深度学习中各种优化器算法的应用与实践、代码详解

大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(中级)课程21-深度学习中各种优化器算法的应用与实践、代码详解。本文将介绍PyTorch框架下的几种优化器,展示如何使用PyTorch中的优化器,我们将使用MNIST数据集和一个简单…

增材制造(3D打印):为何备受制造业瞩目?

在科技浪潮的推动下,增材制造——即3D打印技术,正逐步成为制造业领域的璀璨新星,吸引了航空航天、汽车、家电、电子等众多行业的目光。那么,是什么让3D打印技术如此引人注目并广泛应用于制造领域?其背后的核心优势又是…

Unity-可分组折叠的Editor

Unity-可分组折叠的Editor 🥗功能介绍🍭用法 🥗功能介绍 在序列化的字段上标记特性:[FoldoutGroup(“xxx”)],inspector上就会被分组折叠显示。 (没有被指定的字段自动放到Default组中) 传送门&#x1f30…

【Python】1.基础语法(1)

文章目录 1.变量的语法1.1定义变量1.1.1硬性规则(务必遵守)1.1.2软性规则(建议遵守) 1.2使用变量 2.变量的类型2.1整型2.2浮点型2.3 字符串类型2.4布尔类型2.5其他类型2.6 动态类型特性 3.注释3.1 注释行3.2 文档字符串 3.3 如何批量注释3.4注释的规范 4…

深信服上半年亏损5.92亿,营收同比降低2.3亿

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

如何使用ssm实现网络安全宣传网站设计

TOC ssm177网络安全宣传网站设计jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管…

【SQL】指定日期的产品价格

目录 题目 分析 代码 题目 产品数据表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ (product_id, chang…

九、前端中的异步方法Promise,Promise详解

文章目录 1.Promise简介什么是promise为什么使用Promisepromise中的状态 2.Promis的用法 1.Promise简介 什么是promise Promise是异步编程的一种解决方案,它的构造函数是同步执行的,then 方法是异步执行的。 为什么使用Promise 在JavaScript的世界中…

Java 入门指南:List 接口

Collection 接口提供了一系列用于操作和管理集合的方法,包括添加、删除、查询、遍历等。它是所有集合类的根接口,包括 List、Set、Queue 等。 Collection 接口常见方法 add(E element):向集合中添加元素。 addAll(Collection col)&#xff1…

洛谷 P2569 [SCOI2010] 股票交易

题目来源于:洛谷 题目本质:动态规划,单调队列 解题思路: 方程f[i][j]表示第 i 天结束后,手里剩下 j 股的最大利润,则不买不卖:f[i][j]f[i-1][j]。 买入:f[i][j]max{f[i-w-1][k]k*…

vue3+ts+Go使用百度地图路书实现历史轨迹回放、轨迹回放进度、聚合点、自定义弹框和实时监控视频、多路视频轮巡播放

前言 分享一个刚做完项目集成技术,一个车辆行驶轨迹监控、行车视频监控、对特种车辆安全监管平台,今年政府单位有很多监管平台项目,例如:渣土车监控、租出车监管、危害气体运输车监管等平台,这些平台都有车辆行驶轨迹…

uniapp实现区域滚动、下拉刷新、上滑滚动加载更多

背景&#xff1a; 在uniapp框架中&#xff0c;有两种实现办法。第1种&#xff0c;是首先在page.json中配置页面&#xff0c;然后使用页面的生命周期函数&#xff1b;第2种&#xff0c;使用<scroll-view>组件&#xff0c;然后配置组件的相关参数&#xff0c;包括但不限于&…

Spring(一篇就懂)

Spring框架简介 Spring 是一个开源的Java企业级应用开发框架。 特点&#xff1a; 控制反转&#xff08;IoC&#xff09;&#xff1a;通过依赖注入&#xff08;DI&#xff09;减少组件间的耦合&#xff0c;由Spring容器负责对象的创建和绑定。 面向切面编程&#xff08;AOP&am…

企业高性能web服务器(nginx)

目录 Web服务器基础介绍 正常情况下的单次web服务器访问流程 Apache 经典的 Web服务端 Apache prefork 模型 Apache work模型 Apache event模型 服务端的I/O流程 服务器的I/O 磁盘I/O 网络I/O 网络I/O处理过程 I/O模型 I/O模型相关概念 同步/异步 阻塞/非阻塞 网…

面向对象06:super关键字详解

本节内容视频链接&#xff1a;面向对象10&#xff1a;Super详解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p69&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java中的‌super关键字是一个特殊的引用&#xff0c;‌用于指代父类对象‌。‌在子…

鸿蒙HarmonyOS实战:IPC与RPC设备内进程通信

基本 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动&#xff0c;用于跨设备跨进…

学习yolo+Java+opencv简单案例(三)

主要内容&#xff1a;车牌检测识别&#xff08;什么颜色的车牌&#xff0c;车牌号&#xff09; 模型作用&#xff1a;车牌检测&#xff0c;车牌识别 文章的最后附上我的源码地址。 学习还可以参考我前两篇博客&#xff1a; 学习yoloJavaopencv简单案例&#xff08;一&#xff0…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门班-task2

一开始假设的模型是ybw1&#xff0c;但在可视化预测值和真实值后&#xff0c;发现数据具有规律性&#xff0c;因此换成7天 额&#xff0c;不知道为什么要在这里这样引入sigmoid函数&#xff0c;有点怪怪的&#xff0c;但确实用无限多的分段函数就能拟合很多曲线 所以这里的意…

5步实现猫眼电影爬虫与k-means算法可视化分析

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

框架——特殊符号处理,模糊查询

1.特殊符号处理 在 mybatis 中的 xml 文件中&#xff0c;存在一些特殊的符号&#xff0c;比如&#xff1a;<、>、"、&、<>等&#xff0c;正常书写mybatis 会报错&#xff0c;需要对这些符号进行转义。具体转义如下所示&#xff1a; 特殊字符 转义字符 &…