当我们在进行openLooKeng的项目任务时,很多情况下需要在openLooKeng下进行开发调试,但只有windows 电脑的我们该怎么做?本期,小助手将介绍在Windows下搭建openLooKeng开发环境的方法,希望对朋友们有帮助。如果您有任何想要交流的,欢迎在社区内提Issue;也欢迎加小助手微信,进入专属技术交流群。
欢迎访问官网 https://openlookeng.io
搭建openLooKeng开发环境
(win运行presto)
首先要确认拥有代码的git clone权限,最好是clone的代码,否则,后期会出现配置上的问题
(一)环境依赖
-
JDK: 1.8 (8u161+)64bit
-
Maven: 3.3.9
如果是直接从
github
上下载的源码压缩包,则需要做如下配置:1. 进入源码根目录 2. 修改根目录的pom.xml 在<build>的<pluginManagement>元素中,添加如下配置: <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>
不添加会有如下错误:
Failed to execute goal pl.project13.maven:git-commit-id-plugin:3.0.1:revision (default) on project hetu-common: .git directory is not found! Please specify a valid [dotGitDirectory] in your pom.xml
如果是从
github
上clone
的代码,则不需要做上述配置。 -
更换代码仓:
在maven的setting中,修改:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
镜像仓库。
<localRepository>D:\document\Maven\repository</localRepository>
这是我的本地的仓库地址
(二)编译
2.1编译前准备
-
presto-main/etc/event-listener.properties
- hetu.event.listener.type=AUDIT + hetu.event.listener.type=LOGGER
-
presto-main/src/main/java/io/prestosql/server/PluginDiscovery.java
- if (!file.getPath().endsWith("/target/classes")) + if (!file.getPath().replace('\\','/').endsWith("/target/classes"))
win系统下路径字符的变化
-
presto-main/src/main/java/io/prestosql/server/PrestoSystemRequirements.java
注释:
else {
failRequirement("Hetu requires Linux or Mac OS X (found %s)", osName);
}
其实注释修改都是可以的:
修改:
// 注释掉对操作系统的限制,更改为:warnRequirement
// failRequirement("Presto requires Linux or Mac OS X (found %s)", osName);
warnRequirement("Presto requires Linux or Mac OS X (found %s)", osName);
注释和修改任选一种
- presto-main/src/main/java/io/prestosql/server/PrestoSystemRequirements.java
修改:
- Object maxFileDescriptorCount = mbeanServer.getAttribute(ObjectName.getInstance(OPERATING_SYSTEM_MXBEAN_NAME), "MaxFileDescriptorCount");
+ Object maxFileDescriptorCount = 10000;
- presto-main/pom.xml
注释掉io.airlift.resolver
的依赖中的exclusions
<dependency>
<groupId>io.airlift.resolver</groupId>
<artifactId>resolver</artifactId>
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <artifactId>netty</artifactId>-->
<!-- <groupId>io.netty</groupId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <artifactId>async-http-client</artifactId>-->
<!-- <groupId>com.ning</groupId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!