关于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
然后再运行应该就没有问题了