1 环境
类别 | 子项 | 版本 | 备注 |
---|---|---|---|
硬件 | CPU | 鲲鹏920 | |
| |||
OS | CentOS | CentOS Linux release 7.9.2009 (AltArch) | |
Kernel | 4.18.0-305.10.2.el7.aarch64 | ||
ElasticSearch | 7.5.1 | ||
Oracle JDK | 12 | ||
Gradle | 5.6.2 |
2 安装Gradle
默认你已经安装了JDK。https://mirrors.huaweicloud.com/java/jdk/
- 查看ElasticSearch依赖的gradle版本:
cat elasticsearch-7.5.1/gradle/wrapper/gradle-wrapper.properties
2. 下载Gradle
,并解压在/usr/lcoal
下面:
wget https://downloads.gradle.org/distributions/gradle-5.6.2-all.zip
unzip -d /usr/local gradle-5.6.2-all.zip
- 设置
Gradle
环境变量:
vim /etc/profile
export GRADLE_HOME=/usr/local/gradle-5.5
PATH=$PATH:$GRADLE_HOME/bin
# 运行下面命令,使修改的环境变量生效:
source /etc/profile
3 修改编译环境
修改全局Maven仓库地址(可选)。在USER_HOME/.gradle/
下面创建新文件init.gradle
,输入下面的内容并保存。
allprojects{
repositories {
def REPOSITORY_URL = 'https://mirrors.huaweicloud.com/repository/maven/'
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安装目录,示例值root/.gradle
, 如果没有.gradle
目录,可用自己创建,或者先执行gradle
进行ES源码编译,等gradle
安装后再回来修改。 上面脚本把url匹配到的仓库都替换成了华为云的仓库, 如果有未匹配到的导致编译失败,可用参考上面代码再添加匹配条件。
4 编译
在源码根目录下编译:
./gradlew -p distribution/archives/no-jdk-linux-tar assemble
生成的安装包路径是Elasticsearch源码包路径下的elasticsearch-7.3.2/distribution/archives/no-jdk-linux-tar/build/distributions/
下。x86_64架构命名不影响使用。
5 测试
5.1 运行环境配置:
设置单进程最多内存映射大小
- 修改单进程最多可用于内存映射区大小为262145(ElasticSearch要求最小为262144)。
vim /etc/sysctl.conf
-
增加vm.max_map_count=262145。
-
执行如下命令使配置生效
sysctl -p
修改系统支持的文件句柄为65536
- 系统默认文件句柄为65535,可用
ulimit -n
查询,ElasticSearch要求最低为65536。 - 执行以下命令,编辑
/etc/security/limits.conf
文件。
vim /etc/security/limits.conf
- 配置参数,如下图所示。
*soft nofile修改为65536。
*hard nofile修改为65536。
5.2 创建elasticsearch用户并赋予权限
useradd elasticsearch
chown elasticsearch:elasticsearch /home/test/elasticsearch-7.3.2-SNAPSHOT –R
5.3 测试基本功能
su - elasticsearch
./bin/elasticsearch -d
参考
- https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=26271
- https://github.com/elastic/elasticsearch/tags?after=v6.6.0