Интеграция данных весны весной с шаблоном улья
Я пытаюсь использовать Spring Data Hadoop для интеграции куста в мое приложение и сталкиваюсь с некоторыми проблемами. Первое, в чем я не уверен, так это <hdp:hive-server host="some-other-host" port="10001" />
это для подключения к существующему серверу улья или к чему-то вроде создания нового сервера улья, чтобы затем иметь возможность подключиться к нему. Во-вторых, моя конфигурация не выдает никаких ошибок, поэтому кажется, что все в порядке, и даже автоматическая разводка hiveTemplate тоже работает нормально, но когда я выполняю запрос, я не получаю никакого ответа. Приложение как бы застревает на этом этапе.
вот конфигурация
<hive-client-factory host="${hive-${env}.server}" port="${hive-${env}.port}" />
<hive-template />
и вот как я его использую
log.debug("before hive query");
for(String result : hiveTemplate.query("show tables;")){
log.debug("=> " + result);
}
log.debug("after hive query");
все, что я вижу в выводе журнала before hive query
.. ничего не происходит после этого. Буду признателен за любую помощь. Есть идеи, что я могу делать неправильно.
2 ответа
Если мы используем Spring, пожалуйста, убедитесь, что все ваши зависимости совместимы с версией Spring. После этого дайте разрешение на чтение и запись, используя следующие команды.
hadoop fs -mkdir /tmp
hadoop fs -chmod a+w /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod a+w /user/hive/warehouse
Я использовал следующую версию зависимости в pom.xml
<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>
<artifactId>spring-hadoop-samples-hive</artifactId>
<name>Spring Hadoop Samples - Hive</name>
<parent>
<groupId>org.springframework.samples</groupId>
<artifactId>spring-hadoop-samples</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.hadoop.version>2.3.0.M1</spring.hadoop.version>
<hadoop.version>2.7.1</hadoop.version>
<hive.version>1.2.1</hive.version>
<!-- <hive.version>2.1.1</hive.version> -->
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>${spring.hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-metastore</artifactId>
<version>${hive.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-service</artifactId>
<version>${hive.version}</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libfb303</artifactId>
<version>0.9.1</version>
</dependency>
<!-- runtime Hive deps start -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-common</artifactId>
<version>${hive.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>${hive.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-shims</artifactId>
<version>${hive.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-serde</artifactId>
<version>${hive.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-contrib</artifactId>
<version>${hive.version}</version>
<scope>runtime</scope>
</dependency>
<!-- runtime Hive deps end -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>1.8.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-milestone</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<repositoryLayout>flat</repositoryLayout>
<configurationSourceDirectory>src/main/config</configurationSourceDirectory>
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<!-- Extra JVM arguments that will be included in the bin scripts -->
<extraJvmArguments>-Xms512m -Xmx1024m -Dhive.version=${hive.version}</extraJvmArguments>
<programs>
<program>
<mainClass>org.springframework.samples.hadoop.hive.HiveApp</mainClass>
<name>hiveApp</name>
</program>
<program>
<mainClass>org.springframework.samples.hadoop.hive.HiveClientApp</mainClass>
<name>hiveClientApp</name>
</program>
<program>
<mainClass>org.springframework.samples.hadoop.hive.HiveAppWithApacheLogs</mainClass>
<name>hiveAppWithApacheLogs</name>
</program>
</programs>
</configuration>
<executions>
<execution>
<id>package</id>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>config</id>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="target/appassembler/data">
<fileset dir="data"/>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
- Попробуйте 10000 в качестве номера порта.
- Обычно сервер Thrift развертывается с номером порта 10000. Проверьте, использует ли ваша установка HiveServer2 или HiveServer. Мне удалось заставить рабочие процессы Spring Batch работать с HiveServer, но мне пока не удалось с HiveServer2.
- Убедитесь, что у вас есть HiveServer/HiveServer запущен и работает, прежде чем запускать вашу программу