2014-12-30 16 views
5

Próbowałem skonfigurować projekt Maven, który będzie zawierał funkcje zdefiniowane przez użytkownika (UDF), które chciałbym użyć w moich kwerendach Hive. Zacząłem projekt Maven nie zawierającym pliki źródłowe, a następnego POM:Hive 0.14 UDF Maven Project Brakujące zależności

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

Kiedy próbowałem zbudować projekt, pojawia się następujący błąd:

Failed to execute goal on project HiveUdfTestProject: Could not resolve dependencies for project exp:HiveUdfTestProject:jar:1.0-SNAPSHOT: The following artifacts could not be resolved: org.apache.calcite:calcite-core:jar:0.9.2-incubating-SNAPSHOT, org.apache.calcite:calcite-avatica:jar:0.9.2-incubating-SNAPSHOT: Could not find artifact org.apache.calcite:calcite-core:jar:0.9.2-incubating-SNAPSHOT -> [Help 1]

Odpowiedz

3

znalazłem calcite-core-incubating jar w maven centralne repozytorium (ale nie wersja inkubacyjna-migawka) wymagane przez zależność hive-exec 0.14.0.

Dodanie kalcytu z centrum maven pozwoliło pozbyć się pierwotnego błędu i wprowadziło nowy brakujący "algorytm pentaho-aggdesigner", który znalazłem na ConJars.

Dodawanie i zależność Pentaho conjars repo wykonana nowa brakujących zależnościach pojawia się "org.apache.calcite: kalcyt-avatica: jar: 0.9.2-inkubację-Snapshot", którego inkubowanie (ale nie snapshot) zależność była available in the maven central repo.

Dodanie zależności Calcite-Avatica do POM spowodowało, że projekt został pomyślnie zakończony.

Oto ostateczna POM potrzebne, aby projekt przeznaczony do Hive UDF budować:

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

Po pusty projekt zbudowany Próbowałem integracji ustawienia POM do większej istniejącego projektu Maven i zobaczyłem błędy dotyczące kalcytu -wyraźnie szuka wersji migawki. Aby ominąć ten, zmieniłem zależność ula-Exec, aby wyglądać tak:

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

jawnie włączone kalcytu-core i kalcyt-avatica projektów zależności, a mój projekt (co obejmuje również Hive 14 zależnościami), nie powiodło się z „artefaktów nie może być rozwiązany błąd”

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

z tego co mogę powiedzieć, to jest kwestią otwartą z Hive 14. Zobacz https://issues.apache.org/jira/browse/HIVE-8906 aby uzyskać więcej informacji.

0

Mam ten sam problem rozwiązany poprzez dodanie poniżej zależnościami do /ql/pom.xml org.pentaho Pentaho-aggdesigner algorytm 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> 

i poniżej repozytorium do /pom.xml pod pozycjami:

<repository> 
     <id>conjars</id> 
     <name>Concurrent Conjars repository</name> 
     <url>http://conjars.org/repo</url> 
     <layout>default</layout> 
    </repository> 
Powiązane problemy