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以上
本文章为单机服务器安装es集群,慎重!!!!!我后来发现我搭建es集群后内内存占用达到了80%以上,后续改为单机版!

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


改名es1

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
#集群的名称,同一个集群该值必须设置成相同的
cluster.name: my-application#该节点的名字
node.name: node1#该节点有机会成为master节点
node.master: true#该节点可以存储数据
node.data: true#数据存储路径
path.data: /data/es/es1/data#日志存储路径
path.logs: /data/es/es1/logs#shard的数目
#index.number_of_shards: 5#数据副本的数目
#index.number_of_replicas: 3#该参数用于同时设置bind_host和publish_host
network.host: 0.0.0.0#设置绑定的IP地址,可以是IPV4或者IPV6
#network.bind_host: ip#设置其他节点与该节点交互的IP地址
#network.publish_host: ip#设置节点之间交互的端口号
transport.tcp.port: 9301#设置对外服务的http端口号
http.port: 9201#设置是否压缩tcp上交互传输的数据
transport.tcp.compress: true#设置http内容的最大大小
http.max_content_length: 100mbbootstrap.memory_lock: false
bootstrap.system_call_filter: false#设置集群中自动发现其他节点时ping连接的超时时间
discovery.zen.ping_timeout: 30s#是否启用多播发现机制
#discovery.zen.ping.multicast.enabled: false#最小具备master资格的节点(n/2+1)
discovery.zen.minimum_master_nodes: 2#集群中的其他节点信息,默认端口为9300
discovery.zen.ping.unicast.hosts: ["ip:9301","ip:9302","ip:9303"]#设置初始化主节点
cluster.initial_master_nodes: ["node1"]http.cors.enabled: true
http.cors.allow-origin: "*"

注意:

  • ip设置成自己服务器的ip
  • 需要开放六个端口
  • 节点名称、数据存储路径、日志存储路径需要对应

2.4.3 创建data和logs文件夹

[root@light /]# mkdir -p /data/es/es1/data
[root@light /]# mkdir -p /data/es/es1/logs


  • 重复2.3和2.4步骤设置es2和es3节点,注意修改端口

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

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


2.4.6执行sysctl -p立即生效

3、启动

3.1赋权

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

3.2切换到esuser用户并启动

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

[root@light data]# su esuser
##  -d代表后台启动
[esuser@light data]$ /resource/es/es1/bin/elasticsearch -d
[esuser@light data]$ /resource/es/es2/bin/elasticsearch -d
[esuser@light data]$ /resource/es/es3/bin/elasticsearch -d

可能会报以下错误:

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

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

3.3 验证

3.3.1查看健康状态

[esuser@light config]$ curl http://127.0.0.1:9201/_cluster/health

3.3.2查看节点状态

4、开机自启动

4.1 在/etc/init.d/目录创建es文件

[root@light elasticsearch-7.15.2]# vim /etc/init.d/es

内容如下:

#!/bin/sh#chkconfig: 2345 80 05#description: elasticsearchexport JAVA_HOME=/usr/local/jdk-12.0.2export JAVA_BIN=/usr/local/jdk-12.0.2/binexport PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME JAVA_BIN PATH CLASSPATHcase "$1" instart)# 这里 esuser 是你的 es用户 ‘<<!’ 为固定语法su esuser<<!/resource/es/es1/bin/elasticsearch -d/resource/es/es2/bin/elasticsearch -d/resource/es/es3/bin/elasticsearch -d!echo "elasticsearch startup";;  stop)# 查找进程,杀死进程 达到停止效果es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`kill -9 $es_pidecho "elasticsearch stopped";;  restart)es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`kill -9 $es_pidecho "elasticsearch stopped"su esuser<<!/resource/es/es1/bin/elasticsearch -d/resource/es/es2/bin/elasticsearch -d/resource/es/es3/bin/elasticsearch -d!echo "elasticsearch startup";;  *)echo "start|stop|restart";;  esacexit $?

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
[root@light elasticsearch-7.15.2]# chkconfig --list

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

点击此处下载nodejs

5.1.1上传并解压nodejs

此处我解压到/usr/local文件夹中

5.1.2 修改/etc/profile文件

在/etc/profile文件新增以下内容:

#SET PATH FOR NODEJS
export PATH=$PATH:/usr/local/node-v16.13.0/bin

保存退出后执行:

[root@light local]# source /etc/profile

5.1.3 软连接

ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/nodejs/bin/node /usr/local/bin/

5.1.4 测试nodejs是否安装成功

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: "*"

5.3.2 修改es-head的app.js配置

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

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

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已经可以正常使用了。

5.5设置自启动

5.5.1新建eshead服务

[root@light /]# cd /etc/init.d
[root@light init.d]# vim eshead

5.5.2复制

#!/bin/bash
#
#chkconfig: 345 63 37
#description: elasticsearch-head-master
#processname: elasticsearch-head-masterexport NODE_HOME=/usr/local/node-v16.13.0-linux-x64
export JAVA_HOME=/usr/local/jdk-12.0.2
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export NODE_PATH=$NODE_HOME/lib/node_modulesESHEAD_HOME=/usr/local/elasticsearch-head-mastercase $1 instart)cd $ESHEAD_HOMEnohup npm run start >/usr/local/elasticsearch-head-master/nohup.out 2>&1 &echo "eshead is started";;stop)pid=`lsof -t -i:9100`kill -9 $pidecho "eshead is stop";;restart)pid=`lsof -t -i:9100`kill -9 $pidecho "eshead is stopped"sleep 1cd $ESHEAD_HOMEnohup npm run start >/usr/local/elasticsearch-head-master/nohup.out 2>&1 &echo "eshead is started";;*)echo "start|stop|restart";;
esac
exit 0

5.5.3 操作

[root@light init.d]# chmod 777 eshead ## 赋权
[root@light init.d]# chkconfig --add eshead ## 添加服务到开机项
[root@light init.d]# chkconfig eshead on ## 设置为开机启动
[root@light init.d]# service eshead start
## 测试(后经测试service命令手动启动不管用,改为systemctl执行)
[root@light /]# systemctl start eshead

Centos8.4安装elasticsearch集群及es-head插件相关推荐

  1. ECK安装elasticsearch集群及es配置x-pack

    目录 ECK安装elasticsearch集群 elasticsearch安装x-pack插件 Elasticsearch Springboot 开发 ECK安装elasticsearch集群 ECK ...

  2. Ubuntu安装Elasticsearch集群及Kibana

    1, 下载ES及Kibana https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads ...

  3. 【Docker】docker安装elasticsearch集群,Kibana安装以及开启认证

    提示: 文章目录 前言 一.Elasticsearch是什么? 二.Elasticsearch安装步骤 1.环境配置 2.系统配置修改 3.拉取镜像 4.创建挂载目录并赋权 5.安装获取elastic ...

  4. linux系统下安装elasticsearch集群踩过的坑

    公司之前用的solr发现不太好用准备替换成es于是乎开始大刀阔斧的更换搜索服务器,本着有新版本不用旧版本的原则,所以刚搭好的基础环境,又得重新部署一遍.(重要的事记得说三遍!!! 记笔记真的很重要,好 ...

  5. Ubuntu 安装elasticsearch集群

    环境准备 准备三台服务器搭建集群环境 node1 192.168.177.171 node2 192.168.177.172 node3 192.168.177.173 其中node1为master节 ...

  6. Elasticsearch集群部署及Head插件安装

    首先准备三台Linux服务器,系统版本Centos7,具备Java环境,最好是JDK11以上.由于ES比较吃内存,所以每台服务器的配置要求为: CPU:2核 内存:2G 我的三个节点分别是Hadoop ...

  7. 多台es服务器搭建elasticsearch集群,es单机伪集群搭建,在一台服务器上以三个不同的端口模拟三台主机完成es伪集群搭建,windows和Linux操作方法一致

    目录 (一)es单机伪集群搭建 一.准备三台elasticsearch服务器(复制三个es目录) 二.修改每台服务器的配置 1.修改es配置文件 2.配置注意 (二)多台服务器es集群搭建: 1 安装 ...

  8. k8s安装elasticsearch集群

    1 环境简述 搭建es集群需要使用的技术如下:k8s集群.StatefulSet控制器.Service(NodePort)服务.PV.PVC.volumeClaimTemplates(存储卷申请模板) ...

  9. Elasticsearch - 集群管理工具Head插件

    elasticsearch-head elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es.或直接下 ...

最新文章

  1. java 大臣的旅费_PREV-9-蓝桥杯-历届试题-大臣的旅费-java
  2. 计算机题硬盘分区首先,您对计算机硬盘分区了解多少: 如何进行分区合理?
  3. 《DSP using MATLAB》示例Example4.2
  4. win10电脑上计算机图标怎么删除,Win10删除此电脑多余软件图标的详细方法
  5. 迈克尔杰克逊全部专辑下载
  6. android四大组件共性,Android四大组件及意图和意图过滤器
  7. GB50311-2016标准综合布线
  8. Edge浏览器越来越难用了?又惹“众怒”!
  9. vs没有添加引用_足球赛事比分:尤文图斯VS里昂欧冠
  10. python画球鞋_基于Python爬虫原理的篮球鞋选择程序的设计与实现
  11. 使用vue-cli快速构建项目
  12. matlab的模型文件扩展名,[转载]matlab simulink基础知识
  13. 8、Java如何制作帮助文档
  14. 熔断器熔断时间标准_快速熔断器型号_快速熔断器熔断时间_快速熔断器
  15. 最新爬虫(2019.07)淘宝页面登陆滑块验证 selenium + chromedriver 爬取淘宝信息
  16. 生而为人,请善待每一个人
  17. 二,八,十六进制数转换为十进制数
  18. 关于Dbvisualizer在win10环境下,出现编辑器乱码问题情况
  19. 2020年度“全球酒店集团225强”排名公布,首旅如家再进榜单前十
  20. 企业如何做战略规划------5看3定是不是套路,反正大企业就那么做的,。。。。。。。

热门文章

  1. 复旦MBA联手GMAC,点金“学业选择+事业规划“
  2. 东华大学人工智能作业2
  3. MapReduce数据分析(8)TopN
  4. 【零散知识点总结4】
  5. 第四天 可用试验环境和创建快照
  6. 更好用的骨传导耳机,配置确实很强,南卡Runner Pro 3上手
  7. 热烈祝贺“上海交通大学—思岚科技联合实验室”正式签约
  8. 邮政社招笔试题库_邮政储蓄银行社会招聘笔试考什么?
  9. 腾讯「赛马机制」,网易「一厂两制」
  10. MySQl基础狂神笔记(全)