gpt4 book ai didi

java - 包 org.apache.hadoop.hive.ql.exec.vector 不存在

转载 作者:可可西里 更新时间:2023-11-01 15:26:10 32 4
gpt4 key购买 nike

我正在尝试使用 Hive UDF 和 UDAF,到目前为止,我在 VM 上使用命令行中的 maven 已经很好地做到了这一点,该 VM 基本上是由知识渊博的人设置得很好。我是 Java 的新手(项目,与其说是语言),但我至少可以看到我当前的问题是什么。我不知道它为什么会发生以及如何解决它。

所以...

我的问题是无论出于何种原因,在运行时

mvn install

编译器找不到任何过去的类

/org/apache/hadoop/hive/ql/exec

它可以找到“exec”文件夹中的所有类,但在“exec”中嵌套的任何子文件夹中找不到任何类。我不明白为什么会这样。这是我的 POM 文件。

<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/maven-v4_0_0.xsd">

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.matthewrathbone.example.RawMapreduce</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>

<modelVersion>4.0.0</modelVersion>
<groupId>com.matthewrathbone.example</groupId>
<artifactId>hive-extensions</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>hive-extensions</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.0.0-mr1-cdh4.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.10.0-cdh4.3.1</version>
<scope>provided</scope>
</dependency>
<!-- TEST DEPENDENCIES -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
<version>2.0.0-mr1-cdh4.1.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
</project>

标题中是我遇到的众多错误之一的示例。 “vector”是位于 /org/apache/hadoop/hive/ql/exec 中的文件夹。

据我所知,hive-exec.jar 文件在我的 POM 文件中被列为依赖项,所以我不确定为什么编译器在定位所有其中包含的类(它可以找到一些,如前所述)。

基本上我想做的是将内置 UDAF 之一合并为我自己的临时函数,这样我就可以绕过 Hive 对“SELECT”语句内的子查询的限制。

最佳答案

所以,更具体地说,我做了一些调整,最终将范围缩小到编译器正在寻找 class VectorizedUDAFs。事实证明,我的 hive-exec 版本.jar 没有....去图。因此,它找不到它,因为它实际上不存在......

关于java - 包 org.apache.hadoop.hive.ql.exec.vector 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102749/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com