Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包org.apache.hadoop.hive.ql.exec.vector不存在_Java_Maven_Hadoop - Fatal编程技术网

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

Java 包org.apache.hadoop.hive.ql.exec.vector不存在,java,maven,hadoop,Java,Maven,Hadoop,我正在尝试使用hiveudf和UDAF,到目前为止,我在VM上使用命令行中的maven进行了很好的管理,这基本上是由一个非常熟悉的人很好地设置的。我不熟悉Java(项目,不太熟悉语言),但我至少可以看到我目前的问题是什么。我不知道为什么会发生这种情况,以及如何解决它 所以 我的问题是,无论出于什么原因,在跑步时 mvn install 编译器找不到任何过去的类 /org/apache/hadoop/hive/ql/exec 它可以在“exec”文件夹中找到所有类,但在“exec”中嵌套的任何

我正在尝试使用hiveudf和UDAF,到目前为止,我在VM上使用命令行中的maven进行了很好的管理,这基本上是由一个非常熟悉的人很好地设置的。我不熟悉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>

org.apache.maven.plugins
maven surefire插件
2.8
maven汇编插件
com.matthewrathbone.example.RawMapreduce
带有依赖项的jar
4.0.0
com.matthewrathbone.example
蜂巢扩展
罐子
1.0-快照
蜂巢扩展
http://maven.apache.org
org.apache.hadoop
hadoop客户端
2.0.0-mr1-cdh4.3.1
假如
org.apache.hive
蜂巢执行器
0.10.0-cdh4.3.1
假如
org.apache.commons
公地io
1.3.2
测试
commons httpclient
commons httpclient
3.1
测试
org.apache.hadoop
hadoop测试
2.0.0-mr1-cdh4.1.2
测试
朱尼特
朱尼特
4.8.2
测试
克劳德拉
https://repository.cloudera.com/artifactory/cloudera-repos/
我所犯的许多错误中有一个例子就是在标题中vector'是位于
/org/apache/hadoop/hive/ql/exec
中的文件夹

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


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

更具体地说,我做了一些调整,并最终缩小了范围,使之成为编译器正在寻找
类向量化dudafs
,而事实证明,我的
hive exec
.jar版本没有。。。。因此,它找不到它,因为它实际上不存在…

您是否从Maven assembly构建的JAR运行
com.matthewrathbone.example.RawMapreduce
?如果是这样,我不确定
hiveexec
是否在组装好的JAR中,因为
hiveexec
的依赖范围是“
provided
”。如果是这种情况,请尝试删除为该库提供的
hadoop client
。@AlexandreDupriez,这是毫无疑问的。我已经在顶部创建了自己的包名,当我运行mvn安装时,该包将在生成的.jar文件中创建。也就是说,我使用的是
hive-extensions-1.0-SNAPSHOT.jar