千家信息网

ElasticSearch的介绍与安装

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,    1. ElasticSearch的介绍(1)ElasticSearch的趣味历史  Shay Banon认为自己参与Lucene完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到
千家信息网最后更新 2025年12月03日ElasticSearch的介绍与安装

    

1. ElasticSearch的介绍

(1)ElasticSearch的趣味历史

  Shay Banon认为自己参与Lucene完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到伦敦,妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到Lucene。直接使用Lucene构建搜索有很多问题,包含大量重复性的工作,所以Shay便在Lucene的基础上不断地进行抽象,让Java程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品"Compass",中文即"指南针"的意思。之后,Shay找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的、高性能、实时、分布式搜索服务,于是他决定重写Compass,将它从一个库打造成了一个独立的server,并将其改名为Elasticsearch。

(2)ElasticSearch的概述

  ElasticSearch是一款基于Apache Lucene构建的开源搜索引擎,它采用Java编写并使用Lucene构建索引、提供搜索功能,ElasticSearch的目标是让全文搜索变得简单,开发者可以通过它简单明了的RestFul API轻松地实现搜索功能,而不必去面对Lucene的复杂性。ES能够轻松的进行大规模的横向扩展,以支撑PB级的结构化和非结构化海量数据的处理。

(3)ElasticSearch与solr的比较

接口
 solr类似于webserver结构
 elasticsearch是rest风格访问接口
分布式
 solr:solrCloud solr4.x支持
 elasticsearch:为分布式而生
支持风格
 solr:json、xml
 elasticsearch:json

(4)ElasticSearch与MySQL的比较

2. ElasticSearch的单机版安装

(1)单机版安装

前置条件
下载地:https://github.com/elastic/elasticsearch
注意:在安装集群之前,保证有jdk并且是1.7以及以上。
不能以root用户启动ES,否则:

安装步骤
①解压:

[hadoop hadoop03@~]$ tar zxvf elasticsearch-6.2.0.tar.gz -C /application/

②修改配置文件

#/application/elasticsearch-6.2.0/config/elasticsearch.ymlcluster.name: zzy-application #集群的名称node.name: node-1 #节点名称path.data: /home/hadoop/data/elasticsearch-data #数据存储目录path.logs: /home/hadoop/logs/elasticsearch-log #日志存储目录network.host: 192.168.191.130 #绑定主机

③版本兼容问题

requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER


表示:centos6.x的内核太低,需要centos7或者升级centos6.x对应的内核至3.5以上。这里选择升级centos6.x对应的内核。
#相关操作:

[hadoop hadoop03@~]$more /etc/issue和uname -a #查看linux内核信息

#升级内核
[hadoop hadoop03@~]$sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
如果出现下图所示:

无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了:
可以使用:

[hadoop hadoop03@~]$yum -y update nss    

#安装内核

sudo yum --enablerepo=elrepo-kernel ×××tall kernel-lt -y

#编辑grub.conf文件,修改Grub引导顺序

#如果出现以下错误:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]


#limits.conf
sudo vim /etc/security/limits.conf 添加如下内容:

*   soft    nofile  65536*   hard    nofile  131072*   soft    nproc   2048*   hard    nproc   4096

并注释:

如果还有错误:

max number of threads [1024] for user [bigdata] is too low, increase to at least [4096]


#修改配置文件90-nproc.conf
sudo vim /etc/security/limits.d/90-nproc.conf

#接下来还会有错误

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#修改配置文件/etc/sysctl.conf

并且生效:sudo sysctl -p

#最后一个错误:

system call filters failed to ×××tall; check the logs and fix your configuration or disable system call filters at your own risk


这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
#修改elasticsearch配置文件
vim /application/elasticsearch-6.2.0/config/elasticsearch.yml

#在Memory下面bootstrap.memory_lock: falsebootstrap.system_call_filter: false

④重启电脑

⑤启动ES
[hadoop hadoop03@~]$/application/elasticsearch-6.2.0/bin/elasticsearch -d
最终在http://hadoop03:9200的web界面中出现:

表示安装成功~!!!!!

3. ElasticSearch的集群安装

这里需要注意,如果是安装集群的话,如果你的Linux每一台都是出现以上的问题,那么每一台电脑都要升级内核,一点要保持所有的节点都能成功启动单机的ES。
  如何你的节点能够成功的安装单机的ES,那么集群的安装非常简单:只要节点同属于一个局域网同一网段,而且集群名称相同,ES就会自动发现其他节点。
①将单机的版的ES发送的各个节点上:

[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop01:$PWD[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop02:$PWD

②修改配置文件:
#节点一 hadoop01:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
#节点二 hadoop 02:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 19300
#节点三:
cluster.name: bigdata
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 29300
③配置完成之后,启动ES即可:
可以通过ES插件elasticsearch-head查看集群信息:

这里elasticsearch-head是一个Google的插件,下载需要×××,这里小编直接给大家提供一个,直接放在Google浏览器的扩展程序中即可。
下载地址:http://down.51cto.com/data/2458080
注意:这里是通过一台机器不同的端口实现的集群,如果是多台机器需要在每一个节点的配置文件中加入:

discovery.zen.ping.unicast.hosts: [ "nodeIP:9300","nodeIP:9300" ]

这是因为ES集群是自动发现机制,这里我们提供一个发现的列表,只要clusterName一样,并且在同一网络下,集群名称相同的ES节点就会自动组成一个集群。
这种依赖性的发现,比较靠谱,当然如果要集群扩展就比较慢了。

4. Elasticsearch Kibana

  kibana 本质上是elasticsearch web客户端,是一个分析和可视化elasticsearch平台,可通过kibana搜索、查看和与存储在elasticsearch的索引进行交互。可以很方便的执行先进的数据分析和可视化多种格式的数据,如图表、表格、地图等。
  .1 简单部署
①下载
URL:http://www.elastic.co/downloads/kibana
需要特别注意的就是kibana和ES之间的版本匹配问题。这里使用的是kibana-6.2.0-linux-x86_64.tar
② 配置:
解压:[hadoop@hadoop03 ~]$ tar zxvf kibana-6.2.0-linux-x86_64.tar.gz -C /application/
配置文件:[hadoop@hadoop03 config]$ vim kibana.yml

注意:由于ES启动时不能通过root用户,所以logs这个目录需要是启动ES的用户创建:
#后台启动(在bin下):

nohup bin/kibana >logs/kibana.log 2>&1 &

③ 测试
访问部署Kibana机器的5601端口出现这个页面,表示部署成功:

  .2 简单部署

  Discover页面: 交互式的浏览数据。可以访问所匹配的索引模式的每个索引的每个文档。可以提交搜索查询,过滤搜索结果和查看文档数据。还可以搜索查询匹配的文档数据和字段值的统计数据。还可以选定时间以及刷新频率。

  Visualize页面:设计数据可视化。可以保存这些可视化,单独或合并成仪表盘。可视化可以基于以下数据源类型1.一个新的交互式搜索 2. 一个保存的搜索 3. 现有的可视化。

  Dashboard页面:自由排列已保存的可视化,保存这个仪表盘并可以分享或者重载。
  settings页面:要使用kibana,得先告诉kibana要搜索的elasticsearch索引是哪些,可以配置一个或更多索引。

搜索 集群 节点 数据 配置 文件 内核 可视化 索引 单机 页面 成功 分布式 名称 错误 问题 升级 妻子 文档 机器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器如何进行安全标记 每年什么时候开展网络安全宣传周 网络技术 专业群 网络技术提取颜色 雕刻机能什么软件开发 exe偶尔会出现数据库错误 主备机服务器怎么配置 汤森路透并购数据库 脏小豆骗赞服务器猫酱 物超所值的企业网络安全解决方案 单招生有上软件开发的专业吗 如何清除数据库的磁盘 饥荒服务器名称改变 安装php的web服务器 页面和数据库id对应不上 谷歌账户提示无法连接服务器 中国网络安全产品公司 杨浦区软件开发技术服务案例 数据库的一致性怎么实现 潮州奶茶店会员系统软件开发 华为云软件开发区域划分 专业网络技术有限公司 网络安全社会价值 nfs文件共享服务器企业实战 存储服务器装系统扫不到盘 hp服务器远程管理接口 幼儿园有关网络安全的手抄报 网络安全靶场搭建不能使用 数据库过滤文字 吉林机电软件开发要多少钱
0