zoukankan      html  css  js  c++  java
  • elasticsearch 源码本地环境搭建

    elasticsearch6.0.0 源码本地环境搭建步骤如下:

    • 1、资源准备

     ElasicSearch版本:6.0.0: https://github.com/elastic/elasticsearch

    安装jdk(jdk1.8以上,本人用的是1.8.0_131)

    安装gradle(3.3以上,本人用的是4.3.1) 需要安装环境变量网上有好多,下载地址 http://services.gradle.org/distributions/

    • 2、上面资源都准备好了后 ,开始

    1)配置软件包仓库源地址 (此步骤因为需要从包仓库jcenter或者apache的maven库下载依赖额所有jar,耗时长,使用国内的仓库源,节省时间)

    在C:Users用户.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
       }
     }
    }

    2)编辑${elasticsearch源码根目录}distributionuild.gradle文件,蓝色部分替换为如下。

    buildscript {
      repositories {
        maven {
          url "http://maven.aliyun.com/nexus/content/groups/public/" 
        }
      }
      dependencies {
        classpath 'com.netflix.nebula:gradle-ospackage-plugin:3.4.0'
      }
    }

    3)gradle 安装成功后 打开cmd控制台 进入elasticsearch源码根目录,

    执行gradle idea。(idea导入源码前,必须进行此步骤,否则会报错)

    4)IDEA导入工程,导入的时候需要设置gradle_home,配置为gradle的安装根目录。

    勾选Offline work(否则会连到官网私服下载,会超级慢)和Use local gradle distribution。

    gradle 项目导入idea碰到的问题:

    导入idea时候执行gradle idea,可以把项目编译成idea项目,但后续导入idea还是报错,

    提示jdk版本只能是1.8或以上,如果是这样,检查环境变量中的jdk配置是否正确

    5)编译代码 在core下 的jar 编译

     6)启动elasticsearch:在 core下org.elasticsearch.bootstrap.Elasticsearch 这个类 右键运行main方法

     报错 启动包es.path.conf未设置

    解决方法 :配置jvm参数

     

    //这个是自己项目里面distribution 下的路径
    -Des.path.home=F:es_codeelasticsearch-6.0distributionsrcmain
    esources
    -Des.path.conf=F:es_codeelasticsearch-6.0distributionsrcmain
    esourcesconfig
    // 继续启动 之后报错
    2017-12-06 19:18:42,999 main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

    解决办法

    //在里面加上 
    -Dlog4j2.disable.jmx=true

    报错 Unsupported transport.type

    解决办法:把相同版本的es二进制安装包中modules目录(distributionsrcmain esourcesmodules目录内容拷过来)下内容拷贝过来。

    报错 stirng index out of range -1

    跟踪源码,发现如下原因:在编译的时候,编译打包版本信息不一致造成的,这样index版本号就出错了。

    解决方法  修改 core 下面的 org.elasticsearch.Build.java 74行,

    // isSnapshot = true; 
    
    isSnapshot = false;

    注:有的时候有可能下载下来的源码 打包的版本是6.1.0-snapshot 本人就碰到了这种情况下载的是6.0的源码但是在编译的 时候发现 6.1.0-snapshot 是这个版本

    改完后有可能还是不行,跟踪源码发现 org.elasticsearch.Build.java

     主要做验证这块是Version里面的版本信息,修改下这个里面的当前版本就行了。改成自己目前的版本信息,再次启动OK。

  • 相关阅读:
    Gstreamer 随笔
    Git 提交(commit)没有自动生成Change-Id导致无法push
    xmake构建C/C++编译环境
    编译configure常用参数详解
    ubuntu上安装meson & 如何使用meson编译C代码
    如何使用autotools/automake自动生成Makefile文件
    如何扩大镜像文件容量
    Mac OS X 键盘快捷键
    django 文件目录结构
    oh-my-zsh 更换主题后特殊字符显示错误
  • 原文地址:https://www.cnblogs.com/ucarinc/p/8073066.html
Copyright © 2011-2022 走看看