二、ElasticSearch6.8 源码远程调试

一、环境说明

windows编译ElasticSearch太头疼了,推荐MacOS或Linux

操作系统:Ubuntu 19.10
IDE:IDEA 20193.4(Community Edition)
JDK:12.0.2
ElasticSearch:6.8.0
Gradle:5.2.1

二、获取源码

git clone https://github.com/elastic/elasticsearch.git
cd elasticsearch
#拆分出一个版本用于调试
git checkout -b debug_v6.8.0
#切换至6.8.0版本
git checkout v6.8.0

推荐:

#网络太慢的话,可以直接下载v6.8.0代码
https://github.com/elastic/elasticsearch/archive/v6.8.0.zip

三、编译

环境准备

  • 系统环境准备
# export GRADLE_HOME=/opt/gradle-4.6
export GRADLE_HOME=/opt/gradle-5.2.1
export PATH=$GRADLE_HOME/bin:$PATH

# export JAVA_HOME=/usr/java/jdk1.8.0_191
# export JAVA_HOME=/usr/java/jdk-11.0.6
export JAVA_HOME=/usr/java/jdk-12.0.2
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
  • gradle准备
    复制一份gradle
cp gradle-5.2.1-bin.zip ~./elasticsearch-6.8.0/gradle/wrapper/
  • 在当前账户目录下的.gradle/下添加名为init.gradle的配置文件
allprojects {
    repositories {
        maven {
            url "https://maven.aliyun.com/nexus/content/groups/public"
        }
    }
}

  • 修改配置文件中的本地gradle和数字签名
vim elasticsearch-6.8.0/gradle/wrapper/gradle-wrapper.properties
distributionUrl=gradle-5.2.1-bin.zip
distributionSha256Sum=xxx

签名的内容

sha256sum gradle-5.2.1-bin.zip

2、编译

  • 修改权限
sudo chmod 777 -R elasticsearch-6.8.0
  • 编译
gradle idea
  • 编译成功
BUILD SUCCESSFUL in 8m 11s
347 actionable tasks: 347 executed

四、项目导入

IDEA导入es项目Import Project

选择gradle

等IDEA构建完成

五、远程调试

  • 在远程的ES集群中增加配置(增加调试端口)

在运行ES实例的节点上配置config/jvm.options

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=2222

创建远程配置

设置远程参数(端口选择之前的配置端口)

点击debug

put一个索引

几乎ES所有操作都会通过rest api进行操作只要debug在RestController拦截即可


本方法可以调试已启动节点的运行逻辑,无法debug节点启动流程

posted @ 2020-04-03 10:18  西二旗老实人  阅读(872)  评论(0编辑  收藏  举报