栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Centos8.4安装elasticsearch

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Centos8.4安装elasticsearch

1、简介

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

像天猫、京东这样的商城,用户访问商城的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。
如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。
面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如Solr,Elasticsearch。

Elastic官网:https://www.elastic.co/cn/
Elastic有一条完整的产品线及解决方案:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。(这里只考虑es,剩余两个暂不讨论)

Elasticsearch(官网:https://www.elastic.co/cn/products/elasticsearch )是Elastic Stack 的核心技术。详细介绍参考官网

Elasticsearch具备以下特点:

  • 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
    Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。
2、安装

需要jdk1.8以上

2.1 新建用户

出于安全考虑,elasticsearch默认不允许以root账号运行。

[root@iZ8vbbl3mc99e3srnnx520Z data]# useradd esuser
[root@iZ8vbbl3mc99e3srnnx520Z data]# passwd esuser

2.2 下载安装包

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

2.3 上传安装包并解压
[root@light environment]# tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz

2.4 修改配置文件

需要修改config文件夹中的两个配置文件:

Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

2.4.1编辑jvm.options:
[root@light config]# vim jvm.options

2.4.2编辑elasticsearch.yml修改数据和日志目录

[root@light config]# vim elasticsearch.yml

node.name: node-1 #配置当前es节点名称(默认是被注释的,并且默认有一个节点名)
cluster.name: my-application #默认是被注释的,并且默认有一个集群名path.data: /data/es/data # 数据目录位置
path.logs: /data/es/logs # 日志目录位置
network.host: 0.0.0.0 #绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
cluster.initial_master_nodes: [“node-1”, “node-2”] #默认是被注释的 设置master节点列表 用逗号分隔


2.4.3 创建data和logs文件夹
[root@light /]# mkdir -p /data/es/data
[root@light /]# mkdir -p /data/es/logs
[root@light /]# cd /data/es
[root@light es]# chown esuser.esuser data
[root@light es]# chown esuser.esuser logs

2.4.4修改/etc/security/limits.conf文件
[root@light es]# vim /etc/security/limits.conf

文件最后加入以下内容:

* soft nofile 65535 
* hard nofile 65535

设置nofile意义:#任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
设置nproc意义:#任何用户可以打开的最大进程数
具体参数说明详见linux中/etc/security/limits.conf配置文件说明

2.4.5修改/etc/sysctl.conf配置文件
[root@light es]# vim /etc/sysctl.conf

文件最后一行增加

vm.max_map_count=655350


3、启动 3.1 权限

先将es文件夹下的所有目录的所有权限迭代给esuser用户

[root@light data]# chown -R esuser.esuser es
[root@light data]# chmod 777 es

3.2切换到esuser用户并启动

这里需要开放9200和9300端口,阿里云服务器在“网络与安全-安全组-配置规则-入方向”中配置

[root@light data]# su esuser
[esuser@light environment]$ cd elasticsearch-7.15.2/
[esuser@light elasticsearch-7.15.2]$ ./bin/elasticsearch

可能会报以下错误:

3.2.1 jdk版本过低

(https://blog.csdn.net/qq_43013511/article/details/119775092?spm=1001.2014.3001.5501)

原因是我linux中jdk的版本为1.8,但是需要jdk11以上的,稳妥起见我把jdk升级到了12,jdk安装参见jdk安装

3.2.2 没有赋权

报错图片是网上找的,但是大致是main方法这个报错

赋权:

#chown -R 普通用户名 要赋权限的用户名
chown -R esuser //environment/elasticsearch-7.15.2

当出现以下内容代表启动成功:

4、开机自启动 4.1 在/etc/init.d/目录创建es文件
[root@light elasticsearch-7.15.2]# vim /etc/init.d/es

内容如下:

#!/bin/bash
#
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-7.15.2

ES_HOME=/environment/elasticsearch-7.15.2

case $1 in
  start)
    su - esuser -c "$ES_HOME/bin/elasticsearch -d -p pid"
    echo "elasticsearch is started"
    ;;
  stop)
    pid=`cat $ES_HOME/pid`
    kill -9 $pid
    echo "elasticsearch is stopped"
    ;;
  restart)
    pid=`cat $ES_HOME/pid`
    kill -9 $pid
    echo "elasticsearch is stopped"
    sleep 1
    su - es -c "$ES_HOME/bin/elasticsearch -d -p pid"
    echo "elasticsearch is started"
    ;;
  *)
    echo "start|stop|restart"
    ;;  
esac
exit 0

4.2 修改上述文件权限
[root@light elasticsearch-7.15.2]# chmod 777 /etc/init.d/es
4.3 添加和删除服务并设置启动方式(chkconfig具体使用另行百度)
[root@light elasticsearch-7.15.2]# chkconfig --add es
[root@light elasticsearch-7.15.2]# chkconfig --del es
4.4 开机启动
[root@light elasticsearch-7.15.2]# chkconfig es on  // 设置开机启动
[root@light elasticsearch-7.15.2]# chkconfig es off // 关闭开机启动
4.5 启动和关闭服务
[root@light elasticsearch-7.15.2]# service es start    // 启动服务
[root@light elasticsearch-7.15.2]# service es stop     // 关闭服务
[root@light elasticsearch-7.15.2]# service es restart  // 重启服务
5、head插件安装 5.1安装node
[root@light local]# sudo yum module install nodejs
[root@light local]# sudo yum module install nodejs/development
[root@light local]# node --version
5.2下载zip并解压

点此下载

[root@light local]# unzip ./elasticsearch-head-master.zip

移动到/usr/local文件夹下

5.3 配置 5.3.1 修改es节点中的config/elasticsearch.yml配置

进入elasticsearch的安装目录修改elasticsearch的配置文件elasticsearch.yml,末尾添加,主要的作用就是允许跨域请求

http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
5.3.2 修改es-head的app.js配置

进入elasticsearch-head-master的_site目录 cd /usr/local/elasticsearch-head-master/_site修改app.js(这里建议直接搜索文本内容9200)

localhost修改为自己服务器的地址,端口默认为9200

5.3.3 修改Gruntfile.js


大致的意思就是设置允许那些ip可以访问head,出于安全考虑设置成自己的ip,我这里测试服务器就设置成允许所有用户访问。

5.3.4 安装依赖包

配置完成后我们使用npm 安装head需要的包:

cd elasticsearch-head #启动cmd进入head所在的文件夹
npm install
npm run start
5.4 测试

通过浏览器访问你设置的ip端口号,看到如下画面代表你的head已经可以正常使用了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号