龙芯 LoongArch64编译es7.17.20

下载es代码

下载好源码后,上传源码到需要编译的服务器

下载gradle版本

打开源码,查看对应es的gradle编译版本

jsx 复制代码
cd ./elasticsearch-7.17.20/gradle/wrapper
vim gradle-wrapper.properties

下面是es7.17.20对应的gradle信息

jsx 复制代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=194717442575a6f96e1c1befa2c30e9a4fc90f701d7aee33eb879b79e7ff05c0
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

下载gradle

services.gradle.org/distributio...

将下载的gradle包复制到 elasticsearch-7.17.20/gradle/wrapper路径下

修改gradle-wrapper.properties信息,distributionUrl删除前缀,从本地load gradle

jsx 复制代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=194717442575a6f96e1c1befa2c30e9a4fc90f701d7aee33eb879b79e7ff05c0
distributionUrl=gradle-8.7-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

修改Architecture.java 文件,添加loongarch64架构支持

文件路径为:/elasticsearch-7.17.20/build-tools/src/main/java/org/elasticsearch/gradle/Architecture.java

jsx 复制代码
/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License
 * 2.0 and the Server Side Public License, v 1; you may not use this file except
 * in compliance with, at your election, the Elastic License 2.0 or the Server
 * Side Public License, v 1.
 */

package org.elasticsearch.gradle;

public enum Architecture {

    X64("x86_64", "linux/amd64"),
    AARCH64("aarch64", "linux/arm64");
    LOONGARCH64("loongarch64"); // ✅ 新增

    public final String classifier;
    public final String dockerPlatform;

    Architecture(String classifier, String dockerPlatform) {
        this.classifier = classifier;
        this.dockerPlatform = dockerPlatform;
    }

    public static Architecture current() {
        final String architecture = System.getProperty("os.arch", "");
        switch (architecture) {
            case "amd64":
            case "x86_64":
                return X64;
            case "aarch64":
                return AARCH64;
           case "loongarch64":            // ✅ 新增
                return LOONGARCH64;            
            default:
                throw new IllegalArgumentException("can not determine architecture from [" + architecture + "]");
        }
    }

}

编译es

执行下面的gradle命令,进行es编译

jsx 复制代码
./gradlew :distribution:archives:linux-tar:assemble \
  -x :x-pack:plugin:ml:build \
  -x :x-pack:plugin:ml:bundlePlugin \
  -x :x-pack:plugin:ml:assemble \
  -x :x-pack:plugin:ml:processResources \
  -x :x-pack:plugin:ml:jar \
  -x :x-pack:plugin:ml:zip

构建成功后,包路径为:

jsx 复制代码
distribution/archives/linux-tar/build/distributions/elasticsearch-7.17.20-SNAPSHOT.tar.gz

删除的x-pack-eql模块

路径如下:

jsx 复制代码
elasticsearch-7.17.20-SNAPSHOT/modules/x-pack-eql

禁用ml等模块

修改es的配置config/elasticsearch.yml,添加如下配置:

jsx 复制代码
xpack.security.enabled: false
xpack.ml.enabled: false
xpack.monitoring.enabled: false
xpack.watcher.enabled: false

注意事项

  • 1.本文编译时,使用的jdk版本为openjdk-17构建
相关推荐
Elastic 中国社区官方博客3 分钟前
Kibana 数据可视化的新配色方案 —— 我们如何以及为什么创建它
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
鹿角片ljp15 分钟前
Spring Boot Web入门:从零开始构建web程序
前端·spring boot·后端
程序员阿鹏32 分钟前
SpringBoot自动装配原理
java·开发语言·spring boot·后端·spring·tomcat·maven
程序员爱钓鱼33 分钟前
Node.js 编程实战:CSV&JSON &Excel 数据处理
前端·后端·node.js
老华带你飞39 分钟前
工会管理|基于springboot 工会管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
Echo flower1 小时前
Spring Boot WebFlux 实现流式数据传输与断点续传
java·spring boot·后端
小徐Chao努力1 小时前
Go语言核心知识点底层原理教程【变量、类型与常量】
开发语言·后端·golang
锥锋骚年1 小时前
go语言异常处理方案
开发语言·后端·golang
北城以北88881 小时前
SpringBoot--Redis基础知识
java·spring boot·redis·后端·intellij-idea
superman超哥1 小时前
仓颉语言中并发集合的实现深度剖析与高性能实践
开发语言·后端·python·c#·仓颉