Elasticsearch简介 基础概念
Elasticsearch由Shay banon在2004年进行初步开发,并且在2010年2月发布第一个版本。
此后Shay banon在2012建立Elasticsearch BV公司,继续围绕Elasticsearch提供相关软件和产品。
Elasticsearch是一个实时的分布式搜索分析引擎,它能让你以一个前所未有的体验来探索你的数据。
它常被作用于全文检索、结构化搜索、数据分析这三个功能的组合。
功能介绍 Elasticsearch基于Apache Lucene的开源搜索引擎,而Lucene无论是在开源亦或是专有领域来说,它可以被认为是迄今为止最先进、性能***、功能最丰富的的搜索引擎库。
但是,Lucene仅是一个Java库,要想使用它你必须熟知Java并将其直接集成到你的应用中,更加糟糕的是Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
而Elasticsearch将Lucene当做核心,并屏蔽了大部分复杂的操作,通过简单的RESTful API进行调用,从而让全文搜索变的简单。
与SQL的区别 Elasticsearch与MySQL的区别较大,其数据存储采用JSON格式。
在其中,各个名词术语也是不相同的,如下表所示:
Elasticsearch SQL索引 库
类型(7版本后淡化该概念,8版本可能会被移除) 表
文档 记录
filed 字段
同时,MySQL并不适用于全文检索,如要查询某个字符串%,必须使用全表扫描
而Elasticsearch则非常适合全文检索,并且可以灵活的存储不同类型的数据
以下是Elasticsearch应用场景:
商城的商品搜索
所有产品的评论
高亮显示搜索内容
收集展示各种日志
除此之外,相较于MySQL部署分布式的繁琐,Elasticsearch天生支持分布式,部署简单,维护轻松,也是对运维人员非常友好的一款数据库产品。
一言以蔽之,Elasticsearch的出现并非为了取代SQL,而是专注于SQL不擅长的领域与其进行互补。
Elasticsearch安装 安装方式 Elasticsearch安装方式有以下4种:
docker:
优点:
部署方便
开箱即用
启动迅速
缺点:
需要有docker相关知识
修改配置比较麻烦
数据存储需要挂载目录
tar
优点:
部署灵活
对系统侵占性小
缺点:
需要自己写启动管理文件
目录要提前进行规划
rpm | deb:
优点:
部署方便
启动脚本安装即用
存放目录较为标准化
缺点:
软件各个组件分散在不同目录
卸载可能不干净
默认配置需要修改
ansible
优点:
及其灵活
功能全面
批量部署速度快
缺点:
需要学习ansible语法和规则
需要提前规划好所有标准
需要有专人进行维护
Rpm安装 在这里将采用rpm进行安装,版本为7.6.1,算是目前较新的版本。
1)安装Java环境,最少要求1.8:
$ yum install -y java-1.8.0-openjdk.x86_64 2)下载安装软件,如果速度慢可以在其他浏览器上进行下载后通过scp传输:
$ cd ~ $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-x86_64.rpm 3)进行安装:
$ rpm -ivh elasticsearch-7.6.1-x86_64.rpm 配置启动 1)重新加载sys项目:
$ systemctl daemon-reload 2)配置开机启动:
$ systemctl enable elasticsearch.service 3)启动Elasticsearch服务(过程较慢,查看日志,耐心等待):
$ systemctl start elasticsearch.service 4)查看启动状态,确保配置文件没有问题:
$ systemctl status elasticsearch.service 5)由于Elasticsearch启动较慢,检查服务进程是否成功启动:
$ ps -ef | grep elasticsearch $ netstat -lnpt | grep 9200 # 查看9200端口 如果启动失败,请检查内存等是否充裕,或者进行jvm内存限制。
目录介绍 通过以下命令查看Elasticsearch安装目录:
$ rpm -ql elasticsearch 通过以下命令查看Elasticsearch配置文件:
$ rpm -qc elasticsearch 重要目录与文件:
/etc/elasticsearch/elasticsearch.yml # 配置文件 /etc/elasticsearch/jvm.options # jvm虚拟机配置文件 /etc/init.d/elasticsearch # init启动文件 /etc/sysconfig/elasticsearch # 环境变量配置文件 /usr/lib/sysctl.d/elasticsearch.conf # sysctl变量文件 /usr/lib/systemd/system/elasticsearch.service # systemd启动文件 /var/lib/elasticsearch # 数据目录 /var/log/elasticsearch # 日志目录 /var/run/elasticsearch # pid目录 修改配置 Elasticsearch的默认配置已经做得非常好,但是以下一些配置你可以进行选配:
# 查看数据和日志目录 $ egrep -v "^#" /etc/elasticsearch/elasticsearch.yml