Elasticsearch6

下载源码

  1. 源码下载地址是:https://github.com/elastic/elasticsearch/releases

  2. 上述网站中有各个版本的release,找到我们需要 的6.1.2版本,然后下载压缩包,如下图:

在这里插入图片描述

  1. 将源码下载到Ubuntu电脑上,执行tar -zxf elasticsearch-6.1.2.tar.gz解压后,得到新的文件夹elasticsearch-6.1.2;

修改源码

为了证明修改的源码可以正常构建和运行,我们来修改一个java文件,在里面打印一些日志;

  1. 进入前面解压得到的文件夹elasticsearch-6.1.2;

  2. 打开文件core/src/main/java/org/elasticsearch/node/Node.java,增加一个静态方法,作用是打印当前线程堆栈情况,内容如下:

public static void printTrack(Logger logger, String prefix){

StackTraceElement[] st = Thread.currentThread().getStackTrace();

if(null==st){

logger.info(“invalid stack”);

return;

}

StringBuffer sbf =new StringBuffer();

for(StackTraceElement e:st){

if(sbf.length()>0){

sbf.append(" <- ");

sbf.append(System.getProperty(“line.separator”));

}

sbf.append(java.text.MessageFormat.format(“{0}.{1}() {2}”

,e.getClassName()

,e.getMethodName()

,e.getLineNumber()));

}

logger.info(prefix

  • “\n************************************************************\n”

  • sbf.toString()

  • “\n************************************************************”);

}

  1. 找到Node.java的如下方法:

protected Node(final Environment environment, Collection<Class<? extends Plugin>> classpathPlugins) {

final List resourcesToClose = new ArrayList<>(); // register everything we need to release in the case of an error

boolean success = false;

{

// use temp logger just to say we are starting. we can’t use it later on because the node name might not be set

Logger logger = Loggers.getLogger(Node.class, NODE_NAME_SETTING.get(environment.settings()));

logger.info(“initializing …”);

}

logger.info(“initializing …”);这一行代码下面增加下面这一行内容,作用是在elasticsearch启动时打印Node类实例的调用堆栈:

printTrack(logger, “Here is stack of Node instance”);

保存好再退出,接下来可以编译了;

编译构建

  1. 进入文件夹elasticsearch-6.1.2,执行命令./gradlew assemble即可开始编译,下载依赖会消耗大量时间,因此请耐心等待,编译过程中CPU占用略高,如下图:

在这里插入图片描述

  1. 大约10多分钟后,编译构建成功,控制台如下所示:

Task :test:fixtures:old-elasticsearch:javadocJar

Building without git revision id.

Task :test:fixtures:old-elasticsearch:sourcesJar

Building without git revision id.

BUILD SUCCESSFUL in 11m 3s

473 actionable tasks: 473 executed

  1. 编译完成后,进入目录elasticsearch-6.1.2/distribution/tar/build/distributions可以见到构建成功的结果:elasticsearch-6.1.2-SNAPSHOT.tar.gz,这就是可用的elasticsearch-6.1.2;

  2. 构建结果文件以SNAPSHOT作为文件名后缀,如果不想要此后缀,在编译的时候改用以下命令即可:

./gradlew assemble -Dbuild.snapshot=false

验证构建的elasticsearch是否可用

  1. 解压elasticsearch-6.1.2-SNAPSHOT.tar.gz到一个目录下;

  2. 进入目录elasticsearch-6.1.2-SNAPSHOT/config,修改network.host的配置为0.0.0.0,如下图:

在这里插入图片描述

  1. 进入目录elasticsearch-6.1.2-SNAPSHOT/bin,执行./elasticsearch命令启动服务;

  2. 在控制台可以看到新增的代码打出的日志,将Node类的调用堆栈打印出来了,我们也借此机会了解到elasticsearch启动时的涉及到的关键类:

[2019-04-20T04:02:55,785][INFO ][o.e.n.Node ] [] initializing …

[2019-04-20T04:02:55,789][INFO ][o.e.n.Node ] [] Here is stack of Node instance

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

Elasticsearch是一个开源的分布式搜索和分析引擎,用于处理大规模数据集并提供实时的搜索和分析功能。升级Elasticsearch的版本是一个常见的需求,升级到较新的版本可以获得更多的功能改进和性能提升。 将Elasticsearch 6升级到7需要考虑以下几个方面: 1. 验证兼容性:在进行升级之前,需要确保应用程序和插件与新版本的Elasticsearch兼容。查阅Elasticsearch的官方文档,了解新版本的变化和已知的不兼容性,以便进行相应的调整。 2. 备份数据:在进行升级之前,务必对现有的Elasticsearch数据进行备份。这样可以在出现问题时可以恢复到之前的状态。 3. 依赖项更新:升级到较新的Elasticsearch版本会导致某些插件或扩展的不兼容性。因此,在进行升级之前,需要查看所有已安装的插件和扩展,并确保它们能够与新版本的Elasticsearch兼容。如果有不兼容的插件,需要考虑升级插件或找到替代方案。 4. 系统要求:Elasticsearch 7对硬件和操作系统的要求可能与之前的版本有所不同。检查新版本的系统要求,并确保服务器环境符合要求。 5. 测试升级:在正式环境之前,建议在一个测试环境中进行升级。这样可以测试升级过程中的问题,并确保应用程序在新版本下的正常运行。 6. 升级过程:升级Elasticsearch的过程涉及停止现有集群、备份数据、安装新版本并重新配置集群。使用Elasticsearch提供的升级文档指南,按照步骤执行升级过程。 7. 验证和优化:升级完成后,对新版本的Elasticsearch进行验证和优化。确保集群健康,并评估新功能的性能和效果。 总结而言,升级Elasticsearch是一个涉及多方面的过程,需要小心谨慎地进行。在升级之前做好准备工作,并遵循官方文档的指导,可以确保顺利升级并获得新版本的好处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值