经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Elasticsearch » 查看文章
Elasticsearch源码分析 - 源码构建
来源:cnblogs  作者:chaojianok  时间:2019/4/30 8:32:41  对本文有异议

原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483694&idx=1&sn=bd03afe5ab798b4732c1a3457d60c53b

本篇介绍一下如何从源码构建Elasticsearch,构建Elasticsearch源码是学习和研究Elasticsearch源码的基础,有助于更好的了解Elasticsearch。

环境准备

环境/软件 版本 备注
OS Ubuntu 14.04 LTS
Gradle 5.4
Java 9.0.4+11 Oracle Corporation 9.0.4 [OpenJDK 64-Bit Server VM 9.0.4+11]
Elasticsearch 6.2

从源码构建Elasticsearch需要注意下面几个问题:

1、从源码构建Elasticsearch需要使用Gradle,因此需要确认下是否安装了gradle,可以参考官网安装文档安装,安装步骤如下:

  1. mkdir /opt/gradle
  2. unzip -d /opt/gradle ./下载/gradle-5.4-bin.zip
  3. ls /opt/gradle/gradle-5.4
  4. #添加环境变量
  5. vi ~/.bashrc
  6. #在 ~/.bashrc 文件下面加上这句
  7. export PATH=$PATH:/opt/gradle/gradle-5.4/bin
  8. #使新增的环境变量即时生效
  9. source ~/.bashrc
  10. #检查 gradle 是否安装配置成功
  11. gradle -v

2、Elasticsearch编译和运行时所要求的JDK版本是不一样的,以V6.2版本为例,Runtime要求最低JDK8,Compile要求最低JDK9。不同版本的Elasticsearch应该如何确定所需JDK运行时和编译的版本呢?可以在Elasticsearch的源码里找到,如下:

  1. /*
  2. * Elasticsearch <= v6.3
  3. */
  4. //代码文件位置:buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy
  5. static final JavaVersion minimumRuntimeVersion = JavaVersion.VERSION_1_8
  6. static final JavaVersion minimumCompilerVersion = JavaVersion.VERSION_1_9
  7. /*
  8. * Elasticsearch >= v6.4
  9. */
  10. //代码文件位置:buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy
  11. //这段代码对应的配置文件分别是下面这两个:
  12. //buildSrc/src/main/resources/minimumCompilerVersion
  13. //buildSrc/src/main/resources/minimumRuntimeVersion
  14. JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(
  15. BuildPlugin.class.getClassLoader().getResourceAsStream("minimumRuntimeVersion").text.trim()
  16. )
  17. JavaVersion minimumCompilerVersion = JavaVersion.toVersion(
  18. BuildPlugin.class.getClassLoader().getResourceAsStream("minimumCompilerVersion").text.trim()
  19. )

3、在终端执行构建操作前建议把终端改为bash,不然可能会有点问题。

开始构建

具体步骤如下:

  1. #下载源码
  2. git clone https://github.com/elastic/elasticsearch.git
  3. #进入源码目录
  4. cd elasticsearch
  5. #切换到一个稳定分支
  6. git checkout 6.2
  7. #构建源码
  8. ./gradlew assemble

看到下面输出表示构建成功了。

  1. BUILD SUCCESSFUL in 10m 15s
  2. 505 actionable tasks: 505 executed

测试

构建成功后就可以启动Elasticsearch了,如下:

  1. #在源码目录下执行
  2. ./gradlew run

启动成功后浏览器打开127.0.0.1:9200显示如下:

  1. {
  2. "name" : "node-0",
  3. "cluster_name" : "distribution_run",
  4. "cluster_uuid" : "E3qa7TIkTTGNP32WizSyXg",
  5. "version" : {
  6. "number" : "6.2.5",
  7. "build_hash" : "e38fe8a",
  8. "build_date" : "2019-04-25T01:27:03.655047Z",
  9. "build_snapshot" : true,
  10. "lucene_version" : "7.2.1",
  11. "minimum_wire_compatibility_version" : "5.6.0",
  12. "minimum_index_compatibility_version" : "5.0.0"
  13. },
  14. "tagline" : "You Know, for Search"
  15. }

原文链接:http://www.cnblogs.com/cjblogs/p/10792405.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号