elasticsearch local debug环境搭建
2017-12-31 21:50
447 查看
最近计划看看elasticsearch的源码,首先得把local debug环境搞定。
下载源码。因为公司产线是5.6.5,所以就下载了5.6.5的代码。
源码编译。先进入到/elasticsearch/core目录,因为IDE是idea,所以用gradle idea编译core目录。然后进入到/elasticsearch目录,在运行gradle idea命令。gradle版本要3.5以上,我用的是4.4.1。
导入IDE。import project(选择elasticsearch根目录) -> import project from external model(选Gradle)->next(gradle JVM选1.8)->finish.
idea会持续load一段时间,主要是加载gradle的依赖包。完全打开后:
配置启动脚本。Run/Debug Configuration -> Add Application.
vm options:
下载elasticsearch 5.6.5的发行版的zip包,解压缩,目录重命名为elasticsearchdistribution,copy到/elasticsearch/distribution/目录下。目的是为了local debug的时候,能直接使用发行版本中的lib。
然后就可以debug了。不过要想elasticsearch正常启动起来,可能还是会遇到一些问题,本人主要遇到了三个问题:
1.检查重复的jar包(jar hell)。存在重复的jar冲突,我的做法是重命名JDK中重复的jar.
2.java安全策略问题:access denied ("javax.management.MBeanTrustPermission" "register")。
创建一个elasticsearch.policy文件,内容:
grant{
permission javax.management.MBeanTruxtPermission "register";
permission javax.management.MBeanServerPermission "createMBeanServer";
};
通过配置vm options的第三行生效。
3.distribution包中jar的版本问题。首先是出现一个error: org.elasticsearch.bootstrap.Security类的readPolicy()方法中subString的index为-1,造成subString越界。
通过debug可以看到遍历的是/elasticsearch/distribution/elasticsearchdistribution/modules/reindex中的jar文件,遂把该文件夹下的elasticsearch-rest-client-5.6.5.jar包名称改为elasticsearch-rest-client-5.6.5-SNAPSHOT.jar。
最终,可以动过idea的run/debug成功启动elasticsearch。
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
下载源码。因为公司产线是5.6.5,所以就下载了5.6.5的代码。
源码编译。先进入到/elasticsearch/core目录,因为IDE是idea,所以用gradle idea编译core目录。然后进入到/elasticsearch目录,在运行gradle idea命令。gradle版本要3.5以上,我用的是4.4.1。
导入IDE。import project(选择elasticsearch根目录) -> import project from external model(选Gradle)->next(gradle JVM选1.8)->finish.
idea会持续load一段时间,主要是加载gradle的依赖包。完全打开后:
配置启动脚本。Run/Debug Configuration -> Add Application.
vm options:
下载elasticsearch 5.6.5的发行版的zip包,解压缩,目录重命名为elasticsearchdistribution,copy到/elasticsearch/distribution/目录下。目的是为了local debug的时候,能直接使用发行版本中的lib。
然后就可以debug了。不过要想elasticsearch正常启动起来,可能还是会遇到一些问题,本人主要遇到了三个问题:
1.检查重复的jar包(jar hell)。存在重复的jar冲突,我的做法是重命名JDK中重复的jar.
2.java安全策略问题:access denied ("javax.management.MBeanTrustPermission" "register")。
创建一个elasticsearch.policy文件,内容:
grant{
permission javax.management.MBeanTruxtPermission "register";
permission javax.management.MBeanServerPermission "createMBeanServer";
};
通过配置vm options的第三行生效。
3.distribution包中jar的版本问题。首先是出现一个error: org.elasticsearch.bootstrap.Security类的readPolicy()方法中subString的index为-1,造成subString越界。
通过debug可以看到遍历的是/elasticsearch/distribution/elasticsearchdistribution/modules/reindex中的jar文件,遂把该文件夹下的elasticsearch-rest-client-5.6.5.jar包名称改为elasticsearch-rest-client-5.6.5-SNAPSHOT.jar。
最终,可以动过idea的run/debug成功启动elasticsearch。
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo }
span.s1 { }
相关文章推荐
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
- kafka+elasticsearch+logstash+kibana环境搭建
- Elasticsearch中文搜索环境搭建
- elasticsearch + hive环境搭建
- ElasticSearch5.4.3 环境搭建 2017 (4-安全插件-监控工具x-pack)
- Mac下docker搭建lnmp环境 + redis + elasticsearch
- ELK环境搭建(ElasticSearch+Logstash+kibana)
- Spring Data ElasticSearch环境搭建
- linux 下 docker NGINX+PHP+MYSQL+REDIS+Elasticsearch 开发环境搭建
- flume+ Elasticsearch +kibana环境搭建及讲解
- 使用Spring Data Elasticsearch操作es(1)--环境搭建
- Windows10环境搭建Elasticsearch+Kibana+Marvel
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)
- Linux 下 docker NGINX+PHP+MYSQL+REDIS+Elasticsearch 开发环境搭建
- openCl环境搭建及示例 及 Intel OpenCL debug
- google 输入法源码debug环境搭建
- spark Local环境搭建,第一个DEMO程序的编写
- Elasticsearch+Marvel+Kibana集群搭建
- logstash+elasticsearch+redis+kibana3 日志收集系统搭建
- ElasticSearch + Logstash + Kibana 搭建笔记