es怎么分析内存问题
yingqi0906 回复了问题 • 5 人关注 • 7 个回复 • 3929 次浏览 • 2024-06-17 09:56
有些索引段合并时deletes_pct_allowed值不生效是什么原因呢?
Charele 回复了问题 • 2 人关注 • 2 个回复 • 4128 次浏览 • 2024-05-02 14:31
es query and fetch 2个操作数据可能不一致问题
Charele 回复了问题 • 2 人关注 • 1 个回复 • 3841 次浏览 • 2024-05-06 13:19
ES中会不会出现这个问题
emmning 回复了问题 • 2 人关注 • 2 个回复 • 4378 次浏览 • 2024-04-29 10:15
记某客户的一次 Elasticsearch 无缝数据迁移
yangmf2040 发表了文章 • 0 个评论 • 4666 次浏览 • 2024-04-02 14:16
背景
客户需要将 Elasticsearch 集群无缝迁移到移动云,迁移过程要保证业务的最小停机时间。
实现方式
通过采用成熟的 INFINI 网关来进行数据的双写,在集群的切换恢复过程中来记录数据变更,待全量数据恢复之后再追平后面增量数据,追平增量之后,进行校验确保数据一致再进行流量的切换。
总体流程
总体迁移流程如下:
- 客户业务代码,切流量,双写。(新增的变更都会记录在网关本地,但是暂停消费到移动云)
- 暂停网关移动云这边的增量数据消费。
- 迁移 11 月的数据,快照,快照上传到 S3;
- 下载 S3 的文件到移动云。
- 恢复快照到移动云的 11 月份的索引。
- 开启网关移动云这边的增量消费。
- 等待增量追平(接近追平)。
- 按照时间条件(如:时间 A,当前时间往前 30 分钟),验证文档数据量,Hash 校验等等。
- 停业务的写入,网关,腾讯云的写入(10 分钟)。
- 等待剩余的增量追完。
- 对时间 A 之后的,增量进行校验。
- 切换所有流量到移动云,业务端直接访问移动云 ES。
总体的迁移时间:
- 11 月备份时间(30 分钟)19 号开始
- 备份下载到移动云的时间(2-3 天)
- 备份恢复到移动云集群的时间(30 分钟)
- 11 月份增量备份(20 分钟)(双写开始)(21 号)
- 11 月份增量下载到移动云(6 小时)
- 11 月份增量恢复时间(20 分钟)
- 追增量数据(8 个小时产生的数据,需要 1 个小时)
- 校验比对(存量 1 个小时)
- 流量暂停,增量的校验(10 分钟)
- 切换(1 分钟)
总体流程如下示意图:
![](https://www.infinilabs.com/img ... ge.png)
ES 集群信息
- ES 版本 7.10.1
- 2个热节点 3个温节点 总数 1.9 TB
- 索引 1041, 分片2085
- 无自定义插件
- 有 update_bu_query 使用
- 有 delete_by_query 使用
- 吞吐量没有测试过,当前日增文档数 1 千多万,目标日增加上亿
迁移操作手册(参考)
环境
- 自建 ES 5.4.2
- 自建 ES 5.6.8
- 自建 ES 7.5.0
- 极限网关服务器 1
- 极限网关服务器 2
- 云端负载均衡 1 (监听 9200 端口,指向极限网关服务器 1/2 的 8000 端口)
- 云端负载均衡 2 (监听 9200 端口,指向极限网关服务器 1/2 的 8001 端口)
场景描述
若干个自建 Elasticsearch 集群需要平滑迁移到移动云,业务不停写、不做代码改动。
数据架构
通过将应用端流量走网关的方式,请求同步转发给自建 ES,网关记录所有的写入请求,并确保顺序在云端 ES 上重放请求,两侧集群的各种故障都妥善进行了处理,从而实现透明的集群双写,实现安全无缝的数据迁移。
![](https://www.infinilabs.com/img ... /2.jpg)
业务端如果已经部署在云上,可以使用云上的 SLB 服务来访问网关,确保后端网关的高可用,如果业务端和极限网关还在企业内网,可以使用极限网关自带的 4 层浮动 IP 来确保网关的[高可用](https://gateway.infinilabs.com ... ng_ip/)。
数据描述
以数据从自建集群 5.4.2 迁移到云上的 5.6.16 为例进行说明,执行步骤依次说明。
执行步骤
部署 INFINI Gateway
为了保证数据的无缝透明迁移,通过 INFINI [Gateway](https://infinilabs.cn/docs/latest/gateway/overview/) 来进行双写。
- 自建 ES 5.4.2
- 系统调优
参考此[文档](https://infinilabs.cn/docs/lat ... ation/)。
- 下载程序
<br /> [root@iZbp1gxkifg8uetb33pvcoZ ~]# mkdir /opt/gateway<br /> [root@iZbp1gxkifg8uetb33pvcoZ ~]# cd /opt/gateway/<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# wget <a href="http://release.infinilabs.com/gateway/snapshot/gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> --2022-05-19 10:16:25-- <a href="http://release.infinilabs.com/gateway/snapshot/gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> 正在解析主机 release.infinilabs.com (release.infinilabs.com)... 120.79.205.193<br /> 正在连接 release.infinilabs.com (release.infinilabs.com)|120.79.205.193|:80... 已连接。<br /> 已发出 HTTP 请求,正在等待回应... 200 OK<br /> 长度:7430568 (7.1M) [application/octet-stream]<br /> 正在保存至: “gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz”<br /> <br /> 100%[==============================================================================================================================================>] 7,430,568 22.8MB/s 用时 0.3s <br /> <br /> 2022-05-19 10:16:25 (22.8 MB/s) - 已保存 “gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz” [7430568/7430568])<br /> <br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# tar vxzf gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz <br /> gateway-linux-amd64<br /> gateway.yml<br /> sample-configs/<br /> sample-configs/elasticsearch-with-ldap.yml<br /> sample-configs/indices-replace.yml<br /> sample-configs/record_and_play.yml<br /> sample-configs/cross-cluster-search.yml<br /> sample-configs/kibana-proxy.yml<br /> sample-configs/elasticsearch-proxy.yml<br /> sample-configs/v8-bulk-indexing-compatibility.yml<br /> sample-configs/use_old_style_search_response.yml<br /> sample-configs/context-update.yml<br /> sample-configs/elasticsearch-route-by-index.yml<br /> sample-configs/hello_world.yml<br /> sample-configs/entry-with-tls.yml<br /> sample-configs/javascript.yml<br /> sample-configs/log4j-request-filter.yml<br /> sample-configs/request-filter.yml<br /> sample-configs/condition.yml<br /> sample-configs/cross-cluster-replication.yml<br /> sample-configs/secured-elasticsearch-proxy.yml<br /> sample-configs/fast-bulk-indexing.yml<br /> sample-configs/es_migration.yml<br /> sample-configs/index-docs-diff.yml<br /> sample-configs/rate-limiter.yml<br /> sample-configs/async-bulk-indexing.yml<br /> sample-configs/elasticssearch-request-logging.yml<br /> sample-configs/router_rules.yml<br /> sample-configs/auth.yml<br /> sample-configs/index-backup.yml<br />
- 修改配置
将网关提供的示例配置拷贝,并根据实际集群的信息进行相应的修改,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# cp sample-configs/cross-cluster-replication.yml 5.4.2TO5.6.16.yml <br />
首先修改集群的身份信息,如下:
![](https://www.infinilabs.com/img ... /3.png)
然后修改集群的注册信息,如下:
![](https://www.infinilabs.com/img ... /4.png)
根据需要修改网关监听的端口,以及是否开启 TLS (如果应用客户端通过 http 协议访问 ES,请将entry.tls.enabled 值改为 false),如下:
![](https://www.infinilabs.com/img ... /5.png)
不同的集群可以使用不同的配置,分别监听不同的端口,用于业务的分开访问。
- 启动网关
启动网关并指定刚刚创建的配置,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml <br /> <br /> ___ _ _____ __ __ __ _ <br /> / _ \ /_\ /__ \/__\/ / /\ \ \/_\ /\_/\<br /> / /_\///_\\ / /\/_\ \ \/ \/ //_\\\_ _/<br /> / /_\\/ _ \/ / //__ \ /\ / _ \/ \ <br /> \____/\_/ \_/\/ \__/ \/ \/\_/ \_/\_/ <br /> <br /> [GATEWAY] A light-weight, powerful and high-performance elasticsearch gateway.<br /> [GATEWAY] 1.6.0_SNAPSHOT, 2022-05-18 11:09:54, 2023-12-31 10:10:10, 73408e82a0f96352075f4c7d2974fd274eeafe11<br /> [05-19 13:35:43] [INF] [app.go:174] initializing gateway.<br /> [05-19 13:35:43] [INF] [app.go:175] using config: /opt/gateway/5.4.2TO5.6.16.yml.<br /> [05-19 13:35:43] [INF] [instance.go:72] workspace: /opt/gateway/data1/gateway/nodes/ca2tc22j7ad0gneois80<br /> [05-19 13:35:43] [INF] [app.go:283] gateway is up and running now.<br /> [05-19 13:35:50] [INF] [actions.go:358] elasticsearch [primary] is available<br /> [05-19 13:35:50] [INF] [api.go:262] api listen at: <a href="http://0.0.0.0:2900" rel="nofollow" target="_blank">http://0.0.0.0:2900</a><br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [backup] hosts: [] => [es-cn-tl32p9fkk0006m56k.elasticsearch.aliyuncs.com:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [backup] hosts: [] => [es-cn-tl32p9fkk0006m56k.elasticsearch.aliyuncs.com:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [entry.go:322] entry [my_es_entry/] listen at: <a href="https://0.0.0.0:8000" rel="nofollow" target="_blank">https://0.0.0.0:8000</a><br /> [05-19 13:35:50] [INF] [module.go:116] all modules are started<br />
- 后台运行
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# nohup ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml &<br />
- 应用授权
<br /> curl -XPOST <a href="http://localhost:2900/_license/apply" rel="nofollow" target="_blank">http://localhost:2900/_license/apply</a> -d'<br /> {<br /> "license": "XXXXXXXXXXXXXXXXXXXXXXXXX"<br /> }'<br />
部署 INFINI Console
为了方便在多个集群之间快速切换,使用 INFINI [Console](https://infinilabs.cn/products/console/) 来进行管理。
- 下载安装
<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# wget <a href="http://release.infinilabs.com/console/snapshot/console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> --2022-05-19 10:57:24-- <a href="http://release.infinilabs.com/console/snapshot/console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> 正在解析主机 release.infinilabs.com (release.infinilabs.com)... 120.79.205.193<br /> 正在连接 release.infinilabs.com (release.infinilabs.com)|120.79.205.193|:80... 已连接。<br /> 已发出 HTTP 请求,正在等待回应... 200 OK<br /> 长度:13576234 (13M) [application/octet-stream]<br /> 正在保存至: “console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz”<br /> <br /> 100%[==============================================================================================================================================>] 13,576,234 33.2MB/s 用时 0.4s <br /> <br /> 2022-05-19 10:57:25 (33.2 MB/s) - 已保存 “console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz” [13576234/13576234])<br /> <br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# tar vxzf console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz <br /> console-linux-amd64<br /> console.yml<br />
- 修改配置
```
[root@iZbp1gxkifg8uetb33pvcpZ console]# cat console.yml
for the system cluster, please use Elasticsearch v7.3+
elasticsearch:
- name: default
enabled: true
monitored: false
endpoint: http://es-cn-7mz2p9fty0007frx0 ... :9200
basic_auth:
username: elastic
password: XXXXXX
discovery:
enabled: false
...
```
- name: default
- 启动服务
<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# ./console-linux-amd64 -service install<br /> Success<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# ./console-linux-amd64 -service start<br /> Success<br />
- 访问后台
访问该主机的 9000 端口,即可打开 Console 后台,http://x.x.x.x:9000/
打开菜单 [System][Cluster] ,注册当前需要管理的 Elasticsearch 集群和网关地址,用来快速管理,如下:
![](https://www.infinilabs.com/img ... /6.png)
测试 INFINI Gateway
为了验证网关是否正常工作,我们通过 INFINI Console 来快速验证一下。
首先通过走网关的接口来创建一个索引,并写入一个文档,如下:
![](https://www.infinilabs.com/img ... /7.png)
查看 5.4.2 集群的数据情况,如下:
![](https://www.infinilabs.com/img ... /8.png)
查看集群 5.6.16 的数据情况,如下:
![](https://www.infinilabs.com/img ... /9.png)
说明网关配置都正常,验证结束。调整网关的消费策略
因为我们需要在全量数据迁移之后,才能进行增量数据的追加,在全量数据迁移完成之前,我们应该暂停增量数据的消费。修改网关配置里面 Pipeline
consume-queue_backup-to-backup
和consume-queue_primary-failure-to-backup
的参数auto_start
为false
,表示不自动启动该任务,具体配置方法如下:
![](https://www.infinilabs.com/img ... 10.png)
![](https://www.infinilabs.com/img ... 11.png)
修改完配置之后,需要重新启动网关。
为了方便管理,可以使用 INFINI Console 来注册和管理网关,如下:
![](https://www.infinilabs.com/img ... 12.png)
![](https://www.infinilabs.com/img ... 13.png)
待全量迁移完成之后,可以通过后台的 Task 管理来进行后续的任务启动、停止,如下:
![](https://www.infinilabs.com/img ... 14.png)切换流量
接下来,将业务正常写的流量切换到网关,也就是需要把之前指向 ES 5.4.2 的地址指向网关的地址,如果 5.4.2 集群开启了身份验证,业务端代码同样需要传递身份信息,和 5.4.2 之前的用法保持不变。
![](https://www.infinilabs.com/img ... 5.jpeg)
切换流量到网关之后,用户的请求还是以同步的方式正常访问自建集群,网关记录到的请求会按顺序记录到 MQ 里面,但是消费是暂停状态。
如果业务端代码使用的 ES 的 SDK 支持 Sniff,并且业务代码开启了 Sniff,那么应该关闭 Sniff,避免业务端通过 Sniff 直接链接到后端的 ES 节点,所有的流量现在应该都只通过网关来进行访问。全量数据迁移
在流量迁移到网关之后,我们开始对自建 Elasticsearch 集群的数据进行全量迁移到云端 Elasticsearch 集群。
![](https://infinilabs.cn/img/blog ... 6.jpeg)
全量迁移已有的数据的方式有很多种:
- 通过快照的方式进行恢复
- 使用工具来导出导入,如: [ESM](https://github.com/medcl/esm)
如果索引数量很多的话,可以按照索引依次进行导入,同时需要注意将 Mapping 和 Setting 提前导入。
以现在 5.4 集群的索引来为例,目前的待迁移索引为demo_5_4_2
,只有4
个文档:
![](https://infinilabs.cn/img/blog ... 17.png)
我们使用网关自带的迁移功能来进行数据迁移,拷贝自带的样例文件,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcpZ gateway]# cp sample-configs/es_migration.yml 5.4TO5.6.yml<br />
修改其中代表集群和索引的相关配置,可以根据需要配置是否需要重命名索引和统一 Type( 用于跨版本统一 Type),如下图红框位置:
![](https://infinilabs.cn/img/blog ... 18.png)
创建好模板和索引,如果目标集群不允许动态创建文档,需要提前创建好索引,如下图:
![](https://infinilabs.cn/img/blog ... 19.png)
然后就可以开始数据的迁移了,执行网关程序并指定刚刚定义的配置,如下:
![](https://infinilabs.cn/img/blog ... 20.png)
执行完成后,可以确认下数据的情况,如下图:
![](https://infinilabs.cn/img/blog ... 21.png)
全量数据至此导入完成。
增量数据迁移
在全量导入的过程中,可能存在数据的增量修改,不过这部分请求都已经完整记录下来了,我们只需要开启网关的消费任务即可将挤压的请求应用到云端的 Elasticsearch 集群。
![](https://infinilabs.cn/img/blog ... 2.jpeg)
示例操作如下:
![](https://infinilabs.cn/img/blog ... 23.png)
如果从 5.6 的集群来看的话,这部分的修改还没同步过来,如下:
![](https://infinilabs.cn/img/blog ... 24.png)
这部分增量的数据变更,在网关层面都进行了完整记录,我们只需要开启网关的增量消费任务,如下:
![](https://infinilabs.cn/img/blog ... 25.png)
通过观察队列是否消费完成来判断增量数据是否做完,如下:
![](https://infinilabs.cn/img/blog ... 26.png)
现在我们再看一下 5.6 集群的数据情况,如下:
![](https://infinilabs.cn/img/blog ... 27.png)
数据的增量更新就过来了。执行数据比对
由于集群内部的数据可能比较多,我们需要进行一个完整的比对才能确保数据的完整性,可以通过网关自带的数据比对工具来进行,将样例自带的文件拷贝一份,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcpZ gateway]# cp sample-configs/index-docs-diff.yml 5.4DIFF5.6.yml<br />
修改需要比对的集群和索引信息,可以加上过滤条件,如时间范围窗口来进行增量 Diff,如下图:
![](https://infinilabs.cn/img/blog ... 28.png)
执行网关程序,并指定该配置文件,如下图:
![](https://infinilabs.cn/img/blog ... 29.png)
如图,两个集群完全一致。切换集群
如果验证完之后,两个集群的数据已经完全一致了,可以将程序切换到新集群,或者将网关的配置里面的主备进行互换,同步写 5.6 集群。
![](https://infinilabs.cn/img/blog ... 0.jpeg)
双集群在线运行一段时间,待业务完全验证之后,再安全下线旧集群,如遇到问题,也可以随时回切到老集群。小结
通过使用极限网关,自建 ES 集群可以安全无缝的迁移到移动云 ES,在迁移的过程中,两套集群通过网关进行了解耦,两套集群的版本也可以不一样,在迁移的过程中还能实现版本的无缝升级。
如有任何问题,请随时联系我,期待与您交流!
![](https://infinilabs.cn/img/blog ... gf.png)
- 通过快照的方式进行恢复
关于ES Java Client的一个问题
mryu 回复了问题 • 3 人关注 • 3 个回复 • 2837 次浏览 • 2024-04-07 17:18
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书《一本书讲透Elasticsearch》已上线...
laoyang360 发表了文章 • 0 个评论 • 4251 次浏览 • 2024-03-27 15:55
今天,非常高兴地跟大家宣布,经过 7 年多的努力和精心准备,我们的新书《一本书讲透 Elasticsearch》已正式出版上线!
我从 2016 年接触 Elasticsearch 1.X、2.X 的版本,到现在已经接近 8 年+的时间。在这期间,我常常被问到:
如何系统性地学习 Elasticsearch ?
如何将现有的关系型数据库迁移到 ES ?
如何选择合适的版本?
如何规划和监控集群?
如何进行数据建模?
如何选择合适的检索方式?
如何基于现有数据进行可视化分析?
等一系列问题.......
这些问题促使我将之前的产品开发、项目实战经验和咨询经验进行全面整合,并精心梳理,融入到这本新书中,希望能让大家少走不必要的弯路。
一、书籍特点
本书具有以下几个显著特点:
最新版本,前沿知识点
本书基于 8.x 版本编写,涵盖了如索引生命周期管理、快照生命周期管理、数据流 datastream 等至关重要的新特性。
核心知识,系统认知
我们为您提供了清晰的学习路径,保留了最核心的“最少必要”知识点,并通过思维导图和大量图解内容,帮助读者更易理解和吸收。
实际应用,超越认证
覆盖Elastic官方认证的核心知识点,已帮助近200人通过Elastic专家认证考试。内容不仅限于认证,更注重实际应用。
来源于实战,应用于实战
书中内容源自真实项目案例和企业级问题解答(问题来自于Elasticsearch中文社区、死磕Elasticsearch知识星球、微信群、QQ群等)。涵盖3个实战项目,助力读者将技能应用到企业实战环境中。
代码开源,答疑服务
全书的代码、脚本在GitHub上开源,便于初学者通过实践学习。我们的答疑社群将持续跟踪最新问题,不断迭代更新内容。
二、5 个最尖锐问题快问快答
如下的问题来自 ChatGPT 4.0 的作为专业读者提出的 5 个最尖锐问题。
我快速回答一下:
2.1 问题1:市场竞争和定位问题
“市面上已有接近10本关于Elasticsearch的书籍,您的书与这些现有书籍相比有何独特之处?您是如何确保您的书在内容上与其他书籍区别开来,满足读者新的或更深入的需求的?”
铭毅天下:
1、独特之处:版本咱们是目前市场唯一的 8.X 版本。
2、区别开来:我从 2016 年开始搞 ElasticStack 到现在几乎平均每周一篇技术博客,从未间断。无需多说,时间能证明一切!这是咱们最大的不同之一。
3、还有不同:我自己公众号+博客有累计近 4.5 万+关注读者,知识星球有近2000人付费用户,这些大量的实战问题促使我唯有“自我革命”才能生存和成长!
2.2 问题2:实用性和更新性问题
“鉴于Elasticsearch技术持续发展和迭代,您的书籍是如何处理和包含最新版本的特性和变化的?在提供最新信息的同时,您如何保证书中内容的长期有效性和实用性?”
铭毅天下:
1、实话说结论,我做不到,市面上任何纸质书都不可能做到。受限于撰写、出版等相较于 Elastic技术栈体系更新的滞后性。
2、但是,我在筛选知识点的时候已充分考虑结合企业级实战以及 Elastic 官方认证考试的最核心、最关键的“最少必要知识”作为咱们的提纲,并且承诺后面继续根据读者反馈迭代和升级。
2.3 问题3:作者经验和权威性问题
“您能否分享一些您个人在Elasticsearch领域的实战经验或特殊贡献,这些经验如何在您的书中得到体现?作为作者,您相比其他书籍作者有哪些独特的优势或视角?”
铭毅天下:
1、本人持续深耕大数据存储和检索领域 7 年+,有博客为证!有丰富的项目实战经验和企业级实战问题咨询经验,已带领近200人+通过 Elastic 认证专家考试。
2、独特视角就是:来自全国乃至全球多个国家的实战问题——自己运营的知识星球、微信群、QQ群多达数千人,每天都有大量实战问题涌现。
3、作者是坚定的长期主义者:博客已写12年+,从未间断!相信积累的力量、相信坚持的力量、相信相信的力量!
2.4 问题4:读者受益问题
“您认为读者在阅读您的书籍之后,最具体和显著的收获会是什么?有哪些实际的技能或知识可以直接应用到他们的工作和项目中?”
铭毅天下:
1、少走不必要的弯路!
2、能获得属于自己的专属学习路线,能建立专属的知识体系,能将 Elasticsearch 原理、开发、运维、架构技能应用于实战。
2.5 问题5:内容深度和广度问题
“您的书籍是如何平衡Elasticsearch的基础知识和高级技术的?它是否适合所有水平的读者,从初学者到高级用户?对于那些已经具有深厚Elasticsearch知识背景的读者,您的书提供了哪些更深入的见解或独特内容?”
铭毅天下:
1、适合大数据存储和检索领域的初学者,也同样适合有工作经验的中级、高级工程师、架构师等。
2、对于深厚Elasticsearch知识背景的读者,本书可以当做工具书,需要时备查、常翻常新。
三、行业顶级大佬的推荐
值得一提的是,这本书获得了 Elastic 创始人兼CTO Shay Banon 、Elastic中文社区创始人兼极限科技CTO等15位顶级专家的强力推荐,是一本不可多得的Elasticsearch学习材料。
I am very happy to see that Elasticsearch has been widely used in China, which fully reflects the open source, free and open power of Elastic. This book is derived from the author's 7 years of technical accumulation and embodies the author's love for ElasticStack open source technology. I hope this book can help more people understand Elasticsearch and search technology, so as to discover the great value of data. I am convinced that this book will have a profound impact on Elastic's Chinese community.
我很高兴看到Elasticsearch在中国得到了广泛的应用,这充分体现了Elastic开源、自由、开放的力量。本书源自作者7年的技术积累,体现了作者对ElasticStack开源技术的热爱。希望这本书能够帮助更多的人了解Elasticsearch和搜索技术,从而发现数据的巨大价值。我相信这本书将对 Elastic 的中文社区产生深远的影响。
——Shay Banon Elastic公司创始人兼首席技术官
很高兴看到铭毅天下的新书出版,《一本书讲透Elasticsearch:原理、进阶与工程实践》是一本值得推荐的新书。它汇集了作者丰富的实战经验,深入探讨 Elasticsearch的 核心原理。书中丰富的图解和清晰的结构使得复杂的知识易于理解和吸收。同时,它覆盖了 Elastic 认证考试的所有考点,助力读者建立全面的认知。此外,书中还包含实战项目,帮助读者将所学技能应用到实际场景中。作者拥有多年实战经验和广泛的影响力,这本书将成为学习和应用 Elasticsearch 的重要指南。
——Medcl,Elastic 中文社区创始人、极限科技创始人
铭毅天下是ES中文社区里少有的常年坚持写作的技术博主,尤其擅长将点状发散的社区讨论进行归纳总结,结合自己的实践和再思考,形成系统性的系列技术文章。本书成于作者在Elasticsearch领域多年的理论知识沉淀,并涵盖了实际应用场景的最佳实践。无论你是Elasticsearch初学者还是有一定经验的开发者,相信都能通过阅读本书而受益匪浅。
—— 吴晓刚 (Wood大叔)携程旅行网 企业数字化平台部 研发总监
在大数据检索和分析领域,Elastic Stack 技术栈有广泛应用,本书从业务场景出发详细介绍了在 Elasticsearch 擅长的各类场景中完成业务系统开发所需的技术栈和技术手段,为用户系统选型和了解整体技术架构提供了指导,可以帮助用户少走弯路,快速完成系统建设。
——张超 《Elasticsearch 源码解析与优化实战》作者, Elasticsearch 内核资深研发工程师
本书基于Elasticsearch最新的8.X版本,涵盖了Elasticsearch更加完整、实时的功能。作者拥有丰富的Elasticsearch和写作经验,语言通俗易懂,内容详尽全面。无论你是初学者还是有一定经验的开发人员,本书都能够为你提供更深入的内容和最佳实践。如果你想系统地学习、掌握Elasticsearch,那么这本书绝对是你不可错过的参考书籍。
—— 魏子珺,阿里巴巴elasticsearch内核专家
很高兴为大家推荐这本关于Elasticsearch的技术书籍。本书涵盖了相当丰富的原理讲解和实现技术,更重要的是对实战场景给出了明确的指导案例和代码片段可供参考和使用。即面向开发人员深入讲解了搜索引擎的核心算法与数据结构,也同时给运维人员提供了关键指标的定义和解读。对于想系统学习的初、中级用户,可以按照章节循序渐进的阅读。对于高级用户来说,也可以从 遇到的问题为切入点,直接从某个具体章节入手来测试、寻求解决方案。铭毅天下是Elastic中文社区长期活跃和积极贡献的明星成员。非常兴奋看到他把自己日积月累的知识精华和经验总结在书中分享给广大读者。我相信本书一定可以帮助到处在任何阶段想学习探索Elasticsearch的用户。
——吴斌,Elastic中文社区主席
《一本书讲透Elasticsearch:原理、进阶与工程实践》是一本由一线开发人员撰写的实战指南。作者凭借多年的 Elasticsearch 咨询和教学经验,将复杂的概念以简明易懂的方式呈现给读者。这本书将帮助你深入了解 Elasticsearch,并理解其背后的原理和逻辑。通过学习本书,你将获得全面的知识,从而能够灵活应用 Elasticsearch 解决各种实际问题。相信这本书将成为你掌握 Elasticsearch 的必备工具。
——阮一鸣,eBay 高级研发经理、极客时间『Elasticsearch 核心技术与实战』课程讲师
铭毅在 Elasticsearch 领域深耕多年,勤奋且专注, 同时运营着国内最大的 ES 社群 ,帮助许多同学成功通过了有难度的 Elastic 认证工程师考试。很高兴看到他的新书出版,都说万事开头难,但我相信这本书能够为ES 初学者铺平道路,扫除障碍,澄清疑虑,快速上手!推荐大家阅读!
——魏彬,中国首位 Elastic 认证工程师
《一本书讲透Elasticsearch:原理、进阶与工程实践 》这本书是我极力推荐的一部作品!
我认识铭毅天下很久了,第一次见面记得是2019年在北京的Elastic开发者大会上,但在这之前,我就经常阅读他关于Elasticsearch的技术分享而神交已久。我了解的铭毅天下是一位拥有丰富的Elasticsearch领域知识和经验的专家,他曾在PB级大数据系统项目中发挥关键作用。实施这种大规模,长周期的复杂项目是非常不容易的,无论从系统设计,到实施过程中的问题解决。因此,来自于实践的真知产出,值得我们开卷。
多年来,铭毅天下一直积极、高效地在各种博客和社交媒体上分享与Elasticsearch相关的内容,并密切同步每个版本的更新。在Elasticsearch上,他不仅持续自我精进,还组织了学习小组和社区,帮助其他对Elasticsearch感兴趣的伙伴一起进步。他还带领150多人通过Elastic工程师认证,为许多人的职业发展贡献了力量。
这本书是铭毅天下多年经验的总结,内容涵盖了几乎全部的Elastic认证考点,而且它来自铭毅天下近7年的博客积累,每一章节都经得起时间的考验。因为抓住了平时学习和使用Elasticsearch当中痛点并总结了最佳实践,这些内容不仅阅读量高,而且转发度也很广泛。无论你是想深入了解Elasticsearch的基础知识还是应用实践,这本书都能满足你的需求。
我相信这本书将为读者提供一次全面而深入的学习体验,帮助他们在Elasticsearch领域取得突破。无论你是初学者还是有经验的专业人士,这本书都是不可或缺的指南。我由衷地推荐这本书,相信它会成为你在Elasticsearch学习和实践中的得力伙伴!
——李捷,Elastic 解决方案架构师 Principle Solution Architect
当得知本书成稿的消息时,我的心情是非常激动的,不管是作为一名技术人,还是作为一名搜索引擎的从业者,以及作为一名Elasticsearch中文社区的参与者和建设者。本书作者与我们一起见证了Elastic生态在国内的起步、发展以及到今天的繁荣;有所不同的是,作者有超强的毅力(就像铭毅天下的名字一样),坚持在这个技术方向上深耕了7年之久,在知识、技术和实践等方面有着深厚的经验积累,不但亲力亲为,而且深谙知识社群与实践社区CoP的操盘之道,在自我成长的同时也打造了优质的同行网络,积极影响了一批技术人,其中的优秀者更是通过了Elatics官方认证,极具含金量。本书的出版,一定会给更多技术人带来直接或间接的帮助,同时在个人成长、知识共享与实践社区等方面在业内树立成功的榜样。让我们一起用技术影响世界影响人!
—— 杨振涛,Elastisearch中文社区深圳主席|vivo互联网 研发总监
Elasticsearch是人工智能和大数据时代不可或缺的重要产品,已经成为开发者必备技能。本书汇集了作者多年开发经验、咨询经验、数千个Elasticsearch爱好者的最佳实战。因此在讲解原理的同时,能深入到最佳实践中去,做到深入浅出,非常适合Elasticsearch的初学者以及进阶者。
—— 付磊,快手Elasticsearch负责人,《Redis开发与运维》作者
Elasticsearch 作为一款强大又灵活的数据分析检索工具,值得每一位后端程序员认真学习。铭毅天下的这本《一本书讲透Elasticsearch:原理、进阶与工程实践》,用浅显易懂的语言介绍了Elasticsearch的概念、原理和实践,非常值得阅读!
—— 程序员小灰,公众号【程序员小灰】运营者,畅销书《漫画算法》作者
铭毅是我的老友,他是一个及其认证踏实和执着追究技术的人,这七年来他一直热心Elasticstack相关技术的步道,热忱帮助社区和公众号里的伙伴,成就不俗。本书是一本实用性极高的Elasticsearch的实践类书籍,更是铭毅倾尽所学之作。通读原稿后,让我非常欣赏的地方在于,它是市面上难得一见的把Elasticsearch原理,实现方式,最佳实践,以及实战案例串联在一起实操类书籍,无论是初学者还是需要进阶学习的人员都能从中获取想要的内容。十分适合想要在企业环境中落地Elasticsearch的人们,因此我诚意把它推荐给广大的技术爱好者和相关从业人员。
——周钰, IBM中国 企业架构师 中国前50 Elastic持证者
Elasticsearch作为一款优秀的开源分布式搜索引擎,被广泛应用在日志分析、站内搜索、指标监控、数据加速等场景,学习并掌握ES,已经成为一个技术工作人员不可或缺的重要技能之一。而本书深入浅出,对Elasticsearch的基本概念、设计原理及实践进行了详细介绍,是学习Elasticsearch的必备资料。诚挚推荐。
—— 吴荣,Elasticsearch平台资深研发工程师
一份专业、细致、用户友好的技术文档能给我们技术人员的日常工作带来多大的帮助,相信大家都有深刻的体会,特别是像Elasticsearch这种在搜索引擎领域最广泛应用的解决方案更是如此。虽然官方文档内容很详尽,更新很及时,但是限于语言、网速等问题,广大国内开发者并不能很准确高效的找到自己需要的内容。铭毅老师这本,兼顾了内容的专业性、严谨性、完整性,围绕着Elasticsearch及其相关组件所撰写,覆盖了从基础概念到高级用法的方方面面内容的专业书籍,能给各位带来的价值就不言而喻了。这本书适合从入门使用到高级调优的各层次的读者,是一本少有的适合放在案头常看常新的书。
—— 陈晨(死敌wen),资深搜索架构师、Elastic认证专家
15位大佬评价批量导入 Elasticsearch
15位大佬评价 Kibana 可视化
15位大佬评价词云图
无论您是大数据检索领域的初学者、开发和运维人员,还是架构师和管理人员,这本书都将成为实战路上的得力助手和“避坑指南”。
立即购买以获取专属福利:不论您从哪里购买、不论多少费用购买,记得保留购物链接和发票,费用都可以折算同等价格的星球优惠券。
私V信:elastic6 搞定后续一切流程。
————————————————
本文为博主原创文章,未经博主书面授权不得转载。书面授权后方可转载,但转载请务必加上原作者:铭毅天下,原文地址:blog.csdn.net/laoyang360
原文链接:https://blog.csdn.net/laoyang3 ... 14659
搞了一个冷节点存储空间有200T,一直报错 Too many open files
Charele 回复了问题 • 2 人关注 • 1 个回复 • 2108 次浏览 • 2024-03-24 20:16
elasticsearch堆内存中有大量的ClusterState类信息
Charele 回复了问题 • 2 人关注 • 1 个回复 • 1253 次浏览 • 2024-03-18 22:44