Elasticsearch 소스 분석 - 소스 구축

3240 단어
이 글은 첫 번째 Elasticsearch 원본 코드 분석 - 원본 코드 구축에서 시작되었습니다. 제 첫 번째 번호와 위챗 공중번호인'빅데이터 기술과 인공지능'(위챗 검색 bigdata_ai_tech)에 관심을 가지고 더 많은 물품을 얻으며 제 CSDN 블로그에 관심을 가져 주신 것을 환영합니다.
본고는 어떻게 원본에서 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가 설치되었는지 확인해야 한다. 홈페이지 설치 문서를 참고하여 설치할 수 있다. 설치 절차는 다음과 같다.
mkdir /opt/gradle
unzip -d /opt/gradle ./ /gradle-5.4-bin.zip
ls /opt/gradle/gradle-5.4
# 
vi ~/.bashrc
#  ~/.bashrc  
export PATH=$PATH:/opt/gradle/gradle-5.4/bin
# 
source ~/.bashrc
#  gradle  
gradle -v

2. Elasticsearch가 컴파일하고 실행할 때 요구하는 JDK 버전은 다르다. V6.2 버전을 예로 들면 Runtime은 최저 JDK8, Compile은 최저 JDK9을 요구한다.다른 버전의 Elasticsearch는 필요한 JDK가 실행되고 컴파일된 버전을 어떻게 결정해야 합니까?다음과 같이 Elasticsearch의 소스 코드에서 찾을 수 있습니다.
/*
 * Elasticsearch <= v6.3
*/
// :buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy
static final JavaVersion minimumRuntimeVersion = JavaVersion.VERSION_1_8
static final JavaVersion minimumCompilerVersion = JavaVersion.VERSION_1_9
/*
 * Elasticsearch >= v6.4
*/
// :buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy
// :
//buildSrc/src/main/resources/minimumCompilerVersion
//buildSrc/src/main/resources/minimumRuntimeVersion
JavaVersion minimumRuntimeVersion = JavaVersion.toVersion(
        BuildPlugin.class.getClassLoader().getResourceAsStream("minimumRuntimeVersion").text.trim()
)
JavaVersion minimumCompilerVersion = JavaVersion.toVersion(
        BuildPlugin.class.getClassLoader().getResourceAsStream("minimumCompilerVersion").text.trim()
)

3. 터미널에서 구축 작업을 실행하기 전에 터미널을bash로 바꾸는 것을 권장합니다. 그렇지 않으면 문제가 있을 수 있습니다.

구축 시작


구체적인 단계는 다음과 같다.
# 
git clone https://github.com/elastic/elasticsearch.git
# 
cd elasticsearch
# 
git checkout 6.2
# 
./gradlew assemble

아래의 출력을 보면 구축이 성공했다는 것을 나타낸다.
BUILD SUCCESSFUL in 10m 15s
505 actionable tasks: 505 executed

테스트


구축에 성공하면 다음과 같이 Elasticsearch를 시작할 수 있습니다.
# 
./gradlew run

시작 성공 후 브라우저 열기127.0.0.1:9200는 다음과 같이 표시됩니다.
{
  "name" : "node-0",
  "cluster_name" : "distribution_run",
  "cluster_uuid" : "E3qa7TIkTTGNP32WizSyXg",
  "version" : {
    "number" : "6.2.5",
    "build_hash" : "e38fe8a",
    "build_date" : "2019-04-25T01:27:03.655047Z",
    "build_snapshot" : true,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

좋은 웹페이지 즐겨찾기