linux上安装单机版elasticsearch

介绍

elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,百度是这么告诉我的。里面出现的Lucene也是一个用于搜索的引擎,但是elasticsearch对其做了封装,提供了更友好的api,并且可扩展性非常好,而且安装简单。

太多的概念我就不说了,网上一大堆,下面来看看怎么安装。

安装

安装的话可以使用docker,但是这里我们还是采用下载tar包的方式。我的安装目录为/opt/elasticsearch,记得顺便安装一下jdk。

首先进入官网下载,https://www.elastic.co/cn/downloads/elasticsearch,最新版本是7.5.2,直接点击下载即可,但我这里使用的不是最新版,而是5.6.16版本的,具体使用哪个版本由你自己决定。

丢进去解压即可,最后目录长这个样子。启动文件在bin目录里面,为了执行方便,可以加到环境变量里面。

所有大数据组件目录基本上都差不多,目录的含义应该不用我介绍了。

不过我们需要改一个配置文件,因为es有一个特点就是不能以root来启动,因为es要访问大量的文件、并且可以接收用户的脚本来执行,因此为了安全不允许使用root用户启动,最好的办法是创建一个普通用户,然后把相关目录的操作权限赋给这个新用户。

useradd xxx
passwd xxx

chown -R xxx:xxx elasticsearch目录

然后修改配置文件,只需要改一个即可。至于端口,默认有两个端口9200和9300,当然也是可以改的,我们这里就不改了。

# 在config里面有一个elasticsearch.yml,这就是我们修改的配置文件
# 但是里面全部被注释掉了,所以我们就不把注释打开了,直接在文件尾部添加即可

network.host: 0.0.0.0  # 为了能够让其他机器通过web访问
# 至于其他的参数可以参考这个配置文件

我们使用新创建的用户启动,如果直接启动还是会报出错误。

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

意思就是用户可以配置的文件数量太少、可使用的最大虚拟内存太小,我们还需要改一下。

  • vim /etc/security/limits.conf

  • vim /etc/sysctl.conf

  • 然后执行sysctl -p即可

此时以普通用户satori启动就成功了,我们来通过web页面查看一下,端口是9200

如果能够出现如下内容,说明安装成功。所以es的安装还是比较简单的,我们总结一下流程。

  • 安装jdk
  • 安装es包,解压
  • 修改配置文件,将network.host: 192.168.0.1改成network.host: 0.0.0.0,这样其它机器才可以访问
  • 但是es对可打开的文件数量和可使用的虚拟内存有要求,所以我们需要再改两个系统的配置文件
  • 最后创建一个新用户,或者已有的也行,总之不能是root。因为root的权限太高,es要操作大量文件的时候不能有太高的权限,更何况它还可以执行用户自己编写的脚本。总之就是以一个不是root的用户启动就行。

es相关概念

es是基于Lucene开发的分布式全文检索框架,存入es中的数据、和从es中查询得到的数据都是json格式的。首先在es中有几个概念我们必须要知道:

  • 索引:Index,相当于数据库的database
  • 类型:Type,相当于数据库的table
  • 主键:id,相当于数据库的主键

因此我们往es中存储和查询数据,其实就是往es的Index下的Type中存储和查询。

es支持restful风格api,至于什么restful可以网上搜索一下,这是一套工业标准。总之我们可以使用http的方式来对数据进行增删改查

  • 查询数据:http的get请求
  • 插入数据:http的put/post请求
  • 修改数据:http的put/post请求
  • 删除数据:http的delete请求

猜你喜欢

转载自www.cnblogs.com/traditional/p/12290776.html