ElasticSearch学习笔记(一)-搜索引擎介绍及ElasticSearch安装(下)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticSearch学习笔记(一)-搜索引擎介绍及ElasticSearch安装

2.ElasticSearch安装步骤


2.1-安装环境


  • 首先是安装环境:


Centos7+jdk1.8


2.2-主要配置文件


  • 配置文件:elasticsearch.yml(主要配置ElasticSearch集群信息) jvm.options(jvm内存信息)


2020120511043354.png


2.3-创建文件夹并上传文件并解压


创建文件夹并上传文件并解压


mkdir -p /opt/es


将我们的文件上传到该目录下


20201205110455289.png


这时候这些文件都是没有权限的,我么你需要给这些文件分配权限


20201205110527321.png


解压文件: tar -zxvf elasticsearch-6.3.1.tar.gz


20201205111131328.png


2.4-修改配置文件


修改配置文件


ES使用最大线程数,最大内存数,访问的最大文件数


如果是Centos6的话,上面三个都需要进行配置,否则linux不会允许该环境使用这么大的线程数


但是在Centos7里面就只需要配置访问的最大文件数即可.


20201205111334718.png


主要就是elasticSearch的默认内存太大,可能超过了我们服务的承受范围,我这里默认的是1G


20201205111358865.png


这里我们把他修改成256M


之后再去启动试试:


20201205111449513.png


之后我们可能会遇到这个问题:


20201205111506384.png


原因是在elasticSearch5.0版本以后,很多大公司也已经开始采用ElasticSearch作为他们搜索引擎的技术了,大公司使用之后发现ElasticSearch存在安全漏洞,因为在5版本的ElasticSearch中,ElasticSearch运行都是通过root用户进行的,所以有些黑客就通过这个特性直接获取到root用户的密码以及其他信息,使得信息外泄.


所以在5版本之后,ElasticSearch都开始采用这种方案,即所有的操作不能再是root用户,必须单独创建一个用户来操作elasticSearch.


所以我们如果按照默认的配置文件来启动ElasticSearch的话就还是通过root用户启动,所以我们需要重新创建一位用户并且通过在该用户的状态下启动ElasticSearch.

//创建一个新的用户
adduser es
//切换到es用户下
su es

2020120511152961.png


切换完成之后我们能够发现,前面的用户就已经改变了,并且命令前面的符号也已经发生改变了.不再是#号,而是换成了$符号


之后我们再来重新启动一下elasticSearch试试


20201205111732946.png


之后我们又遇到这个问题,意思是:我们的es用户没有权限访问该文件jvm.options


所以我们需要切换回root用户去修改以下es用户的访问权限


//切换成root用户
su root 
//返回上级目录
cd ..
//进入config
cd config
//将config下的所有文件都给予最大权限
chmod 777 *

这样我们的es用户即可访问jvm.options文件了.


之后我们再去重新启动一下我们的elasticSearch但是我们又会遇到下面的问题


20201205111811929.png


该问题主要是es用户没有权限访问data文件夹(data是es的软件和日志数据目录)


这里为了解决之后所有可能遇到的权限不足的问题,我们决定通过切换到root用户,之后将elasticSearch的根目录下将所有的文件的权限都打开,但是 不建议大家这样做,最好是启动之后哪里报权限不足的时候,我们在依次切换到root用户去将相应的文件的权限打开.


我们切换到root用户之后,使用下面的命令将elasticSearch下的文件通过轮询的方式将权限都打开.

chmod 777 -R elasticsearch-6.3.1 

这样我们就已经将所有文件的权限都已经打开了,这时候我们切换成es用户来进行我们接下来的操作.


之后我们需要去配置我们的默认ip以及端口号,这样外网才能访问我们的elasticSearch


这里我们是在elasticsearch.yml文件里面进行配置:


20201205111838743.png


进去之后我们主要配置这两个参数:


如果不是云服务器的话,你就直接按下面我的提示配置即可


20201205111858467.png


如果你是云服务器的话,那么你就不能这么配置了,如果还是按照上面的配置的话,那么我们启动elasticSearch就会出现下面的错误:


20201205150325463.png


这时候我们需要这样配置:


20201205150410812.png


记住这里不能填云服务器的公网ip地址,否则还是连不上的


并且这样配置完成之后,如果是云服务器,我们还需要在防火墙以及阿里云控制台打开9200以及9300两个端口,否则还是连接不上.


这样我们配置完就不会报上面的错误了,但是我们重新启动之后会报另外的问题:


20201205150433724.png


意思就是elasticSearch鄙视我们当前的系统,说我们当前系统能够打开的最大文件数以及能够使用的最大内存数也都不够,需要升级到他相应的最低要求


既然这样我们就要去修改linux的配置(配合es的启动需求),该操作需要在root用户下进行,否则会提示权限不足:


1.修改linux的limits配置文件,设置内存线程和文件


该文件所在位置: /etc/security/limits.conf


添加下面的代码:

*hard nofile 65536
*soft nofile 131072
*hard nproc 4096
*soft nproc 2048


这些代码需要写在#End of file之前,否则这些代码是不会生效的,如果你是云服务器的话,那么你还需要将#End of file后面的参数也修改以下,否则之后启动还是会报相同的错误


20201205150500382.png


之后我们中心刷新一下该文件,使其生效.

source /etc/security/limits.conf

20201205150520529.png


2.修改linux的sysctl配置文件,配置系统使用内存


文件所在位置: /etc/sysctl.conf


添加下面的代码:

vm.max_map_count=655360
fs.file-max=655360

之后保存退出之后,我们就需要让该配置生效


sysctl -p


20201205150539431.png


这样配置就已经生效了.


之后我们便可以重新用es用户去启动elasticSearch了,可以发现已经启动成功了:


20201205150557460.png


虽然他显示的发布地址是通过我们的内网ip地址,但是我们通过浏览器访问的时候还是直接通过公网ip:9200访问即可.


20201205150610730.png


这样我们的elasticSearch就算是安装并且启动成功了.


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
5月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
2529 0
|
6月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1017 1
|
6月前
|
人工智能 自然语言处理 运维
让搜索引擎“更懂你”:AI × Elasticsearch MCP Server 开源实战
本文介绍基于Model Context Protocol (MCP)标准的Elasticsearch MCP Server,它为AI助手(如Claude、Cursor等)提供与Elasticsearch数据源交互的能力。文章涵盖MCP概念、Elasticsearch MCP Server的功能特性及实际应用场景,例如数据探索、开发辅助。通过自然语言处理,用户无需掌握复杂查询语法即可操作Elasticsearch,显著降低使用门槛并提升效率。项目开源地址:<https://github.com/awesimon/elasticsearch-mcp>,欢迎体验与反馈。
1651 1
|
11月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
424 5
|
自然语言处理 搜索推荐 数据库
高性能分布式搜索引擎Elasticsearch详解
高性能分布式搜索引擎Elasticsearch详解
324 4
高性能分布式搜索引擎Elasticsearch详解
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
256 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1137 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
658 0
|
自然语言处理 搜索推荐 Java
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(一)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图
260 0