Java 使用Spring挂起查询远程配置单元服务器2

Java 使用Spring挂起查询远程配置单元服务器2,java,spring,hadoop,jdbc,hive,Java,Spring,Hadoop,Jdbc,Hive,我正在尝试使用Spring和jdbc连接连接到Hive。我使用的是Spring Book()中的同一个示例,我成功地获得了连接部分,但当我运行查询时,它会挂起,并且我永远无法返回结果 我看到过更多类似于这篇文章的帖子,但没有一篇得到了具体/有效的回答 有人能帮我吗?我开始认为HiveServer2和spring框架存在问题 这是我的代码: public class HiveApp { private static final Log log = LogFactory.getLog(HiveAp

我正在尝试使用Spring和jdbc连接连接到Hive。我使用的是Spring Book()中的同一个示例,我成功地获得了连接部分,但当我运行查询时,它会挂起,并且我永远无法返回结果

我看到过更多类似于这篇文章的帖子,但没有一篇得到了具体/有效的回答

有人能帮我吗?我开始认为HiveServer2和spring框架存在问题

这是我的代码:

public class HiveApp {

private static final Log log = LogFactory.getLog(HiveApp.class);

public static void main(String[] args) throws Exception {
    try {
        AbstractApplicationContext context = new ClassPathXmlApplicationContext(
                "/META-INF/spring/hive-context.xml", HiveApp.class);
        log.info("Hive Application Running");
        System.out.println("Hive Application Running");
        context.registerShutdownHook(); 

        HiveTemplate template = context.getBean(HiveTemplate.class);
        System.out.println("Hive Template = " + template);
        List<String> results = template.query("show tables");
        for (String result : results) {
            System.out.println(result);         
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
这是我的hive-server.properties hive.exec.drop.ignorenonexistent=true

这是我的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>spring-data-book-hadoop-hive</artifactId>

<name>Spring Data Book - Hadoop Hive</name>

<parent>
    <groupId>com.oreilly.springdata</groupId>
    <artifactId>spring-data-book</artifactId>
    <version>1.0.0.BUILD-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.hadoop.version>1.0.0.RELEASE</spring.hadoop.version>
    <spring.integration.version>2.1.3.RELEASE</spring.integration.version>      
    <hadoop.version>1.0.1</hadoop.version>
    <hive.version>0.8.1</hive.version>
    <thrift.version>0.7.0</thrift.version>
    <log4j.version>1.2.17</log4j.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>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</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.springframework.integration</groupId>
        <artifactId>spring-integration-core</artifactId>
        <version>${spring.integration.version}</version>
    </dependency>       

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>${hadoop.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-metastore</artifactId>
        <version>${hive.version}</version>
        <exclusions>
            <exclusion> 
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>            
    </dependency>

    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-service</artifactId>
        <version>${hive.version}</version>      
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>           
    </dependency>   

    <!-- thrift only needed as compile time to support 'native' implementation of HivePasswordRepository -->
    <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
    </dependency>           

    <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libfb303</artifactId>
        <version>${thrift.version}</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-builtins</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>
        <exclusions>
            <exclusion> 
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>               
    </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>                   

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
    </dependency>

</dependencies>

<repositories>
    <repository>
        <id>spring-milestone</id>
        <url>http://repo.springsource.org/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>
                <!-- Extra JVM arguments that will be included in the bin scripts -->
                <extraJvmArguments>-Xms512m -Xmx1024m</extraJvmArguments>
                <programs>
                    <program>
                        <mainClass>com.oreilly.springdata.hadoop.hive.HiveApp</mainClass>
                        <name>hiveApp</name>
                    </program>
                    <program>
                        <mainClass>com.oreilly.springdata.hadoop.hive.HiveAppWithApacheLogs</mainClass>
                        <name>hiveAppWithApacheLogs</name>
                    </program>          
                </programs>
            </configuration>
        </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>

4.0.0
spring数据手册hadoop hive
Spring数据手册-Hadoop Hive
com.oreilly.springdata
弹簧数据手册
1.0.0.1构建快照
../../pom.xml
UTF-8
1.0.0.1版本
2.1.3.1发布
1.0.1
0.8.1
0.7.0
1.2.17
org.springframework.data
spring数据hadoop
${spring.hadoop.version}
org.springframework
spring上下文支持
org.slf4j
slf4j-log4j12
org.springframework
SpringJDBC
${spring.version}
org.springframework
弹簧试验
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework.integration
spring集成核心
${spring.integration.version}
org.apache.hadoop
hadoop内核
${hadoop.version}
编译
org.apache.hive
蜂巢元存储
${hive.version}
org.slf4j
slf4j-log4j12
log4j
log4j
org.apache.hive
蜂箱服务
${hive.version}
org.slf4j
slf4j-log4j12
log4j
log4j
org.apache.thrift
贪污腐化
${thrift.version}
org.apache.thrift
libfb303
${thrift.version}
org.apache.hive
普通蜂房
${hive.version}
运行时
org.apache.hive
蜂巢内置物
${hive.version}
运行时
org.apache.hive
蜂窝jdbc
${hive.version}
运行时
org.apache.hive
蜂箱垫片
${hive.version}
运行时
org.apache.hive
蜂巢纹
${hive.version}
运行时
org.slf4j
slf4j-log4j12
log4j
log4j
org.apache.hive
蜂箱设计
${hive.version}
运行时
org.codehaus.groovy
棒极了
1.8.5
运行时
回写
回归经典
${logback.version}
春季里程碑
http://repo.springsource.org/libs-milestone
org.codehaus.mojo
appassembler maven插件
1.2.2
平的
-Xms512m-Xmx1024m
com.oreilly.springdata.hadoop.hive.HiveApp
hiveApp
com.oreilly.springdata.hadoop.hive.HiveAppWithApacheLogs
hiveAppWithApacheLogs
org.apache.maven.plugins
maven antrun插件
配置
包裹
跑

HiveDriver(org.apache.hadoop.hive.jdbc.HiveDriver)有问题,请将其更改为[org.apache.hive.jdbc.HiveDriver;]

请参阅下面的示例

package org.springframework.samples.hadoop.hive;

import org.apache.hive.jdbc.HiveDriver;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.SimpleDriverDataSource;

public class TestHive {

      private static String driverName = "org.apache.hive.jdbc.HiveDriver";

    public static void main(String args[]){

         java.sql.Driver driver = new HiveDriver();
        SimpleDriverDataSource ds  = new SimpleDriverDataSource(driver, "jdbc:hive2://$host/$DB:10000");
        JdbcTemplate hiveTemplate = new JdbcTemplate(ds);
        System.out.println(hiveTemplate.queryForList("show tables"));
        System.out.println("Done"); 
    }


}
hive.host=somehost.int
hive.port=10000
hive.url=jdbc:hive2://${hive.host}:${hive.port}/
hive.table=tablename
<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-data-book-hadoop-hive</artifactId>

<name>Spring Data Book - Hadoop Hive</name>

<parent>
    <groupId>com.oreilly.springdata</groupId>
    <artifactId>spring-data-book</artifactId>
    <version>1.0.0.BUILD-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.hadoop.version>1.0.0.RELEASE</spring.hadoop.version>
    <spring.integration.version>2.1.3.RELEASE</spring.integration.version>      
    <hadoop.version>1.0.1</hadoop.version>
    <hive.version>0.8.1</hive.version>
    <thrift.version>0.7.0</thrift.version>
    <log4j.version>1.2.17</log4j.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>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</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.springframework.integration</groupId>
        <artifactId>spring-integration-core</artifactId>
        <version>${spring.integration.version}</version>
    </dependency>       

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>${hadoop.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-metastore</artifactId>
        <version>${hive.version}</version>
        <exclusions>
            <exclusion> 
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>            
    </dependency>

    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-service</artifactId>
        <version>${hive.version}</version>      
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>           
    </dependency>   

    <!-- thrift only needed as compile time to support 'native' implementation of HivePasswordRepository -->
    <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
    </dependency>           

    <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libfb303</artifactId>
        <version>${thrift.version}</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-builtins</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>
        <exclusions>
            <exclusion> 
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion> 
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>               
    </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>                   

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
    </dependency>

</dependencies>

<repositories>
    <repository>
        <id>spring-milestone</id>
        <url>http://repo.springsource.org/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>
                <!-- Extra JVM arguments that will be included in the bin scripts -->
                <extraJvmArguments>-Xms512m -Xmx1024m</extraJvmArguments>
                <programs>
                    <program>
                        <mainClass>com.oreilly.springdata.hadoop.hive.HiveApp</mainClass>
                        <name>hiveApp</name>
                    </program>
                    <program>
                        <mainClass>com.oreilly.springdata.hadoop.hive.HiveAppWithApacheLogs</mainClass>
                        <name>hiveAppWithApacheLogs</name>
                    </program>          
                </programs>
            </configuration>
        </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>
package org.springframework.samples.hadoop.hive;

import org.apache.hive.jdbc.HiveDriver;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.SimpleDriverDataSource;

public class TestHive {

      private static String driverName = "org.apache.hive.jdbc.HiveDriver";

    public static void main(String args[]){

         java.sql.Driver driver = new HiveDriver();
        SimpleDriverDataSource ds  = new SimpleDriverDataSource(driver, "jdbc:hive2://$host/$DB:10000");
        JdbcTemplate hiveTemplate = new JdbcTemplate(ds);
        System.out.println(hiveTemplate.queryForList("show tables"));
        System.out.println("Done"); 
    }


}