Elasticsearch总结:特点、安装与集群配置

版权申诉
0 下载量 136 浏览量 更新于2024-09-09 收藏 3KB MD 举报
"Elasticsearch是基于Lucene的开源搜索引擎,以分布式、实时、高可用和全文检索等特性著称。本文将对Elasticsearch的主要特点、安装部署过程、相关概念及操作指令进行总结,同时也涉及到了集群配置和安全设置。" ### 1. Elasticsearch的特点 - **分布式**: Elasticsearch设计为分布式系统,可以水平扩展,支持多节点集群,提供数据冗余,增强系统的容错能力。 - **高可用**: 通过复制和自动故障转移机制,确保即使在单个节点故障时,服务仍然可用。 - **搜索分析**: 专门优化了全文搜索和数据分析,支持复杂的查询语句和聚合功能。 ### 2. Elasticsearch安装部署 - **Java环境**: Elasticsearch依赖Java运行环境,确保安装JRE或JDK。 - **系统资源**: 服务器至少需要2GB内存,磁盘空间充足,避免性能瓶颈。 - **内存锁定**: 在配置文件中开启内存锁定,以防止操作系统因交换导致性能下降。 - **JVM设置**: 调整JVM最大最小内存设置,建议不超过30GB,保持一致以优化垃圾回收。 - **网络配置**: 绑定内网IP和本地IP,限制访问,增加安全性。 ### 3. 验证ES服务 - 使用`ps aux | grep elastic`检查ES进程,`netstat -lnpt | grep 9200`检查9200端口是否监听。 ### 4. 防火墙配置 - 开放9200和9300端口,其中9200对外提供HTTP服务,9300用于集群内部通信。 ### 5. 安装es-head插件 - 通过npm安装es-head,确保已安装npm和node.js。 - es-head作为可视化工具,可作为谷歌浏览器插件使用,便于管理与监控ES集群。 ### 6. Elasticsearch核心概念 - **Index**:类似于MySQL的数据库,是存储数据的逻辑空间。 - **Type**:相当于数据库中的表,但ES 6.0以后废弃,推荐使用`Mapping`代替。 - **Doc**:类似于数据库中的一条记录。 - **Fields**:对应于数据库中的字段。 - **Shards**:分片是Elasticsearch处理大数据的关键,数据被分割为多个片段,分散在集群的不同节点上,实现负载均衡。 ### 7. ES操作指令 - **PUT**:创建或更新索引及文档。 - **GET**:获取索引或文档信息。 - **POST**:常用于插入新数据,特别是当文档ID未知时。 - **DELETE**:删除索引或文档。 ### 8. Elasticsearch集群配置示例 - `cluster.name`: 集群名称,集群内的所有节点需一致。 - `node.name`: 每个节点的唯一名称。 - `path.data` 和 `path.logs`:数据和日志存储路径。 - `bootstrap.memory_lock`: 启用内存锁定。 - `network.host`:绑定的主机地址。 - `http.port`:HTTP服务端口。 - `discovery.zen.ping.unicast.hosts`: 集群发现地址,用于节点间的通信。 ### 9. 集群最小节点数(`discovery.zen.minimum_master_nodes`) 确保选举过程中不会出现脑裂现象,设置值应为 `(number_of_data_nodes / 2) + 1`。 ### 总结 Elasticsearch的灵活性和强大功能使其在日志分析、实时搜索、大数据处理等领域广泛应用。了解并熟练掌握其特点、安装配置、操作指令以及集群管理,是有效利用Elasticsearch的前提。在实际使用中,还需要考虑安全性、性能优化和监控等方面,以确保系统的稳定高效运行。