在基于centos7平台的docker环境中安装es数据库
Elasticsearch(简称 ES)是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它能够快速存储、搜索和分析大量数据,广泛应用于全文搜索、日志分析、实时数据处理等场景。
前言:
Elasticsearch 数据库介绍
1. 概述
Elasticsearch(简称 ES)是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它能够快速存储、搜索和分析大量数据,广泛应用于全文搜索、日志分析、实时数据处理等场景。
2. 核心特性
分布式架构:ES 采用分布式设计,支持水平扩展,能够处理 PB 级数据。
实时搜索:数据几乎可以实时被索引和搜索,延迟极低。
全文搜索:支持复杂的全文搜索功能,包括模糊搜索、短语匹配等。
多租户支持:通过索引机制支持多租户,不同用户或应用可以独立管理数据。
RESTful API:提供 RESTful API,易于集成和使用。
强大的查询语言:支持丰富的查询 DSL(Domain Specific Language),可以进行复杂的查询和聚合操作。
3. 主要应用场景
全文搜索:用于构建搜索引擎,支持复杂的查询和高亮显示。
日志和指标分析:常用于日志管理和监控系统,如 ELK Stack(Elasticsearch, Logstash, Kibana)。
实时数据分析:支持实时数据分析和可视化。
商业智能:用于数据挖掘和商业智能分析。
4. 基本概念
索引(Index):类似于数据库中的表,用于存储相关文档。
文档(Document):索引中的基本数据单元,以 JSON 格式存储。
分片(Shard):索引可以被分成多个分片,分布在不同的节点上,实现分布式存储和查询。
副本(Replica):每个分片可以有多个副本,提高数据的可用性和查询性能。
节点(Node):ES 集群中的一个实例,负责存储数据和执行操作。
集群(Cluster):由多个节点组成的集合,共同存储和操作数据。
5. 生态系统
Logstash:用于数据收集、转换和传输。
Kibana:用于数据可视化和分析。
Beats:轻量级数据采集器,用于收集各种类型的数据。
6.优点:
- 高性能:能够快速处理大规模数据。
- 易扩展:支持水平扩展,易于增加节点。
- 功能丰富:支持复杂的查询和聚合操作。
7.安装步骤
在基于centos平台的docker环境中安装es数据库:
#第一步创建目录:
cd /opt
ls
mkdir es-standonly-docker
cd es-standonly-docker/
#第二步:在/opt/es-standonly-docker/下创建文件
vim docker-compose.yml
#文件内容如下:
services:
elasticsearch:
image: elasticsearch:6.5.4
restart: always
container_name: elasticsearch
ports:
- 9200:9200
environment:
- JAVA_OPTS=--Xms256m -Xmx1024m
kibana:
image: kibana:6.5.4
restart: always
container_name: kibana
ports:
- 5601:5601
environment:
- elasticsearch_url=http://修改为虚拟机IP:9200
depends_on:
- elasticsearch
#注意主机IP应与物理机为同一网段
#保存退出后,执行下面指令:
docker compose up -d
#拉取成功后
systemctl stop firewalld
systemctl disable firewalld
如果我们的es报: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
需要在:/etc/sysctl.conf 添加上:vm.max_map_count=262144
最后启动配置:sysctl -w vm.max_map_count=262144
然后:
docker compose down
重新执行
docker compose up -d
若再次执行 docker compose up -d 出现如下错误

解决方法如下:
1.重启 Docker 服务
强制 Docker 重新初始化 iptables 规则链:
sudo systemctl restart docker
2. 加载 iptable_nat 内核模块
确保系统加载了 NAT 所需的模块:
sudo modprobe iptable_nat
3. 切换到 iptables 传统模式(适用于 RHEL/CentOS 8+)
新版本系统默认使用 nftables,可能与 Docker 不兼容:
切换为 iptables-legacy
sudo update-alternatives --config iptables
选择 iptables-legacy(通常选项1),然后重启 Docker:
sudo systemctl restart docker
4. 清空 iptables 规则(谨慎操作)
清除残留规则让 Docker 重建链(会重置所有网络规则):
sudo iptables -t nat -F # 清空 NAT 表
sudo iptables -t mangle -F # 清空 MANGLE 表
sudo iptables -F # 清空默认表
sudo iptables -X # 删除自定义链
sudo systemctl restart docker
5. 关闭防火墙冲突
临时禁用 firewalld 或 ufw 测试:
sudo systemctl stop firewalld # 关闭 firewalld
sudo ufw disable
sudo systemctl restart docker
6. 手动创建 DOCKER 链
如果 Docker 仍无法创建链,手动添加:
sudo iptables -t nat -N DOCKER
sudo systemctl restart docker
7. 重启系统
若上述步骤无效,重启系统以重置网络堆栈:
sudo reboot
进入浏览器输入:虚拟机IP:5601
进入该网页如图
使用 DEV Tools进行分词功能报404错误,解决方法如下:
#查看容器进程,注意容器ID
docker ps
#进入elasticsearch:6.5.4
docker exec -it f1 /bin/bash #注f1是我的elasticsearch的容器ID前两位,容器iD可以缺省(前提是:目前运行的容器,没有相同的,不会发生争议)

#进入容器后
ls
cd bin
#执行下面指令
./elasticsearch-plugin install http://43.136.108.62:8080/elasticsearch-analysis-ik-6.5.4.zip
#如果报错为Caused by: java.net.ConnectException: Connection refused (Connection refused)
#改为下面的方式安装:
wget -O /usr/share/elasticsearch/bin/elasticsearch-analysis-ik-6.5.4.zip http://43.136.108.62:8080/elasticsearch-analysis-ik-6.5.4.zip
#加上下面这条
cd /usr/share/elasticsearch/bin
./elasticsearch-plugin install file:///usr/share/elasticsearch/bin/elasticsearch-analysis-ik-6.5.4.zip

#安装完毕重启,该报错是由于分词管理的插件未安装引起,安装该插件即可解决
#重启
docker restart 93 f1
docker compose up -d
#浏览器刷新,在下面位置粘贴以下代码运行如下即可
POST _analyze
{
"analyzer": "ik_max_word",
"text":"所有或者一无所有"
}
安装完毕!!!!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)