做网站哪些方面会侵权,软文广告营销,千阳做网站,外销网站怎么做的1 elasticsearch介绍
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。可以很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性。Elasticsearch 的实现原理主要分为以下几个步骤#xff0c;首先用户将数据提交到Elasticsea…1 elasticsearch介绍
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。可以很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性。Elasticsearch 的实现原理主要分为以下几个步骤首先用户将数据提交到Elasticsearch 数据库中再通过分词控制器去将对应的语句分词将其权重和分词结果一并存入数据当用户搜索数据时候再根据权重将结果排名打分再将返回结果呈现给用户。 Elasticsearch是与Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案称为“Elastic Stack”以前称为“ELK stack”。 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索具有接近实时的搜索并支持多租户。Elasticsearch是分布式的这意味着索引可以被分成分片每个分片可以有0个或多个副本。每个节点托管一个或多个分片并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引就不能更改主分片的数量。
2 ES相关的术语介绍 **index**也叫索引一个索引最少要有一个分片。指的是逻辑的存储和读取单元。一个索引也可以叫做1个文档名
**shard**分片用于实际存储数据信息。索引数据可以分布到集群中的不同节点每个索引可以分为多个分片。分片可以提高数据存储和查询的效率
**replica**副本用于索引分片冗余以及提高数据的可靠性和查询性能。副本可以分布在不同的节点上确保即使某些节点故障数据也不会丢失
**primary shard**主分片负责数据的读写
**replica shard**副本分片从primary shard同步数据且负责读的负载均衡。也就是说读数据时会往多个副本读取。
**allocation**把索引的不同分片分配到整个集群的过程
**document**文档用于的实际数据的载体分为元数据和源数据 源数据指的是用户实际的存储。数据存储在_source字段中 元数据用于描述数据的数据比如_index,_id,_type,_source
ES集群颜色和含义 green代表所有的主分片和副本分片都正常访问 yellow代码部分副本分片无法访问 例如副本数量大于集群数量。导致没有可用节点分配 red代表部分主分片无法访问
ES相关端口
9200支持http|https协议对外部提供服务访问9300支持tcp协议对内部ES集群进行数据传输
2 elasticsearch的安装
01 单点方式部署
IP主机名内存10.0.0.091elk912G
提示elasticsearch的deb安装包集成了java环境因此安装包体积较大也可以二进制部署软件和java环境分开部署。
1.以7.17.22版本为例wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.22-amd64.deb
2.安装软件包
dpkg -i elasticsearch-7.17.22-amd64.deb 3.修改配置文件vim /etc/elasticsearch/elasticsearch.yml
# 指定集群的名称每个ES集群的名称要唯一
17 cluster.name: wzy-com# 数据的存储路径默认即可
33 path.data: /var/lib/elasticsearch# 日志的存储路径默认即可
37 path.logs: /var/log/elasticsearch# 指定监听本地的地址监听全部则写成 0.0.0.0
56 #network.host: 10.0.0.91# 对外的访问端口
http.port: 9200# 集群之间数据传输端口
61 #http.port: 9200# 部署集群为单点类型
discovery.type: single-node简化的配置为
[rootelk91~]# yy /etc/elasticsearch/elasticsearch.yml
cluster.name: wzy-com
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.type: single-node3.启动es
systemctl restart elasticsearch.service[rootelk91~]# netstat -antlp | grep 9[23]00
tcp6 0 0 :::9300 :::* LISTEN 3235/java
tcp6 0 0 :::9200 :::* LISTEN 3235/java4.如果启动失败就去看日志/var/log/elasticsearch/wzy-com.log或者journalctl -fu elasticsearch
5.访问es
[rootelk91~]# curl http://10.0.0.91:9200
{name : elk91,cluster_name : wzy-com,cluster_uuid : ypPsMv8WQOmQZ3H1VSF-Xw,version : {number : 7.17.22,build_flavor : default,build_type : deb,build_hash : 38e9ca2e81304a821c50862dafab089ca863944b,build_date : 2024-06-06T07:35:17.876121680Z,build_snapshot : false,lucene_version : 8.11.3,minimum_wire_compatibility_version : 6.8.0,minimum_index_compatibility_version : 6.0.0-beta1},tagline : You Know, for Search
}6.卸载es
dpkg命令说明 dpkg -r 卸载 dpkg -P 卸载并移除配置文件
卸载后再使用rm -rf /tmp*
02 集群方式部署
1.环境准备
IP地址主机名10.0.0.91elk9110.0.0.92elk9210.0.0.93elk93
所有节点设置正确的时间ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime安装ES软件
1.所有节点修改配置文件为
cat /etc/elasticsearch/elasticsearch.yml EOF
cluster.name: elk-wzy
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300# 配置ES集群的服务发现列表主机
discovery.seed_hosts: [10.0.0.91,10.0.0.92,10.0.0.93]# 配置ES集群启动时参与master选举的节点
cluster.initial_master_nodes: [10.0.0.91,10.0.0.92,10.0.0.93]
EOF最后启动essystemctl enable elasticsearch --now
2.验证是否为集群还是脑裂。访问任意1个节点看到主机列表为3个节点就是搭建成功了。否则卸载重新搭建
[rootelk91~]# curl -s 10.0.0.93:9200/_cat/nodes
10.0.0.91 29 96 5 0.66 0.53 0.44 cdfhilmrstw - elk91
10.0.0.93 25 96 2 0.60 0.43 0.22 cdfhilmrstw - elk93
10.0.0.92 48 96 3 0.47 0.57 0.32 cdfhilmrstw * elk92# 卸载
systemctl disable elasticsearch --now
dpkg -P elasticsearch
rm -rf /tmp/* /var/{log,lib}/elasticsearch# 安装
dpkg -i elasticsearch-7.17.22-amd64.deb
cat /etc/elasticsearch/elasticsearch.yml EOF
cluster.name: efk-wzy
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: [10.0.0.91,10.0.0.92,10.0.0.93]
cluster.initial_master_nodes: [10.0.0.91,10.0.0.92,10.0.0.93]
EOF
systemctl enable elasticsearch --now03 ES的堆内存设置
此操作为可选项
-Xms 和 -Xmx 是 JVMJava 虚拟机启动参数用于设置堆内存Heap Memory的初始大小和最大大小。这两个参数直接影响 Java 应用的性能和内存管理。建议设置为主机内存的一半
修改 /etc/elasticsearch/jvm.options
...
-Xms4096m
-Xmx4096m
...