ElasticSearch概述及Window和Linux环境下安装

一、ElasticSearch

1、ElasticSearch概述

ES(Elasticsearch)是一个基于开放源代码的分布式搜索引擎,用于快速和灵活地搜索和分析大量数据。它是构建在Apache Lucene之上的,通过提供一个简单而强大的RESTful API来实现全文搜索、结构化搜索、分析和数据可视化的功能。

ES的设计目标是具有高度可扩展性和可靠性,可以在大规模分布式环境中处理PB级别的数据。它通过将数据分片和复制到多个节点上实现分布式存储和搜索,从而提供高性能和高可用性。

ES支持各种类型的数据,包括文本、数字、地理位置、日期等,可以进行复杂的查询和聚合操作,支持全文搜索、模糊搜索、过滤搜索、地理位置搜索等。它还提供了灵活的索引和数据分析功能,可以通过实时仪表板和可视化工具进行数据可视化和监控。

ES还提供了各种插件和集成工具,使其能够与各种数据存储和处理系统集成,例如Hadoop、Spark、Kafka等。它还提供了强大的安全功能,包括身份验证和访问控制,以保护数据的安全性。

总而言之,ES是一个强大而灵活的搜索和分析引擎,适用于各种应用场景,包括企业搜索、日志分析、数据分析和可视化等。它的易用性和可扩展性使得它成为许多公司和组织的首选解决方案。
在这里插入图片描述

2、ElasticSearch使用

在这里插入图片描述

3、ES和solr的差别

在这里插入图片描述

ElasticSearch简介

Solr的简介

在这里插入图片描述

Lucene简介

在这里插入图片描述

4、Solr 和 ElasticSearch 比较

Solr vs ElasticSearch

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

二、ElasticSearch安装

JDK8,最低要求

使用Java开发,必须保证ElasticSearch的版本与Java的核心jar包版本对应!(Java环境保证没错)

这里在windows上进行安装

1、Windows下安装

1、安装

下载地址:https://www.elastic.co/cn/downloads/

历史版本下载:https://www.elastic.co/cn/downloads/past-releases/

解压即可(尽量将ElasticSearch相关工具放在统一目录下)

在这里插入图片描述

在这里插入图片描述

2、熟悉目录

在这里插入图片描述

bin 启动文件目录
config 配置文件目录1og4j2 日志配置文件jvm.options java 虚拟机相关的配置(默认启动占1g内存,内容不够需要自己调整)elasticsearch.ym1 elasticsearch 的配置文件! 默认9200端口!跨域!
1ib 相关jar包
modules 功能模块目录
plugins 插件目录ik分词器
3、启动

一定要检查自己的java环境是否配置好

在这里插入图片描述

访问127.0.0.1:9200
在这里插入图片描述

2、安装可视化界面

elasticsearch-head

使用前提:需要安装nodejs ,学习Vue的时候,已经装过了

1、下载地址

https://github.com/mobz/elasticsearch-head

2、安装

解压即可(尽量将ElasticSearch相关工具放在统一目录下)

打开package.json文件,查看需要安装的依赖

在这里插入图片描述

3、启动
cd elasticsearch-head
# 安装依赖
npm install
# 启动
npm run start
# 访问
http://localhost:9100/

在这里插入图片描述

下载完成的依赖

在这里插入图片描述

在这里插入图片描述

运行

在这里插入图片描述

访问:存在跨域的问题

存在跨域问题(只有当两个页面同源,才能交互)

同源(端口,主机,协议三者都相同)

在这里插入图片描述

在这里插入图片描述

开启跨域(在elasticsearch解压目录config下elasticsearch.yml中添加)

在这里插入图片描述

在这里插入图片描述

# 开启跨域
http.cors.enabled: true
# 所有人访问
http.cors.allow-origin: "*"

在这里插入图片描述

先 重启elasticsearch
在这里插入图片描述

再次连接

在这里插入图片描述

如何理解上图:

  • 如果你是初学者

    • 索引 可以看做 “数据库”
    • 类型 可以看做 “表”
    • 文档 可以看做 “库中的数据(表中的行)”
  • 这个head,我们只是把它

    当做可视化数据展示工具

    ,之后

    所有的查询都在kibana中进行

    • 因为不支持json格式化,不方便

3、安装kibana

​ Kibana是一个针对ElasticSearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana ,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard )实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。

1、下载地址:

下载的版本需要与ElasticSearch版本对应

https://www.elastic.co/cn/downloads/

历史版本下载:https://www.elastic.co/cn/downloads/past-releases/

在这里插入图片描述

在这里插入图片描述

2、安装

解压即可(尽量将ElasticSearch相关工具放在统一目录下)
在这里插入图片描述

3、启动

在这里插入图片描述

访问 http://localhost:5601

在这里插入图片描述

4、开发工具

(Postman、curl、head、谷歌浏览器插件)

可以使用 Kibana进行测试

在这里插入图片描述

如果说,你在英文方面不太擅长,kibana是支持汉化的

5、kibana汉化

找到中文对应的json文件

在这里插入图片描述

编辑器打开kibana解压目录/config/kibana.yml,添加

在这里插入图片描述

i18n.locale: "zh-CN"

在这里插入图片描述

重启kibana

汉化成功

在这里插入图片描述

4、了解ELK

  • ELK是Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称

    。市面上也被成为Elastic Stack。

    • 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架
      • 像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es
    • Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ )收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。
    • Kibana可以将elasticsearch的数据通过友好的页面展示出来 ,提供实时分析的功能。
  • 市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称 ,但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。

收集清洗数据(Logstash) ==> 搜索、存储(ElasticSearch) ==> 展示(Kibana)

在这里插入图片描述

5、linux下安装

1.Linux下安装Elasticsearch
1.1 下载和解压安装包
  • 官网下载地址: https://www.elastic.co/cn/downloads/elasticsearch

  • 笔者选择的是7.16.3,使用的是腾讯云服务器

  • 使用xftp等远程文件传输工具,将压缩包 elasticsearch-7.16.3-linux-x86_64.tar.gz 上传到 服务器的 /usr/local/sbin 路径(自定义)下,并在 /usr/local/ 目录下解压缩

tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local
或者使用 unzip等解压缩工具
1.2 内存不足的问题(选)

由于 elasticsearch 默认分配 jvm空间大小为2g,修改 jvm空间,如果Linux服务器本来配置就很高,可以不用修改

进入/usr/local/elasticsearch-7.13.2/config文件夹开始配置,修改jvm.options:

vim /usr/local/elasticsearch-7.13.2/config/jvm.options

在这里插入图片描述

-Xms256m
-Xmx256m
1.3 创建专用的用户启动ES

root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES

java.lang.RuntimeException: can not run elasticsearch as root

在这里插入图片描述

#创建用户
useradd elasticsearch
#创建所属组
chown elasticsearch:elasticsearch -R /usr/local/elasticsearch-7.16.3
#切换用户
su elasticsearch
#正常启动即可,注:进入/usr/local/elasticsearch-7.13.2/bin 下
cd /usr/local/elasticsearch-7.13.2/bin
./elasticsearch

以上步骤做完后,也很大概率会报错。我接着针对报错问题,做了如下操作,成功run。

1.4解决外网访问问题

默认情况下,是不支持外网访问,如果你的Elasticsearch安装在其他机器上,你从外网去访问的时候,访问不到。那么需要修改配置。

#进入config文件夹
cd /usr/local/elasticsearch-7.16.3/config
#修改elasticsearch.yml文件
vim elasticsearch.yml

在该文件添加

network.host: 0.0.0.0 #冒号(:)后面有空格
http.port: 9200
1.5 解决报错问题
bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[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
问题1

在这里插入图片描述

解决:如果可以使用root用户的,就使用root,不能使用就在前面加 sudo

进入 /etc/sysctl.conf 文件,在文件的末尾添加

vm.max_map_count=262144

在这里插入图片描述

查看是否生效

sysctl -p #查看打印的配置,是否有自己添加的即可,如若还是不生效,建议直接重启服务器
问题2

在这里插入图片描述

#进入config文件夹
cd /usr/local/elasticsearch-7.16.3/config
#修改elasticsearch.yml文件
vim elasticsearch.yml

将以下的配置取消注销

在这里插入图片描述

cluster.initial_master_nodes: ["node-1", "node-2"]

注:重启服务器生效

成功访问http://43.138.232.42:9200/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.6 常见问题
问题1

ctrl+Z ,不正常关闭ES

在这里插入图片描述

解决

#查看elasticsearch相关的进程
ps aux | grep elasticsearch
#杀掉进程
kill -9 pid #信息最多的那个
#重新启动ES即可

ElasticSearch概述及Window和Linux环境下安装 到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧

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

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

相关文章

麒麟系统—— openKylin 安装 Nginx

麒麟系统—— openKylin 安装 Nginx 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。 二、下载 nginx三、解压与运行解压检查与编译安装编译运行 四、配置加入到服务中加入环境变量nginx 配置文件 五、常用命令 Nginx 是一款高性能的 HTTP 和反向代理服务器&#xff0c…

Java编程练习之类的封装2

1.封装一个股票(Stock)类,大盘名称为上证A股,前一日的收盘点是2844.70点,设置新的当前值如2910.02点,控制台既要显示以上信息,又要显示涨跌幅度以及点数变化的百分比。运行效果如下:…

【甲方安全建设】DevOps初体验

文章目录 前言传统的开发方式:Docker-解决环境问题 DevOps-CI/CD走向流水线Jenkins工作流程Git拉取代码Maven构建打包通过SSH连接后端服务器 实现效果 DevSecOps-安全赋能关于安全平台漏洞扫描漏洞预警TODO 前言 临近春节,笔者经过半年北漂,…

Linux系统——防火墙

一、防火墙的认识 引言 安全技术 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全…

企业如何对u盘管控,进行U盘管理?公司电脑禁用U盘的方法

随着信息技术的飞速发展,U盘等移动存储设备已成为企业数据传输和存储的重要工具。然而,U盘的滥用和误操作也带来了巨大的安全隐患,如数据泄露、病毒传播等。 因此,对企业而言,如何有效管控U盘的使用,确保数…

网络安全简介

网络安全: ​ 网络安全攻击分为被动攻击和主动攻击。 1. 被动攻击:是指攻击者从网络上窃取了他人的通信内容,通常把这类的攻击称为截获,被动攻击只要有2种形式:消息内容泄漏攻击和流量分析攻击。由于攻击者没…

Android 8.1 输入框返回键改为删除功能

Android 8.1 输入框返回键改为删除功能 最近接到客户反馈,想要实现在输入框返回键改为删除功能,具体修改参照如下: /frameworks/base/core/java/android/view/View.java public boolean dispatchKeyEvent(KeyEvent event) {if (mInputEvent…

Pymysql将爬取到的信息存储到数据库中

爬取平台为电影天堂 获取到的数据仅为测试学习而用 爬取内容为电影名和电影的下载地址 创建表时需要建立三个字段即可 import urllib.request import re import pymysqldef film_exists(film_name, film_link):"""判断插入的数据是否已经存在""&qu…

element表格内多个输入框时如何添加表单校验

以下.vue文件Demo可直接复制运行: 重点: 1:表格数据定义在form里 2:prop需要加索引;索引前的变量不要加form,直接取里边的key,索引后的字段需要和表格里字段属性对应 。:prop"tableInfo.l…

软件工程知识梳理1-可行性研究

目的:确定问题是否值得去解决。就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也即是在较高层次上以较抽象的方式进行系统分析和设计的过程。 考察点:技术可…

0基础学习VR全景平台篇第140篇:摄影器材保养与维护

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 摄影器材属于精密仪器,在使用过程中会磨损、老化、积灰。如果不对摄影器材进行清洁和保养,油污、灰尘、水渍长期停留在设备上,不仅会大大缩短相机…

如何利用Laravel实现验证码功能

1、生成验证码图片 在Laravel中,生成验证码图片的方式通常是使用PHP的GD库。GD库是一种非常流行的PHP图像处理库,提供了很多方便的函数,可以轻松地生成各种类型的图像。在Laravel中,我们可以使用GD库的函数来实现验证码图片的生成…

从[redis:LinkedList]中学习链表

文章目录 adlistlistNodelistmacros[宏定义]listCreatelistInitNodelistEmptylistReleaselistAddNodeHeadlistLinkNodeHeadlistAddNodeTaillistLinkNodeTaillistInsertNodelistDelNodelistUlinkNodelistIndexredis3.2.100quicklistredis7.2.2quicklist redis的基本数据类型之一…

简单说说mysql的日志

今天我们通过mysql日志了解mysqld的错误日志、慢查询日志、二进制日志,redolog, undolog等。揭示它们的作用和用途,让我们工作中更能驾驭mysql。 redo 日志 如果mysql事务提交后发生了宕机现象,那怎么保证数据的持久性与完整性?…

MYSQL 创建用户以及解决MYSQL新建数据库看不到相关数据库信息的解决方案

MYSQL 创建用户以及解决MYSQL新建数据库看不到相关数据库信息的解决方案 首先 我们创建一个mysql用户账户 如创建一个test用户 密码123456 命令如下: CREATE USER testlocalhost IDENTIFIED BY 123456;创建了一个db1的数据库 命令如下: create databa…

达梦数据库死锁排查与解决

在达梦数据库系统中,死锁是指两个或多个事务相互等待对方释放资源,从而造成循环等待的现象,严重影响数据库的正常运行。以下是使用达梦数据库进行死锁排查和解决的具体步骤: 死锁查看 查询当前死锁信息 SELECT lc.lmode, lc.ta…

网站接入QQ登录

开发者认证,创建应用: (1)先在 QQ 互联 QQ互联管理中心 进行个人开发者认证,并审核 (2)创建【网站应用】,填写正确信息,获得对应的 appid 与 appkey,并审核…

Java学习笔记2024/2/1

1. 循环高级 1.1 无限循环 package com.angus.loopAdvanced.infiniteLoop_1;public class note {public static void main(String[] args) {//无限循环:循环一直停不下来//for循环//while循环 ->最常用,因为不知道循环的范围或者次数//do...while循环// for (;;){ …

【机器学习】某闯关类手游用户流失预测

Final Project: 某闯关类手游用户流失预测 1 案例简介 手游在当下的日常娱乐中占据着主导性地位,成为人们生活中放松身心的一种有效途径。近年来,各种类型的手游,尤其是闯关类的休闲手游,由于其对碎片化时间的利用取得了非常广泛…

分组函数应用(sql+python)总结

经常会遇见对某个字段进行分组、统计等,其中还包括一些比较细致的问题,有时往往会忘记,这里做个记录。 文章目录 1. sql的分组(group by/ over())2. PYTHON分组函数使用groupby 1. sql的分组(group by/ ov…