赞
踩
es是一个分布式搜索和分析引擎。es存储的是序列化为json文档的复杂数据结构,而不是以列行数据的形式存储信息,当集群中有多个es节点时,存储的文档分布在整个集群中,可以从任何节点访问。
es能够处理大量数据,并允许用户进行复杂的查询和聚合操作.它提供了丰富的API和工具,方便用户进行搜索、分析、监控、可视化等操作,还具有高可扩展性、可靠性。
es节点的自动发现与故障转移的实现是基于Zen发现机制来实现的,Zen使用GossIp协议实现节点之间的信息交换,以尽可能快速的检测到新节点和丢失的节点
- 索引和文档存储: 在es中数据通过索引和文档进行存储和组织,索引可以看作是一个容器,用于存储相关文档,而文档则包含了需要被索引和搜索的数据。
- 分词和倒排索引: 当数据被存储到es中时,它会被分解为一系列词项,这个过程叫做分词.分词后会被用于构建倒排索引,根据词项来查找包含该词项的文档。
- 搜索和查询: 当用户提交一个查询请求时,es会通过查询语句来匹配索引中符合条件的文档,并计算每个文档与查询的相关度得分.然后将文档按照得分从高到低排序,呈现给用户。
- 分片和副本: es支持将索引划分为多个分片,以实现水平扩展和负载均衡.每个分片还可以设置一个或多个副本,以提高可用性和故障恢复能力。
- 集群通信和协调: 在es集群中,所有节点都可以互相通信和协调,通过GossIp协议来交换集群状态,并使用选举算法来选举主节点来协调集群的一些操作。例如分片的重新分配和副本的同步等。
总之,es基于分布式系统的思想,利用倒排索引和分布式计算等技术,实现高性能、高可用、高扩展性的搜索和分析功能。
- 首先准备三台2c4g服务器,并修改机器名称并安装jdk,并做免密,安装jdk及免密不在叙述。 192.168.10.11 es1 192.168.10.12 es2 192.168.10.12 es2 验证jdk是否安装,执行已下命令 java --version 返回以下结果代表安装成功 java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode) - 修改文件限制 vi /etc/security/limits.conf * hard nofile 65536 * soft nproc 2048 * hard nproc 4096 * soft memlock unlimited * hard memlock unlimited - 调整进程数 vi /etc/security/limits.d/20-nproc.conf * soft nproc 4096 root soft nproc unlimited - 调整虚拟内存&&最大连接数 vi /etc/sysctl.conf vm.max_map_count=655360 fs.file-max=655360 执行sysctl -p命令进行加载 - 关闭selinux及防火墙 vim /etc/selinux/config SELINUX=disabled #设置为disables systemctl stop firewalld #停止防火墙 systemctl disable firewalld #禁止开机自启动
1、下载官网es安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.13-linux-x86_64.tar.gz
2、创建es启动用户,并修改安装目录的属主属组、解压并安装
tar -zxvf elasticsearch-6.8.13-linux-x86_64.tar.gz -C /export/server/
创建es启动用户 (es必须使用普通用户启动,采用超管root用户启动会报错)
useradd elasticsearch
修改安装目录的属主属组
chown -R elasticsearch.elasticsearch -R /export/server/elasticserch-6.8.13
3、修改配置文件elasticsearch.yml和jvm.options文件 进入到安装目录下 cd /export/server/elasticsearch-6.8.13 进入配置文件目录 cd config/ 打开配置文件并进行修改 vim elasticsearch.yml cluster.name: test #指定es集群名称 node.name: es1 #节点名称 三台节点各自命名,不可相同 path.data: /export/server/elasticsearch-6.8.13/data #es数据存放目录 path.logs: /export/server/elasticsearch-6.8.13/logs #es日志存放目录 network.host: 192.168.10.11 #本机ip地址 三台机器各自的IP地址 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.10.11,192.168.10.12,192.168.10.13"] #监听哪些节点 打开jvm.options文件,主要修改以下两行配置: vim jvm.options -Xms2g #根据服务器内存大小进行设置 -Xmx2g
4、其余两台机器按照步骤1、2安装es,并将第一台修改好的配置文件拷贝到其余两台机器上进行替换,并修改node.name和network.host两处
#第二台机器
scp -p /export/server/elasticsearch-6.8.13/config/elasticsearch.yml 192.168.10.12: /export/server/elasticsearch-6.8.13/config/elasticsearch.yml
scp -p /export/server/elasticsearch-6.8.13/config/jvm.options 192.168.10.12: /export/server/elasticsearch-6.8.13/config/jvm.options
#第三台机器
scp -p /export/server/elasticsearch-6.8.13/config/elasticsearch.yml 192.168.10.13: /export/server/elasticsearch-6.8.13/config/elasticsearch.yml
scp -p /export/server/elasticsearch-6.8.13/config/jvm.options 192.168.10.13: /export/server/elasticsearch-6.8.13/config/jvm.options
5、启动es集群
三台es节点分别执行以下命令
su elasticsearch #切换到创建的es用户
/export/server/elasticsearch-6.8.13/bin/elasticsearch -d #执行启动命令
停止es集群命令
ps -ef |grep elasticsearch 查看进程的pid号
kill es进程pid即可
6、检查三台es机器是否分别成功启动es,及集群是否创建成功
分别执行以下命令:
ps -ef |grep elasticsearch 或者 netstat -lntp |grep 9200
检查es集群是否创建成功以及检查es集群健康状态:
1、使用命令查看节点是否已加入到集群中:
curl http://192.168.10.11:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.10.11 24 74 45 1.20 1.44 0.4 xxx * 192.168.10.11
192.168.10.12 23 44 34 1.10 1.20 0.9 xxx * 192.168.10.12
192.168.10.13 21 24 33 0.20 1.10 0.6 xxx * 192.168.10.13
2、检查集群健康状态:
curl http://192.168.56.130:9200/_cat/health?v
查看返回值中status状态,这个状态有三个分别是green、yellow、red,依次对应健康、亚健康、不健康状态
只有status为green或yellow时,集群方可使用.
至此,es集群搭建完成。且es集群的节点要求书必须为1、3、5..奇数个节点,方便集群重新选举master。通过此次搭建,不仅了解到了搭建es集群前服务器的调优,还针对es的启动做出了优化。并对整体的搭建流程有了更清楚的思路。不管是arm架构还是x86_64架构,搭建流程如法炮制即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。