七、Hive On Hbase
@Test
public void testPut04() throws Exception {
TableName tname = TableName.valueOf("baizhi:t_user");
BufferedMutator mb = conn.getBufferedMutator(tname);
String[] company = {"baidu", "ali", "sina"};
List<Put> list = new ArrayList<>();
for (int i = 1; i < 1000; i++) {
String rowkeyP = company[new Random().nextInt(3)];
String empid = "";
if (i < 10) {
empid = "00" + i;
} else if (i < 100) {
empid = "0" + i;
} else {
empid = "" + i;
}
String rowkey = rowkeyP + ":" + empid;
Put put = new Put(rowkey.getBytes());
put.addColumn("cf1".getBytes(), "name".getBytes(), "lisi1".getBytes());
put.addColumn("cf1".getBytes(), "age".getBytes(), Bytes.toBytes(i + ""));
put.addColumn("cf1".getBytes(), "salary".getBytes(), Bytes.toBytes(100.0 * i + ""));
put.addColumn("cf1".getBytes(), "company".getBytes(), rowkeyP.getBytes());
list.add(put);
}
mb.mutate(list);
mb.close();
}
CREATE EXTERNAL table t_user_hbase(
id string,
name string,
age int,
salary double,
company string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES('hbase.columns.mapping' = ':key,cf1:name,cf1:age,cf1:salary,cf1:company')
TBLPROPERTIES('hbase.table.name' = 'rechen:t_user33');
0: jdbc:hive2://CentOS:10000> select avg(salary),max(salary),min(salary),sum(salary) ,company from t_user_hbase group by company;
select avg(salary) as avgSalary ,max(salary) as maxSalary,min(salary) as minSalary,sum(salary) as totalSalary ,company as companyName from t_user_hbase group by company;
有关Hive查询相关函数,可以参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF或者是hive编程指南.
需要资料的私信我!
献给每一个正在努力的我们,就算在忙,也要注意休息和饮食哦!我就是我,一个在互联网跌跌撞撞,摸爬滚打的热忱,给个三连吧~ 还有就是不要只看,多动手才行!努力呀!