天天看點

MyEclipes下執行Hive語句查詢Hbase資料庫資料

前幾天有一個top100的案例分享,全程聽了各個公司架構組的一些案例技術分享,發現大家都在大資料方面投入很大,相比當當,58,阿裡巴巴,facebook,google這些公司。新浪的分享者比較保守,很多不算牽扯到細節都系都說不友善說,其實技術都是那些技術,隻是業務不同産生很多不同的架構,感覺沒必要。

閑話不多說,最近完成了在myeclipes完成了hive操作hbase資料庫資料,直接上代碼

定義枚舉。

public enum sqltype

{

allordernumber,

dayorderunmber,

}

具體方法

public int getallordernumber() {

java.util.calendar c=java.util.calendar.getinstance();

java.text.simpledateformat f=new java.text.simpledateformat(“yyyy-mm-dd-hh-mm”);

return getallordernumber(“0″, f.tostring());

public int getallordernumber(string startdata, string enddata) {

try {

return (integer) selecttable(sqltype.allordernumber,startdata,enddata);

} catch (sqlexception e) {

e.printstacktrace();

} catch (classnotfoundexception e) {

return 0;

public static object selecttable(sqltype type,string startdata,string enddata) throws sqlexception, classnotfoundexception {

class.forname(“org.apache.hadoop.hive.jdbc.hivedriver”);

string querysql = null;

switch(type)

case allordernumber:

querysql = “select count(distinct content['userid']) from loanorder where content['createtime']>’@’ and content['createtime']<‘!'” ;

querysql = querysql.replaceall(“@”,startdata);

querysql = querysql.replaceall(“!”,enddata);

system.out.println(querysql);

break;

case dayorderunmber:

system.out.println(“1″);

querysql = “select *, count( distinct content['userid']) from loanorder group by content['userid']” ;

default :system.out.println(“沒有對應的枚舉類型”);

connection con = drivermanager.getconnection(

“jdbc:hive://192.168.3.232:10000/default”, “”, “”);

statement stmt = con.createstatement();

resultset res = stmt.executequery(querysql); // 執行查詢語句

while (res.next()) {

system.out.println(“result: key: ” + res.getstring(1)+”——-“+ res.getstring(2));

// system.out.println(“result: key: ” + res.getstring(1));