搭建ES 7.15.2本地运行环境

前提概要

本博客将搭建ES7.15.2的本地运行环境

下载安装包:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-windows-x86_64.zip

下载源码:https://github.com/elastic/elasticsearch/tree/v7.15.2

安装JDK16:http://jdk.java.net/archive/

IDEA安装Gradle插件&导入工程

  1. 打开Settins->plugins,搜索gradle安装插件
  2. 解压从github上下载的源代码压缩文件
  3. 使用idea打开解压文件

创建ES的Home目录

  1. 创建ESHome目录,并命名为run_time_config_7.15.2
  2. 解压下载的安装包elasticsearch-7.15.2-windows-x86_64.zip,拷贝config、lib、modules文件到run_time_config_7.15.2目录下

修改配置文件

  1. 添加文件run_time_config_7.15.2/config/elasticsearch.policy

    grant{
    permission javax.management.MBeanTrustPermission "register";
    permission javax.management.MBeanAwecwePermission "createMBeanServer";
    permission java.lang.RuntimePermission "createClassLoader";
    permission java.lang.RuntimePermission "setContextClassLoader";
    permission org.elasticsearch.secure_sm.ThreadPermission "modifyArbitraryThreadGroup";
    permission org.elasticsearch.secure_sm.ThreadPermission "modifyArbitraryThread";
    permission java.lang.RuntimePermission "getClassLoader";
    };
    
  2. 修改run_time_config_7.15.2/config/elasticsearch.yml文件,修改信息如下:

    # 其他ip可以访问本地es
    network.host: 0.0.0.0
    # 主节点候选节点ip,第一次启动集群需要该配置。
    cluster.initial_master_nodes: ["localhost"]
    
  3. 修改policy文件/elasticsearch-7.15.2/server/out/production/resources/org/elasticsearch/bootstrap/security.policy;注释如下内容:

    //grant codeBase "${codebase.elasticsearch-secure-sm}" {
    //  permission java.security.AllPermission;
    //};
    
     Elasticsearch core:
     These are only allowed inside the server jar, not in plugins
    //grant codeBase "${codebase.elasticsearch}" {
      // needed for loading plugins which may expect the context class loader to be set
    //  permission java.lang.RuntimePermission "setContextClassLoader";
    //};
    
    //grant codeBase "${codebase.elasticsearch-plugin-classloader}" {
      // needed to create the classloader which allows plugins to extend other plugins
    //  permission java.lang.RuntimePermission "createClassLoader";
    //};
    

配置启动参数

本地启动需要配置JVM启动参数,设置java运行版本是16

  1. ES工程使用IDEA打开后,点击右上角的Edit Configuration
    在这里插入图片描述

  2. 在弹窗中点击左上角加号->Application
    在这里插入图片描述

  3. 填写相关信息

    1. 选择JRE版本 16

    2. 填写模块elasticsearch.server.main

    3. 填写jvm参数(没有这个选项的,点击Modify options->add VM options);路径信息根据自己情况修改

      -Des.path.home=D:\learn-package\elasticsearch\run_time_config_7.15.2
      -Des.path.conf=D:\learn-package\elasticsearch\run_time_config_7.15.2\config
      -Djava.security.policy=D:\learn-package\elasticsearch\run_time_config_7.15.2\config\elasticsearch.policy
      -Dlog4j2.disable.jmx=true
      -Xms4g
      -Xmx4g
      
    4. 填写main方法所在类:org.elasticsearch.bootstrap.Elasticsearch
      在这里插入图片描述

启动工程&验证

  1. 使用IDEA启动运行刚刚配置的Application

  2. 使用浏览器输入:localhost:9200

    看到如下信息表示启动成功

    {
      "name" : "",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "pcU9WYv8SyeViQ_LQSNDCg",
      "version" : {
        "number" : "7.15.2",
        "build_flavor" : "unknown",
        "build_type" : "unknown",
        "build_hash" : "unknown",
        "build_date" : "unknown",
        "build_snapshot" : true,
        "lucene_version" : "8.9.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    

坑&解决办法

启动报错:

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createClassLoader")

解决办法:

将下面信息加入到run_time_config_7.15.2/config/elasticsearch.policy中,如果出现类似报错,按照对应格式加入到该文件即可解决

permission java.lang.RuntimePermission "getClassLoader"; 

参考资料

启动失败解决办法:https://elasticsearch.cn/question/11513

张超-Elasticsearch源码解析与优化实战

客官且慢,点赞、收藏+关注 谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值