栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch源码启动全记录

elasticsearch源码启动全记录

花了几天时间,终于完成了Elasticsearch的源码环境搭建和启动

感谢小旋峰的博客 https://blog.csdn.net/wwwdc1012/article/details/81978966

操作系统:win11
Elasticsearch 源码版本: 6.3.2
准备好装好 git 的 intellij idea


下载项目

首先 git clone https://github.com/elastic/elasticsearch.git
这一步花了很久,通过git bash每次下载一半就中断了,后来在 idea 里面 git -> clone 才成功

下载后切换分支

git checkout v6.3.2

还需要下载 gradle 4.5
官方链接 https://services.gradle.org/distributions/gradle-4.5-all.zip

将下载的gradle-4.5-all.zip包放到 elasticsearchgradlewrapper 目录下,确保和 elasticsearchgradlewrappergradle-wrapper.properties 在同级目录。

修改 elasticsearchgradlewrappergradle-wrapper.properties 的 distributionUrl:

distributionUrl=gradle-4.5-all.zip

其它地方不要改。

修改后可能的 gradle-wrapper.properties

distributionUrl=gradle-4.5-all.zip
distributionbase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStorebase=GRADLE_USER_HOME
distributionSha256Sum=6ac2f8f9302f50241bf14cc5f4a3d88504ad20e61bb98c5fd048f7723b61397e

后期编译时发现需要 JDK-9,10 或 11 都不行,我下载了 ORACLE 的 JDK-9
下载链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html
一定要配置好JAVA_HOME,否则后期编译会报错。

修改MAVEN仓库地址

国内下载国外仓库的jar包速度慢,需要替换Maven地址,设置为本地或者国内可用的Maven仓库。照着下面的步骤一步一步修改不要弄错。

找到 elasticsearchbenchmarksbuild.gradle 文件,修改文件里面的repositories-maven-url的值,配置为可用的仓库地址,譬如修改为阿里云maven地址 http://maven.aliyun.com/nexus/content/groups/public/,修改示例如下:

buildscript {
    repositories {
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
    }
    dependencies {
        classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
    }
}

上面同样的步骤修改一下 elasticsearchclientbenchmarkbuild.gradle 文件中仓库地址。

找到 USER_HOME/.gradle 文件夹,在下面创建新文件 init.gradle,输入下面的内容并保存。

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all {
            ArtifactRepository repo ->
    if (repo instanceof MavenArtifactRepository) {
                def url = repo.url.toString()
                if (url.startsWith('https://repo.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

其中USER_HOME/.gradle/是自己的gradle安装目录,示例值:C:UsersAdministrator.gradle,
如果没有.gradle目录,可用自己创建,或者先执行第7步,等gradle安装后再回来修改。

gradle 编译源码

在 elasticsearch源码的根目录 下,打开命令行(cmd),运行

gradlew idea

编译成功后打印日志:

BUILD SUCCESSFUL in 1m 23s
编译及运行

启动类在 elasticsearch/server/src/main/org/elasticsearch/bootstrap 下的 Elasticsearch.java,右键 Run Elasticsearch.main(),可运行main方法。但在此之前还要做一些配置。

先在 elasticsearch 源码目录下新建一个 home 目录,在 https://www.elastic.co/downloads/elasticsearch 下载一个同版本号的 Elasticsearch6.3.2 发行版,解压,将 config 目录和 modules 目录都拷贝到 home 目录中。

打开Edit configurations,配置如下,IDEA 版本不同可能看到的窗口不一样,重要的是添加的 VM options 和 一定要 勾选上 Include dependencies with ‘Provided’ scope


添加的 VM options 如下,其中的 ‘D:myProjectselasticsearch’ 务必要换成自己的 elasticsearch 路径

-Des.path.conf=D:myProjectselasticsearchhomeconfig
-Des.path.home=D:myProjectselasticsearchhome
-Dlog4j2.disable.jmx=true
-Djava.security.policy=D:myProjectselasticsearchhomeconfigjava.policy
-Xms2g
-Xmx2g

另外 在 home/config 目录下新建 java.policy 文件,填入如下内容

grant {
    permission java.lang.RuntimePermission "createClassLoader";
};

一切顺利的话,运行 Elasticsearch.main() 方法,成功

浏览器输入 localhost:9200,看到

{
  "name" : "_zdUPNW",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "NCOPZJVdQDSEBUBg5-FshQ",
  "version" : {
    "number" : "6.3.2",
    "build_flavor" : "unknown",
    "build_type" : "unknown",
    "build_hash" : "Unknown",
    "build_date" : "Unknown",
    "build_snapshot" : true,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号