Hadoop那些事(六)—Hive入门程序

关于hive的入门知识点,网上有很详细的资料,我是看的 http://yiibai.com/hive/ 提供的教程,在这里我就不重复了。

然后最近一直在蒙圈中,在使用过程中有问题一直解决不了,卡了好久。

下面来写hive的jdbc程序。
我还是在之前hadoop的项目中写的,首先引入hive的依赖包,位于安装目录下,我这里的地址是/usr/local/hive/lib 我引入了所有含有hive的jar包,然后项目里之前引用的jline包是旧版本的,这里也替换为yarn目录下的最新版的(上篇文章中替换了yarn下的此包)
然后下面是简单的代码:

package hive;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Before;
import org.junit.Test;

public class Hive {
    private static final String driveName = "org.apache.hive.jdbc.HiveDriver";
    private static final String url = "jdbc:hive2://localhost:10000/testdb";
    private static Connection conn = null;

    @Before
    public void init() throws ClassNotFoundException, SQLException {
        Class.forName(driveName);
        conn = DriverManager.getConnection(url,"APP","mine");
    }

    @Test
    public void query() throws SQLException{
        Statement stmt = conn.createStatement();
        System.out.println("aaa");
        ResultSet result = stmt.executeQuery("select * from employee");
        while(result.next()){
            System.out.println(result.getInt(1)+" "+result.getString(2)+"  "+result.getDouble(3)+" "+result.getString(4));
        }
    }
}

运行时可能会报Transport Used for JDBC connection: null的异常,原因应该是hive的服务没有启动,在控制台中启动hiveserver2

cd $HIVE_HOME
bin/hiverserver2

然后再运行应该就没有问题了

IT文库 » Hadoop那些事(六)—Hive入门程序
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址