Hive 0.14 UDF Maven Project Отсутствуют зависимости

Я пытался настроить проект Maven, который будет содержать пользовательские функции (UDF), которые я хотел бы использовать в своих запросах Hive. Я начал с проекта 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>

Когда я попытался собрать проект, я получаю следующую ошибку:

Не удалось выполнить цель проекта HiveUdfTestProject: не удалось разрешить зависимости для проекта exp:HiveUdfTestProject:jar:1.0-SNAPSHOT: не удалось разрешить следующие артефакты: org.apache.calcite:calcite-core:jar:0.9.2-incubating- СНИМОК, org.apache.calcite:calcite-avatica:jar:0.9.2-incubating-SNAPSHOT: не удалось найти артефакт org.apache.calcite:calcite-core:jar:0.9.2-incubating-SNAPSHOT -> [Справка 1 ]


person Steven Magana-Zook    schedule 30.12.2014    source источник


Ответы (3)


Я нашел банку-инкубатор с кальцитовым ядром. в центральном репозитории maven (но не в версии с моментальным снимком), требуемой зависимостью hive-exec 0.14.0.

Добавление кальцитового ядра из центра maven избавило от исходной ошибки и представило новую отсутствующую зависимость «pentaho-aggdesigner-algorithm», которую я нашел на ConJars.

Добавление репозитория conjars и зависимости Pentaho привело к появлению новой отсутствующей зависимости "org.apache.calcite:calcite-avatica :jar:0.9.2-incubating-SNAPSHOT", чья инкубирующая (но не моментальная) зависимость была доступен в центральном репозитории maven.

Добавление зависимости calcite-avatica в POM позволило наконец успешно собрать пустой проект.

Вот окончательный POM, необходимый для создания проекта, предназначенного для сборки Hive UDF:

<?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>

После создания пустого проекта я попытался интегрировать настройки 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>
person Steven Magana-Zook    schedule 30.12.2014

Я явно включил проекты calcite-core и calcite-avatica в качестве зависимостей, и мой проект (который также включает зависимости Hive 14) больше не завершался сбоем с ошибкой «артефакты не могут быть разрешены».

   <dependency>
           <groupId>org.apache.calcite</groupId>
           <artifactId>calcite-core</artifactId>
           <version>1.0.0-incubating</version>
   </dependency>
   <dependency>
           <groupId>org.apache.calcite</groupId>
           <artifactId>calcite-avatica</artifactId>
           <version>1.0.0-incubating</version>
   </dependency>

Насколько я могу судить, это открытая проблема с Hive 14. См. https://issues.apache.org/jira/browse/HIVE-8906 для получения дополнительной информации.

person ryanbwork    schedule 06.03.2015

Я решил ту же проблему, добавив следующие зависимости в /ql/pom.xml org.pentaho pentaho-aggdesigner-algorithm 5.1.3-jhyde

<dependency>
  <groupId>eigenbase</groupId>
  <artifactId>eigenbase-properties</artifactId>
  <version>1.1.4</version>
</dependency>

<dependency>
  <groupId>net.hydromatic</groupId>
  <artifactId>linq4j</artifactId>
  <version>0.4</version>
</dependency>

и ниже репозиторий в /pom.xml под positories

<repository>
      <id>conjars</id>
      <name>Concurrent Conjars repository</name>
      <url>http://conjars.org/repo</url>
      <layout>default</layout>
    </repository>
person Niranjan Sarvi    schedule 25.08.2015