ElasticSearch 8.X 源码导入idea并配置环境启动调试(mac环境)

主要是用于自己记录配置流程

环境

  • IntelliJ IDEA 2024.1.1 (Community Edition)

  • jdk17(可以安装jenv管理)

  • macos 14.4.1

  • gradle 8.5

资源准备

先在官网下载elasticsearch源码(GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine)

为了后续配置启动信息,同步下载对应版本的release版本(Past Releases of Elastic Stack Software | Elastic)

kibana下载(Kibana 8.1.0 | Elastic)

代码环境配置

编译导入idea

打开elasticsearch代码并checkout到对应分支(对应分支跟 release不一定完全一致)

执行 ./gradlew localDistro (注意jdk版本17)

编译完成后执行 导入项目 使用 idea open项目下的 build.gradle,等待编译结束(这里耗时会比较长)

导入完成后可以在gradle看到配置信息

配置启动 elasticsearch

自己选择目录构建自己的elasticsearch配置目录

解压之前下载的 release 版本并将对应modules 目录拷贝到此配置目录下

在启动中会因为xpack配置默认启动导致异常,前期可以配置默认关闭

vim config/elasticsearch.yml

增加配置:xpack.security.enabled: false

在idea中配置启动

jvm配置信息参考

复制代码
-Des.path.conf=/Users/xxx/tmp/es-debug/config
-Des.path.home=/Users/xxx/tmp/es-debug
-Djava.security.policy=/Users/xxx/tmp/es-debug/config/java.policy
-Dlog4j2.disable.jmx=true
-Xmx4g
-Xms4g

此时启动可能遇到的问题

版本不一致(release分支的包不一定与分支的版本一直,如果跨度不大可以直接修改源码,或者找对应release完全一致的包)

比如可以直接修改version下的current指定的版本

如果提示Unknown codebases等,可以暂时在security.policy中先注释掉,如下:

此时再进行启动就可以正常运行(如果再遇到其他问题可以自行搜索)

默认启动完成后访问http://localhost:9200/

配置kibana

kibana找与elasticsearch对应的版本即可,默认端口5601,默认访问的es为 localhost:9200

为了方便启动可以在.bash_profile 增加启动配置

复制代码
# kibana8.1
alias kibana-8.1-local-start="/Users/fujiansheng/Downloads/kibana-8.1.0/bin/kibana"

启动完kibana后访问:http://127.0.0.1:5601/app/dev_tools#/console

相关推荐
新*11 小时前
Elasticsearch 7.17 的 SQL 到底能查到什么?一次踩坑记录
后端·sql·elasticsearch·查询
程序员大阳18 小时前
副队长BootStrap5探究(3)--彩色链接 Colored link
源码·bootstrap5·彩色链接·colored link
桦说编程2 天前
TransmittableThreadLocal 解读:从 CRR 机制到上下文所有权
java·后端·源码
Elastic 中国社区官方博客2 天前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
Elasticsearch2 天前
Kibana 中的人工智能连接器:你的 agent 可调用的 90 多个数据源
elasticsearch
科小怪2 天前
IntelliJ IDEA 下载安装:写 Java 和 Kotlin 主流的开发工具
intellij-idea·软件推荐·下载教程
Elasticsearch3 天前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
elasticsearch
利威尔xu3 天前
Go map 底层崩溃:3 个 goroutine 并发写同一张 map,fatal error 崩掉整个服务
golang·源码·map·并发·后端开发
疯华整猫3 天前
我用 Trae 把 Android 内存账重算了一遍
android·性能优化·源码
瑞克-桑切斯4 天前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器