本博客是作者本人依据张超先生的书籍《Elasticsearch源码解析与优化实战》里面的内容介绍搭建启动
同时感谢同事@wychttps://halo.wyc1856.club/的帮助
准备工作
代码下载
由于ES源码更新太过迅速,Es6.x版本与Es7.x版本的功能定义、源码分包上存在很大不同,所以代码的版本最好维持在6.x版本
附上源码下载地址:https://github.com/elastic/elasticsearch/releases
JDK
自行百度🐶
Gradle安装(mac版本)
官网下载:https://gradle.org/releases
Gradle的版本跨度也很大,对于Es6.x版本的支持来说,不要下载 Gradle6.4以及以上版本的,会存在编译不兼容的问题。
下载之后解压zip的包,mac上配置环境变量即可
编辑bash_profile文件:
vi ~/.bash_profile
配置环境变量:
#GRADLE
GRADLE_HOME=/usr/local/gradle-5.4.1(解压下的路径)
PATH=$PATH:$GRADLE_HOME/bin
export GRADLE_HOME GRADLE_USER_HOME PATH
执行下面命令使内容生效:
source ~/.bash_profile
检测版本号:
gradle -v
编译打包
将es的源码解压,以mac的操作指令为列,进入解压后的源码目录
cd elasticsearch-6.1.2
./gredlew assemble
如果存在编译打包time out的情况,请挂载国内的镜像,方法如下,这里附上一位大佬的总结博客十分简洁易懂:https://www.cnblogs.com/a8457013/p/8408196.html
项目导入idea
在张超先生的书上流程是先使用 gradle idea 命令的,这里我选择先导入项目,在idea里面的控制台Terminal中执行指令
(或者在项目的路径下执行 gradle idea)
准备运行
在运行之前我们先要为调试环境准备运行时要用的eshome目录(名字随意),Elasticsearch要从其中加载模块、读取配置、写入数据和日志
推荐在项目同级目录下新建eshome目录(随意路径都可以),然后复制对应的es模块即可,由于上一步已经进行了编译打包,可以解压一份打包后的模版和配置进行复制:
cd distribution/zip/build/distributions/
unzip elasticsearch-6.1.2.zip
cd elasticsearch-6.1.2
## 复制到eshome
cp -r config modules plugins /Users/name/xxxxx/xxxxx/eshome
或者也可以通过mac的文件访达 distribution/zip/build/distributions/elasticsearch-6.1.2/后,复制对应的模块即可。
启动
在idea中的启动配置参数VM options 。注意路径不要照抄,以自己本机的路径为准
-Des.path.home=/Users/hl/Documents/eshome -Des.path.conf=/Users/hl/Documents/eshome/config -Xms1g -Xmx1g -Dlog4j2.disable.jmx=true -Djava.security.policy=/Users/hl/Documents/eshome/config/elasticsearch.policy
附上一张截图