ElasticSearch介绍及单机版安装
概述
ElasticSearch官网:https://www.elastic.co/cn/elasticsearch
GitHub地址:https://github.com/elastic/elasticsearch
Elasticsearch 是使用Java语言且基于 Lucene 库的开源 分布式搜索和分析引擎、可扩展数据存储和矢量数据库,针对生产级工作负载的速度和相关性进行了优化。Elasticsearch 是 Elastic 开放 Stack 平台的基础。它支持近乎实时地搜索海量数据集、执行矢量搜索、与生成式 AI 应用程序集成等等。
核心特点
分布式架构
- 支持自动分片(Sharding)和副本(Replication),可横向扩展至数百台服务器,处理 PB 级数据。
- 节点自动发现和负载均衡,保证高可用性和容错性。
实时搜索与分析
- 数据写入后可被实时搜索,支持复杂查询(如全文搜索、结构化搜索、地理位置搜索等)。
- 提供聚合(Aggregation)功能,可快速进行数据统计和分析(如求和、平均值、分桶统计等)。
灵活的数据模型
- 基于 JSON 格式 存储数据,支持动态映射(Dynamic Mapping),无需预先定义严格的模式(Schema)。
丰富的功能生态
- 与 Elastic Stack(ELK Stack)深度集成,包括 Logstash(数据收集)、Kibana(可视化)、Beats(轻量级数据采集器)等工具。
- 提供 RESTful API,方便与各类应用程序集成。
高扩展性
- 支持插件机制,可通过插件扩展功能(如分词器、安全认证、监控等)。
应用场景
- 全文搜索引擎
例如电商网站的商品搜索、新闻网站的内容检索等,支持模糊查询、关键词高亮等功能。
- 日志分析与监控
收集和分析海量日志数据(如服务器日志、应用日志),通过 Kibana 实现可视化监控和故障排查。
- 实时数据统计
用于实时分析用户行为数据、业务指标(如网站流量、订单统计),支持动态仪表盘展示。
- 地理位置搜索
支持基于地理位置的查询(如 “查找附近 5 公里内的餐馆”),适用于地图服务、O2O 应用等。
- 数据分析与 BI
结合聚合功能,对数据进行多维分析,辅助业务决策。
二进制安装单机ElasticSearch7.x版本
环境信息
系统 | 规格 | 描述 |
---|---|---|
Ubuntu | 8c16g | 安装ES |
下载二进制资源
下载地址:https://www.elastic.co/downloads/elasticsearch
# 下载
[root@master /data00/software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.12-linux-x86_64.tar.gz
# 解压
[root@master /data00/software]# tar -xvf elasticsearch-7.17.12-linux-x86_64.tar.gz
# 创建软连接
[root@master /data00/software]# [root@master /data00/software]# ln -s /data00/software/elasticsearch-7.17.12 /usr/local/elasticsearch
[root@master /data00/software]# ll /usr/local/elasticsearch
lrwxrwxrwx 1 root root 38 Jun 4 14:36 /usr/local/elasticsearch -> /data00/software/elasticsearch-7.17.12
优化系统参数
[root@master ~]# vim /etc/sysctl.conf
# ES 需要大量文件描述符来处理索引和网络连接,建议设置为较高值:
fs.file-max = 655360
# ES 使用 mmap 技术加载索引,需增大虚拟内存区域限制:
vm.max_map_count = 2147483642
# 禁用交换空间(swap分区)
vm.swappiness = 1
# 网络参数优化
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 16384
net.core.rmem_max = 262144
net.core.wmem_max = 262144
# 使参数生效
[root@master ~]# sysctl -p /etc/sysctl.conf
# 查询参数,验证是否生效
[root@master ~]# sysctl -q vm.max_map_count
vm.max_map_count = 2147483642
修改ES的配置文件
[root@master ~]# vim /usr/local/elasticsearch/config/elasticsearch.yml
cluster.name: es01
path.data: /data00/data/elasticsearch/
path.logs: /var/log/elasticsearch/
http.port: 9200
discovery.seed_hosts: ["10.37.97.56"]
创建数据目录及日志目录
[root@master ~]# mkdir -p /data00/data/elasticsearch/
[root@master ~]# mkdir -p /var/log/elasticsearch/
创建ES用户
[root@master ~]# useradd elasticsearch
[root@master ~]# id elasticsearch
uid=2002(elasticsearch) gid=2003(elasticsearch) groups=2003(elasticsearch)
# 授权
[root@master ~]# chown elasticsearch:elasticsearch -R /data00/data/elasticsearch/
[root@master ~]# chown elasticsearch:elasticsearch -R /var/log/elasticsearch/
# 安装目录
[root@master ~]# chown elasticsearch:elasticsearch -R /data00/software/elasticsearch-7.17.12
添加对ES用户对限制
[root@master ~]# vim /etc/security/limits.conf
# 最大文件描述符数
elasticsearch hard nofile 655360
elasticsearch soft nofile 655360
# 最大进程数
elasticsearch hard nproc 8192
elasticsearch soft nproc 8192
# 锁定内存限制
elasticsearch hard memlock unlimited
elasticsearch soft memlock unlimited
创建systemd文件
[root@master ~]# vim /lib/systemd/system/es.service
[Unit]
Description=elasticsearch service
Documentation=https://www.cnblogs.com/huangSir-devops
After=network.target auditd.service
[Service]
LimitMEMLOCK=infinity
User=elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch
TimeoutStopSec=0
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
启动ES
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl start es
[root@master ~]# systemctl status es
● es.service - elasticsearch service
Loaded: loaded (/lib/systemd/system/es.service; disabled; preset: enabled)
Active: active (running) since Wed 2025-06-04 15:07:10 CST; 3s ago
Docs: https://www.cnblogs.com/huangSir-devops
Main PID: 2540104 (elasticsearch)
Tasks: 21 (limit: 76938)
Memory: 40.4M
CGroup: /system.slice/es.service
├─2540104 /bin/bash /usr/local/elasticsearch/bin/elasticsearch
├─2540170 /bin/bash bin/elasticsearch-keystore has-passwd --silent
└─2540172 /usr/local/elasticsearch/jdk/bin/java -Xshare:auto -Xms4m -Xmx64m -XX:+UseSerialGC -Des.path.home=/usr/local/elasticsearch -Des.path.conf=/usr/local/elasticsearch/config -Des.distributio>
Jun 04 15:07:10 master systemd[1]: Started es.service - elasticsearch service.
# 检查端口
[root@master ~]# ss -lntup | grep 9200
tcp LISTEN 0 65535 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=2540104,fd=355))
tcp LISTEN 0 65535 [::1]:9200 [::]:* users:(("java",pid=2540104,fd=354))
# 访问es
[root@master ~]# curl localhost:9200
{
"name" : "master",
"cluster_name" : "es01",
"cluster_uuid" : "_na_",
"version" : {
"number" : "7.17.12",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "e3b0c3d3c5c130e1dc6d567d6baef1c73eeb2059",
"build_date" : "2023-07-20T05:33:33.690180787Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Docker安装ElasticSearch
# 在主机创建目录(需提前手动创建)
mkdir -p /data/es/data
mkdir -p /data/es/config
mkdir -p /data/es/plugins
docker run -d \
--name es7.17.12 \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
# 挂载配置卷
-v /data/es/data:/usr/share/elasticsearch/config \
# 挂载数据卷
-v /data/es/config:/usr/share/elasticsearch/data \
# 挂载插件卷
-v /data/es/plugins:/usr/share/elasticsearch/plugins \
-u root \ # 允许以 root 权限修改配置(可选,需根据实际权限需求调整)
elasticsearch:7.17.12
ElasticSearch介绍及单机版安装的更多相关文章
- ELK学习实验002:Elasticsearch介绍及单机安装
一 简介 ElasticSearch是一个基于Luncene的搜索服务器.它提供了一个分布式多用户能力全文搜索引擎,基于RESTful web接口,ElsticSearch使用Java开发的,并作为A ...
- ElasticSearch 介绍、Docker安装以及基本检索第三篇
一.简介 1.1 什么是Elasticsearch? Elasticsearch是一个分布式的开源搜索和分析引擎, 适用于所有类型的数据,包括文本.数字.地理空间.结构化和啡结构化数据.Elastic ...
- elasticsearch介绍,安装,安装错误解决及相应插件安装
一.elasticsearch介绍 1.简介(使用的是nosql,更新比mongodb慢): ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎, ...
- Elasticsearch介绍及安装部署
本节内容: Elasticsearch介绍 Elasticsearch集群安装部署 Elasticsearch优化 安装插件:中文分词器ik 一.Elasticsearch介绍 Elasticsear ...
- 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用
一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...
- Elasticsearch介绍和安装与使用
转载:https://blog.csdn.net/weixin_42633131/article/details/82902812 1.Elasticsearch介绍和安装 1.1.简介1.1.1.E ...
- Elasticsearch介绍和安装
Elasticsearch介绍和安装 软件包: 链接:https://pan.baidu.com/s/1O_C0JQGfF8sC_OtcCCLNoQ 提取码:3iai 1.1.简介 1.1.1.Ela ...
- ElasticSearch 2 (6) - 插件安装Head、Kopf与Bigdesk
ElasticSearch 2 (6) - 插件安装Head.Kopf与Bigdesk 摘要 安装Elasticsearch插件Head.Kopf与Bigdesk 版本 elasticsearch版本 ...
- 1.ElasticSearch介绍及基本概念
一.ElasticSearch介绍 一个采用RESTful API标准的高扩展性的和高可用性的实时性分析的全文搜索工具 基于Lucene[开源的搜索引擎框架]构建 ElasticSearch是一个面向 ...
- Redis单机版安装
1.工具简单介绍 1.博主使用的是Xshell工具 ps:需要设置端口和连接名称,端口一般默认为22,需要的童鞋可以自行百度 2.Redis单机版安装 第一步:安装gcc编译环境 yum instal ...
随机推荐
- postman 提示Http Status 400 -Bad Request
Http Status 400 -Bad Request 将headers下面的选项全部勾选 新版postman自带的内容
- STM32 学习方法
前言 学习知识要掌握有效的学习方法,学习技术也是一样,本篇分享关于我学习 STM32 后总结的学习方法. 推荐的学习方法 系统学习 在网上购买一款开发板,使用开发板+开发板配套视频教程+开发板配套源码 ...
- oracle修改用户密码的方法
Oracle用户名及默认密码 修改oracle用户的密码有以下方法: 普通用户 (1)通过alter user语法来进行修改 ,这也是最常见的方式: (2) 第二种方式,是通过password命令来修 ...
- 【Pandas】concat方法使用注意点
使用pandas库的concat做数据拼接需要注意,应该先对原始数据设置列名,如果没有设置列名,在拼接时只会保留第一个文件的第一行(以列名形式),由于剩下的文件在读取时会自动将第一行作为列名,这样就会 ...
- Qt/C++开发经验小技巧311-315
关于流媒体推拉流延时的几点说明. 经常看到一些流媒体相关的程序,号称零延迟,不用怀疑,这肯定吹牛逼的. 搞音视频开发,有个核心的指标就是实时性,也就是延迟多少毫秒,这个问题问的也是最多的. 音视频文件 ...
- 深入理解Hadoop读书笔记-4
背景 公司的物流业务系统目前实现了使用storm集群进行过门事件的实时计算处理,但是还有一个需求,我们需要存储每个标签上传的每条明细数据,然后进行定期的标签报表统计,这个是目前的实时计算框架无法满足的 ...
- Docker for Windows Firewall detected
安装 Docker for Windows 设置挂载磁盘的时候,出现下面这个错误: 尝试 # 把 vEthernet(DockerNAT) 的网络类型改为 private,默认是 public,还是没 ...
- Code First 初始化数据时发生异常
问题重现 用Entity Framework的Code First默认生成的数据库文件被我直接删除了, 然后不管怎么重新编译等等, 运行后总是会报错如下: 解决方案同下 Cannot attach t ...
- Spring AI与DeepSeek实战三:打造企业知识库
一.概述 企业应用集成大语言模型(LLM)落地的两大痛点: 知识局限性:LLM依赖静态训练数据,无法覆盖实时更新或垂直领域的知识: 幻觉:当LLM遇到训练数据外的提问时,可能生成看似合理但错误的内容. ...
- 无耳 Solon Ai MCP,发布工具服务,使用工具服务。效果预览!
solon-ai-mcp 是 solon-ai 的扩展特性.提供 mcp 协议的支持.通过它,可以方便的发布 Tool Service,方便的使用 Tool Service. 引入依赖包 <de ...