本文最后更新于:4 个月前
1. elasticsearch简介
elasticsearch介绍
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
应用场景
- 维基百科,类似百度百科
- The Guardian(国外新闻网站)
- Stack Overflow(国外的程序异常讨论论坛)
- GitHub(开源代码管理)
- 电商网站
- 日志数据分析
- 商品价格监控网站
- BI系统,商业智能
- 站内搜索(电商,招聘,门户,等等),
- IT系统搜索(OA,CRM,ERP,等等),
- 数据分析(ES热门的一个使用场景)
es的功能
- 分布式的搜索引擎和数据分析引擎
- 全文检索,结构化检索,数据分析
- 对海量数据进行近实时的处理
es的特点
- 大型分布式集群
- 功能强大
- 部署简单
- 能够替代数据库的不足之处
2. elasticsearch的安装配置
- docker获取es的镜像
1
| docker pull elasticsearch:7.12.1
|
- 创建es文件目录以及创建配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| mkdir /docker mkdir /docker/es mkdir /docker/es/conf mkdir /docker/es/data mkdir /docker/es/plugins chmod -R 777 /docker/es
touch /docker/es/conf/elasticsearch.yml
cluster.name: my-application node.name: node-1
path.data: /usr/share/elasticsearch/data path.logs: /usr/share/elasticsearch/logs
network.host: 0.0.0.0 http.port: 9200
cluster.initial_master_nodes: ["node-1"]
http.cors.allow-origin: "*"
|
- 构建容器
1 2 3 4 5 6 7 8 9 10 11 12
| docker run -p 9200:9200 -d --name es -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data -v /docker/es/logs:/usr/share/elasticsearch/logs -v /docker/es/plugins:/usr/share/elasticsearch/plugins --privileged=true elasticsearch:7.12.
出现异常:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决: 1. 修改配置sysctl.conf vi /etc/sysctl.conf
2. 在尾行添加以下内容 vm.max_map_count=655300
3. 执行命令 sysctl -p
|
- 拉取kibana镜像
1 2
| docker pull kibana:7.12.1
|
- kibana的配置文件
1 2 3 4 5 6 7 8 9 10 11
| mkdir /docker/kibana mkdir /docker/kibana/conf touch /docker/kibana/conf/kibana.yml
文件内容: server.name: kibana server.host: "0.0.0.0" elasticsearch.hosts: ["http://你的es地址:9200"] xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
|
- 构建kibana的容器
1
| docker run -p 5601:5601 -d --name kibana -v /docker/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.12.1
|
访问xxxxxxx:9200与xxxxx:5601
kibana:

elasticsearch:
