ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【Elasticsearch 7(1),2024年最新教你一种更清晰的大数据开辟架构 [打印本页]

作者: 前进之路    时间: 2024-7-27 22:21
标题: 【Elasticsearch 7(1),2024年最新教你一种更清晰的大数据开辟架构
(3)其他配置迁徙,将旧版本的config/elasticsearch.yml文件中自行添加的配置例如集群、节点、内存、网络、安全等配置迁徙过来。
(4)设置用户名密码与旧版本保持一致。
2.创建快照

(1)服务运行时建立速度大概很慢,并且升级完成后还需要同步中途的数据,所以建议制止访问es。
(2)编辑旧版本es配置文件config/elasticsearch.yml,设置快照仓库路径path.repo: ['xxx/es_snapshot_repository']。
(3)注册快照仓库。注册后会在(2)中仓库路径中建立相应的文件夹。
  1. PUT /_snapshot/snapshot_repository
  2. {
  3.   "type": "fs",
  4.   "settings": {
  5.     "location": "snapshot\_repository"
  6.   }
  7. }
复制代码
(4)建立索引数据快照。
  1. #第二个路径是注册的快照仓库名称,第三个是快照名称,命名上可以加上日期,没有请求体就是全部索引都建立快照
  2. PUT /_snapshot/snapshot_repository/snapshot_20231024
复制代码
(5)在kibana中Stack Management->Snapshot and Restore中查看快照是否建立完毕。
(6)完成创建快照以后,记录当前数据总量以及分词搜刮效果用于验证。之后制止旧版本的es和kibana。
  1. GET my_index/_search
  2. {
  3.   "query": {
  4.     "match": {
  5.       "keyword": "李佳琪哪李贵了"
  6.     }
  7.   },
  8.   "track\_total\_hits": true,
  9.   "\_source": ["keyword"]
  10. }
复制代码
3.恢复快照

(1)编辑新版本es配置文件config/elasticsearch.yml,与2中(2)的快照仓库路径保持一致。
(2)启动新版本es和kibana。
(3)注册快照仓库。与2中(3)保持一致。
(4)进入kibana中Stack Management->Snapshot and Restore,选择快照点击Restore进行恢复。

(5)取消全部勾选,只勾选业务索引数据,es、kibana自身的索引数据视情况恢复。

后续一直点击next,恢复数据即可,恢复完成后验证数量和分词搜刮效果。
三、服务修改

   我们有使用一个项目es-search访问es,其他服务引入它的jar包来调用编写好的接口访问es。
  1.现有代码兼容es8.x

现在我们使用rest-high-level-client相关api访问es。ES官方文档表现8.x版本不再提供这个包,而是使用elasticsearch-java访问,此中的api全部变了。同时,官方给出了一种过度方案,使用7.17.x版本的rest-high-level-client可以以兼容模式访问8.x 原文地点 。

所以如果在不修改业务代码的情况下,要访问es8.x需要使用7.17.14的es相关包。
  1. <properties>
  2.     <!--spring-boot-parent-starter有es的依赖,所以只需要变更es版本即可变更依赖-->
  3.     <elasticsearch.version>7.17.14</elasticsearch.version>
  4. </properties>
复制代码
2.兼容两个版本es

经过实测发现,使用7.17.14版本的包无法访问当前版本为7.9.2的es 。
所以考虑需要搞两套代码,分别使用7.6.2的包和7.17.14的包。将es-search拆分为4个子模块,


存在的问题

由于java不支持同时引入多版本的包,所以在最终使用是只有一种版本的包。例如project-A引入es-search后,pom文件只能指定一个es的版本。那给不同地区摆设的时间就需要不同的es包的版本,并修改配置文件以加载不同版本的实现类。如许导致不好管理,测试也比较麻烦。

2.1 修改es包

使用maven-shade-plugin插件对7.17.14的包进行修改。它可以对package名进行一部分的替换,如许就相当于把es的代码copy了一份,就可以跟7.6.2的包同时使用。
(1)使用maven-shade-plugin修改包

创建一个空的maven项目,引入7.17.14的es依靠。由于es底层是lucene,所以我们除了修改org.elasticsearch也需要修改org.apache.lucene。
最后还需要注意修改META-INF中service的全限定类名,有的项目是通过类加载器去找的,所以也要改。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://maven.apache.org/POM/4.0.0"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>com.yourcompany.yourporject</groupId>
  7.     <artifactId>shade-es</artifactId>
  8.     <version>7.17.14-SNAPSHOT</version>
  9.     <properties>
  10.         <maven.compiler.source>8</maven.compiler.source>
  11.         <maven.compiler.target>8</maven.compiler.target>
  12.     </properties>
  13.     <dependencies>
  14.         <dependency>
  15.             <groupId>org.elasticsearch</groupId>
  16.             <artifactId>elasticsearch</artifactId>
  17.             <version>7.17.14</version>
  18.             <exclusions>
  19.                 <exclusion>
  20.                     <groupId>commons-logging</groupId>
  21.                     <artifactId>commons-logging</artifactId>
  22.                 </exclusion>
  23.                 <exclusion>
  24.                     <groupId>org.apache.logging.log4j</groupId>
  25.                     <artifactId>log4j-core</artifactId>
  26.                 </exclusion>
  27.                 <exclusion>
  28.                     <groupId>org.apache.logging.log4j</groupId>
  29.                     <artifactId>log4j-api</artifactId>
  30.                 </exclusion>
  31.             </exclusions>
  32.         </dependency>
  33.         <dependency>
  34.             <groupId>org.elasticsearch.client</groupId>
  35.             <artifactId>elasticsearch-rest-high-level-client</artifactId>
  36.             <version>7.17.14</version>
  37.             <exclusions>
  38.                 <exclusion>
  39.                     <groupId>commons-logging</groupId>
  40.                     <artifactId>commons-logging</artifactId>
  41.                 </exclusion>
  42.             </exclusions>
  43.         </dependency>
  44.     </dependencies>
  45. **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
  46. **深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
  47. **因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
  48. ![img](https://img-blog.csdnimg.cn/img_convert/d5884685e54346528f5b3b5da9660172.png)
  49. ![img](https://img-blog.csdnimg.cn/img_convert/07c69f007fe9660957d4362a8cc23ea6.png)
  50. ![img](https://img-blog.csdnimg.cn/img_convert/35855b623635509f9992b2c836a8367c.png)
  51. ![img](https://img-blog.csdnimg.cn/img_convert/cec11957ea66b0cda24de6899a482f72.png)
  52. ![img](https://img-blog.csdnimg.cn/img_convert/67aadfb1c99e2dcedb704f24589fb9bc.png)
  53. **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
  54. **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
  55. **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
  56. ![img](https://img-blog.csdnimg.cn/img_convert/59d955342378486967168c2222116893.png)
  57. **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  58. 、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
  59. **如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
  60. [外链图片转存中...(img-A3bhs9qF-1712995973809)]
  61. **一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4