Ste*_*ook 5 hive maven apache-calcite
我试图建立一个Maven项目,它将包含我想在我的Hive查询中使用的用户定义函数(UDF).我开始使用不包含源文件的Maven项目,以及以下POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>exp</groupId>
<artifactId>HiveUdfTestProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.14.0</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
当我尝试构建项目时,出现以下错误:
无法在项目HiveUdfTestProject上执行目标:无法解析项目exp的依赖项:HiveUdfTestProject:jar:1.0-SNAPSHOT:无法解析以下工件:org.apache.calcite:calcite-core:jar:0.9.2-incubating- SNAPSHOT,org.apache.calcite:calcite-avatica:jar:0.9.2-incubating-SNAPSHOT:找不到工件org.apache.calcite:calcite-core:jar:0.9.2-incubating-SNAPSHOT - > [帮助1 ]
我在maven中央存储库中找到了hive-exec 0.14.0依赖项所需的calcite-core-incubating jar (但不是incubating-snapshot版本)。
从 Maven Central 添加 calcite-core 消除了原来的错误,并引入了我在ConJars上找到的新的缺失依赖项“pentaho-aggdesigner-algorithm” 。
添加conjars 存储库和 pentaho 依赖项使新的缺失依赖项出现“org.apache.calcite:calcite-avatica:jar:0.9.2-incubating-SNAPSHOT”,其孵化(但不是快照)依赖项在 Maven 中央存储库中可用。
在POM中添加calcite-avatica依赖,最终成功构建了空项目。
以下是构建用于 Hive UDF 的项目所需的最终 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>exp</groupId>
<artifactId>HiveUdfTestProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>conjars.org</id>
<url>http://conjars.org/repo</url>
</repository>
</repositories>
<dependencies>
<!-- From Maven Central -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-core</artifactId>
<version>0.9.2-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-avatica</artifactId>
<version>0.9.2-incubating</version>
</dependency>
<!-- From conjars -->
<dependency>
<groupId>org.pentaho</groupId>
<artifactId>pentaho-aggdesigner-algorithm</artifactId>
<version>5.1.3-jhyde</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
空项目构建完成后,我尝试将 POM 设置集成到更大的现有 Maven 项目中,并看到有关专门寻找快照版本的方解石核心的错误。为了解决这个问题,我将 hive-exec 依赖项更改为如下所示:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.14.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.calcite</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3680 次 |
最近记录: |