此篇需要具有hive、hbase整合基础,可以参考:
hive与hbase整合原理介绍
hbase0.96与hive0.12整合高可靠文档及问题总结
这里说一下项目实现的思路,此篇属于项目需求文档:数据的清洗以及导入hbase、hive准备工作
一、准备工作
首先我们启动hadoop、hbase、hive
如下图所示:
1.启动hadoop
复制代码
复制代码
2.启动hbase
复制代码
复制代码
3.启动hive
启动服务端
复制代码
启动客户端
复制代码
上面准备工作完毕,下面我们开始创建表,其实也比较简单。
我们这个项目主要是对日志进行清洗,并且导入hbase、与hive中,为了避免重复导入,因此我们采用了hbase与hive整合,这样在导入hbase的同时,hive同时也导入了,避免了重复工作。那么这里的建表工作就显的比较重要。
CREATE TABLE LogTable(Key string,IpAddress string,Url string,UserBrowser string,AccressTime string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,Info:IpAddress,Info:Url,Info:UserBrowser,Info:AccressTime") TBLPROPERTIES ("hbase.table.name" = "LogTable");
上面分别创建了hive以及hbase对应的表LogTable
1.查看hive表复制代码
我们看到创建hive表
2.查看hbase表
复制代码
上图我们已经我们就实现了在插入hbase的同时hive同样能够查询得到。
这里我们小小的展示一下:
- hbase(main):010:0> put 'LogTable','192.168.1.10 http://www.aboutyun.com/thread-8472-1-1.html 123','Info:IpAddress','192.168.1.10'
- 0 row(s) in 0.6850 seconds
复制代码
验证结果:
hbase验证
ROW COLUMN+CELL
192.168.1.10 http:// column=Info:IpAddress, timestamp=1406908690106, value=192.
www.aboutyun.com/thr 168.1.10
ead-8472-1-1.html 12
3
1 row(s) in 0.1050 seconds
上图红字部分为RowKey
hive验证:
这个成功之后,我们剩下的工作就是清洗插入,然后hive只写简单的sql就能统计了
|