【源码阅读】修改elasticsearch源码并且编译打包

前言

相信很多人在启动elasticsearch 5版本以上的应用过程中曾被以下错误终止启动了。

max virtual memory areas vm.max_map_count [%d] is too low, increase to
at least [%d]

下面我们尝试修改elasticsearch源码跳过这个限制。。。为啥会有这个想法,因为有时候我们单纯下载到docker镜像里面跑一下学习一下而已,不想修改宿主机配置或者不便于修改宿主机配置。虽然装elasticsearch 2版本没这个错误提示,但是系列比较老了,没法体验新版elasticsearch的特性。下面我们来尝试这个操作来熟悉elasticsearch源码修改并且编译打包过程,一方面能熟悉elasticsearch打包流程,另外也方便后续调试和阅读elasticsearch代码。

实践环境

  1. Mac 其他系统流程类似。
  2. IDEA
  3. elasticsearch 6.6.2 源码下载地址 https://download.csdn.net/download/bojie5744/11236495
    (更多版本源码查看 https://github.com/elastic/elasticsearch/releases )
  4. openjdk-11 编译elasticsearch 6.6.2源码的要求,不然会报错 At least Java 11 is required 。下载地址: https://download.csdn.net/download/aqtata/10687785 (dmg安装包,CSDN下载比较快,官网比较慢)
    在这里插入图片描述

使用idea导入项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

发现提示错误,You must run gradle idea from the root of elasticsearch before importing into IntelliJ ,也就是我们在导入项目前需要先在项目根目录执行./gradlew idea 命令。

执行java -version看看是不是已经是java 11了,如果不是,那么我们需要先执行 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home 设置java环境,然后再执行./gradlew idea
在这里插入图片描述
在这里插入图片描述
执行完毕,回去刷新build状态,可以看到全部都绿色打勾了。
在这里插入图片描述

修改源码代码

在工程通过搜索max virtual memory areas vm.max_map_count 找到目标java文件。

在这里插入图片描述
把红色框框的注释掉。
在这里插入图片描述

打包源码

./gradlew assemble --parallel

在这里插入图片描述
完毕后,我们可以把该打包源码部署到其他的机器上,解压后执行./bin/elasticsearch就会发现原本有max_map_count限制的错误提示没有了,程序也启动起来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢吃一口烤肉的啵啵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值