社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

Linux安装elasticsearch7.x

知了堂 • 4 年前 • 509 次点击  
阅读 66

Linux安装elasticsearch7.x

前言

Elaticsearch,简称为ESES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时地存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别(大数据时代)的数据。ES由 Java 语言开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTFULL API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。据国际权威的数据库产品评测机构 DB Engines 的统计,在2016 年1月,ElasticSearch 已超过 Solr 等,成为排名第一的搜索引擎类应用。

1、ES 的下载安装(Linux 下安装)

1.1、下载ES

环境要求:JDK版本最低为1.8 并且系统中已经配置好 JAVA 环境

下载地址:www.elastic.co/cn/download…

1.2、安装ES

1.2.1、ES压缩包上传

我们将ES 的压缩包下载到本机电脑后,通过 XFTP 这个上传到服务器或者虚拟机指定文件夹位置:

接下来使用 XShell 工具连接到服务器或者虚拟机

1.2.2、ES压缩包解压

解压命令:tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz

解压后的文件夹修改下名字,方便输入:mv elasticsearch-7.6.1 elasticsearch7

1.2.3、ES目录介绍

bin:下面存放着Es启动文件         elasticsearch.bat/elasticsearch
config:配置目录
data:数据目录
jdk、lib:Java运行环境以及依赖包
logs:日志目录
modules、plugins:模块及插件目录,head插件可以存放在plugins目录下 
复制代码

1.3、ES相关配置

1.3.1、基础配置

ES 本身其实也相当于是一个数据库,为此,我们在 elasticsearch7 文件夹下自己建一个 data 文件夹,用于存放数据:mdkir data

进入 data 文件夹下,执行 pwd 命令拷贝下该文件夹的路径,下面配置要用到!

修改配置文件elasticsearch.yml,我们进入elasticsearch7 这个文件夹下的config 文件夹,编辑 elasticsearch.yml 文件:vim elasticsearch.yml

下面 wq 保存退出,回到elasticsearch7 文件夹下,进入 logs 文件夹,pwd 查看该文件夹路径,并复制!

如:/usr/local/src/software/elasticsearch7/logs,然后重新到 config 目录下编辑elasticsearch.yml 文件:

1.4、跨域配置

在config目录下的elasticsearch.yml文件末尾添加跨域允许:

# 跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type 
复制代码

2、ES 的分词器插件

ES 自己默认带有分词器,但是支持的是英文分词,所以我们要安装一个可以对中文分词的插件

2.1、IK 分词器下载

然后我们就可以使用Xshell 对其进行操作:

2.2、IK 分词器压缩包解压到ES 插件文件夹下

首先我们进入 elasticsearch7 文件夹下的 plugins 文件夹下,新建一个 ik 文件夹,用于存放 IK 分词器插件:

然后我们在 software 文件夹下,将 IK 分词器的压缩包解压到 ik 文件中去,命令为:unzip elasticsearch-analysis-ik-7.6.1.zip -d /usr/local/src/software/elasticsearch7/plugins/ik,如果出现以下问题:

需要先下载 unzip 命令:yum install unzip zip,然后再执行解压命令:unzip elasticsearch-analysis-ik-7.6.1.zip -d /usr/local/src/software/elasticsearch7/plugins/ik

然后我们到 ik 目录下检查是否解压成功:

2.3、IK 分词器的配置文件

默认分词配置

进入ik 目录下的 config 目录:

进入查看下 extra_main.doc 配置文件:

可以看出,汉字相关的分词配置都是在配置文件中一个一个地枚举出来的!

3、ES 服务启动与关闭

进入bin 目录,执行命令:./elasticsearch 运行ES 服务!后台运行命令:./elasticsearch -d

关闭ES 服务:ps -ef|grep elastic 查看进程,并使用 kill -9 进程id 来结束进程!

可能出现问题一

在服务器上跑 ES 如果启动时出现以下错误:

这种情况说明,内存不够了,服务器(学生机1核2g)内存较小,不足以启动ES服务,因为ES 默认启动内存大小就要求2g!

解决方案一

可以修改 config 下的 jvm.options 配置文件,将运行大小 2g 修改为 1g(还是不行的话,再小设置到256m):

解决方案二

使用top命令查看占用内存多的进程将其结束:

踩坑,因为我这个学生机上有正在运行的 java 项目,包括 zookeeper 和 kafka等等服务,所以我换台学生机测试

可能出现问题二

如果出现下面这种问题:

说明不能以root 用户去启动 ES 服务!

解决方案

  • 新建一个用户elasticsearch,命令: adduser elasticsearch
  • 在software 目录下 赋予 elasticsearch7 这个文件夹的权限给 elasticsearch 用户,命令:chown -R elasticsearch elasticsearch7

  • su elasticsearch 命令,切换到 elasticsearch 用户,并重新到 bin 目录下执行 ES服务

可能出现问题三

ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 
复制代码

解决方案

  • 修改配置sysctl.conf vim /etc/sysctl.conf
  • 在最后一行添加下面配置: vm.max_map_count=655360
  • 保存后退出并执行命令: sysctl -p

然后,重新启动 elasticsearch,即可启动成功。

可能出现问题四

ERROR: [1] bootstrap checks failed
[1]: 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
复制代码

解决方案

在elasticsearch的config目录下,修改elasticsearch.yml配置文件,将下面的配置加入到该配置文件中:

3.1、阿里云开放安全组端口

4、测试访问ES服务

访问成功,说明ES启动成功了!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/113114
 
509 次点击