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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 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就算是安装并且启动成功了.


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
13天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
29 5
|
1月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
23 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
128 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
自然语言处理 搜索推荐 数据库
高性能分布式搜索引擎Elasticsearch详解
高性能分布式搜索引擎Elasticsearch详解
85 4
高性能分布式搜索引擎Elasticsearch详解
|
2月前
|
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
|
1月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
126 0
|
1月前
|
自然语言处理 搜索推荐 Java
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(一)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图
50 0
|
1月前
|
存储 自然语言处理 搜索推荐
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(二)
35 0
|
3月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
3月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。