Elasticsearch
段德文
7 年 Java 开发经验,5 年互联网行业经验,自认达到高级工程师的水平,希望以后能成长为架构师。
展开
-
es生产集群部署之各个节点以daemon模式运行以及优雅关闭
1、以daemon模式运行在生产环境中,会使用daemon进程的方式来启动es,而不是直接采用前台进程的方式来启动es,具体命令如下./bin/elasticsearch -d -p pid上面命令中的-d option用来指定es以daemon进程方式启动,并且-p option指定将进程id记录在指定文件中es启动后,日志信息可以在ES_HOME/logs目录中查看此外,启动es进程的时候,还可以直接覆盖一些配置,使用-E即可,如下面的命令,通常用于调试集群参数时,方便快速调节参数.原创 2020-09-15 10:18:01 · 421 阅读 · 0 评论 -
es生产集群部署之production mode下启动时的bootstrap check
1、bootstrap check经常会碰到一些es的用户,遇到一些奇怪的问题,主要是因为他们没有配置一些重要的设置。在es以前的老版本中,对这些设置错误的配置,会在日志里记录一些warning告警。但是有时候用户会忽略这些日志中的告警信息。为了确保说这些设置的错误配置告警信息可以引起用户的注意,es的新版本中引入了bootstrap check,也就是启动时检查。这些启动时检查操作,会检查许多es和系统的设置,将这些配置的值跟es期望的安全值去进行比较。如果es在development mode.原创 2020-09-15 10:16:55 · 400 阅读 · 0 评论 -
ES生产集群部署之重要的操作系统设置(swapping、virutal memory等)
1、系统的重要配置理想情况下,es应该单独在一个服务器上运行,能够使用服务器上的所有资源。为了达到上述目标,我们需要配置操作系统,来允许用户运行es并且获取比默认情况下更多的资源。在生产环境中下面的一些设置必须配置一下:(1)禁止swapping(2)确保拥有足够的虚拟内存(3)确保拥有足够的线程数量开发模式 vs 生产模式默认情况下,es会假设你是在开发模式下运行的。如果上面的任何配置没有正确的设置,那么会输出一些warning到日志文件中,但是我们还是可以启动es进程的。但.原创 2020-07-02 10:11:12 · 1012 阅读 · 0 评论 -
ES生产集群部署之jvm和服务器内存分配的最佳实践以及原理分析
除了之前讲解的一些配置,根据你的集群环境特殊的配置,我们这一讲来讲解最重要的内存的分配,提出一些问题,生产环境部署es,不可避免要回答一个问题,比如我的机器上有64G的内存,或者32G的内存,那么一般来说我应该分配多少个G的内存给es的jvm heap1、jvm heap分配es默认会给jvm heap分配2个G的大小,对于几乎所有的生产环境来说,这个内存都太小了。如果用这个默认的heap size,那么生产环境的集群肯定表现不会太好。有两个方式来调节es中的jvm heap size。最简单.原创 2020-06-24 17:46:46 · 2965 阅读 · 0 评论 -
ES生产集群部署之绝对不能随意调节jvm和thread pool的原因
es中有很多的配置都让大家忍不住去调优,因为也许大家都太过于迷恋性能优化了,都认为优化一些配置可以大幅度提升性能,就感觉性能调优像个魔法一样,是个万能的东西。但是其实99.99%的情况下,对于es来说,大部分的参数都保留为默认的就可以了。因为这些参数经常被滥用和错误的调节,继而导致严重的稳定性问题以及性能的急剧下降。1、jvm gcjvm使用垃圾回收器来释放掉不用的内存,千万不要去调节默认的垃圾回收行为。es默认用的垃圾回收器是CMS。CMS回收器是并发式的回收器,能够跟应用程序工作线程并发工作,.原创 2020-06-17 16:36:19 · 423 阅读 · 0 评论 -
ES生产集群部署之针对集群重启时的shard恢复耗时过长问题定制的重要参数
shard recovery配置以及集群重启时的无意义shard重分配问题在集群重启的时候,有一些配置会影响shard恢复的过程。首先,我们需要理解默认配置下,shard恢复过程会发生什么事情。如果我们有10个node,每个node都有一个shard,可能是primary shard或者replica shard,你有一个index,有5个primary shard,每个primary shard有一个replica shard。如果我们将整个集群关闭了进行一些维护性的操作,比如给机器安装新的磁盘之类.原创 2020-06-15 14:35:43 · 961 阅读 · 0 评论 -
ES生产集群部署之必须根据自己的集群设置的一些重要参数
1、es的默认参数es的默认参数是非常好的,适合绝大多数的情况,尤其是一些性能相关的配置。因此刚开始部署一个生产环境下的es集群时,几乎所有的配置参数都可以用默认的设置。有很多的生产环境场景下,都是因为es集群管理人员自己去调整es的某些配置,结果导致集群出现了严重的故障,那些es集群管理员甚至还以为做出那些调节可以将es性能提升一百倍以上。比如mysql或者oracle这种关系型数据库,也许是需要非常重的调优,但是es是真的不用。如果我们现在面临着一些es的性能问题,通常建议的解决方案是更好的进.原创 2020-06-09 11:09:57 · 835 阅读 · 0 评论 -
ES生产集群部署之针对生产集群的脑裂问题专门定制的重要参数
最少master候选节点以及脑裂问题discovery.zen.minimum_master_nodes参数对于集群的可靠性来说,是非常重要的。这个设置可以预防脑裂问题,也就是一个集群中存在两个master。如果因为网络的故障,导致一个集群被划分成了两片,每片都有多个node,以及一个master,那么集群中就出现了两个master了。但是因为master是集群中非常重要的一个角色,主宰了集群状态的维护,以及shard的分配,因此如果有两个master的化,可能会导致破坏数据。那么那个参数的作.转载 2020-06-10 09:45:47 · 226 阅读 · 0 评论 -
ES生产集群部署之部署3个ES 5.5节点以及zen discovery集群发现机制
生产环境集群部署一点一点讲解的,生产环境去部署的时候,涉及到很多的配置,还有牵扯到了很多的es的知识点我们先下载es 5.5(7月6号为止)的压缩包,部署到3个节点上面去,但是不启动,因为我们接下来要花费很多讲的时间来讲解各种生产环境的参数的配置es模拟生产环境的3节点的集群给启动起来,停止es进程,curl,kibana1、在三个节点上都下载es如果要安装es,首先就要从官网下载es的安装包,并且最新es版本要求有JDK 8以上的版本es安装包的目录结构大致如下:bin:存放.原创 2020-06-05 09:45:30 · 994 阅读 · 1 评论 -
ES生产集群部署之从零开始搭建一套4个节点的2核4G虚拟机集群
这块我们跟大家说一下,一般来说,你即使要围绕es搭建一个集群的话,也建议至少4~5个节点,因为其实不光是es,后面可能还有kibana,logstash,elk生态栈的其他的东西要部署,包括这个高手进阶篇的课程,后面也是会不断的免费升级的,后面再出几个课程,单独收费,讲解运维,项目,ELK,等等。但是后来觉得说,既然大家都很支持我们,我们说还是决定敢说,对已经购买高级篇的同学,会不断免费升级,第二版,运维,第三版,搜索项目,第四版,ELK部署一个4个节点的虚拟机集群,每个虚拟机是2核4G,我的笔记本是.原创 2020-06-05 09:41:42 · 1175 阅读 · 0 评论 -
ES生产集群部署之硬件配置、jvm以及集群规划建议
我们之前一直是在windows环境下去启动一个单节点的es进程,然后去学习和练习各种es的高阶的搜索技术,聚合技术一般来说,如果我们刚开始用es,都是先在自己的笔记本电脑上,或者是几个虚拟机组成的小集群上,安装一个es,然后开始学习和试用其中的功能。但是如果我们要将es部署到生产环境中,那么是由很多额外的事情要做的。需要考虑我们部署的机器的内存、CPU、磁盘、JVM等各种资源和配置。1、内存es是很吃内存的,es吃的主要不是你的jvm的内存,一般来说es用jvm heap(堆内存)还是用的比较.原创 2020-06-05 09:39:07 · 4051 阅读 · 0 评论 -
Elasticsearch介绍
Elasticsearch的功能介绍(1)分布式的搜索引擎和数据分析引擎搜索:百度,网站的站内搜索,IT系统的检索。 数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些;新闻网站,最近1个月访问量排名前3的新闻版块是哪些。(2)全文检索,结构化检索,数据分析全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like "%牙膏%" 结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select *原创 2020-06-02 09:39:02 · 330 阅读 · 0 评论