分享

about云分析discuz论坛apache日志hadoop大数据项目:hive与hbase是如何整合使用的

pig2 发表于 2014-8-2 00:06:05 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 53 43176
此篇需要具有hive、hbase整合基础,可以参考:
hive与hbase整合原理介绍
hbase0.96与hive0.12整合高可靠文档及问题总结

这里说一下项目实现的思路,此篇属于项目需求文档:数据的清洗以及导入hbase、hive准备工作



一、准备工作
首先我们启动hadoop、hbase、hive
如下图所示:

1.启动hadoop


  1. start-dfs.sh
复制代码
starthdfs.png



  1. start-yarn.sh
复制代码
startyarn.png





2.启动hbase
  1. start-hbase.sh
复制代码
starthbase.png





  1. hbase shell
复制代码

hbaseshell.png




3.启动hive

启动服务端

  1. hive --service metastore
复制代码



hive start.png



启动客户端
  1. hive
复制代码

hive client.png





上面准备工作完毕,下面我们开始创建表,其实也比较简单。

我们这个项目主要是对日志进行清洗,并且导入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表
  1. show tables;
复制代码

我们看到创建hive表
hive create table.png

2.查看hbase表
  1. list
复制代码

hbase表.png





上图我们已经我们就实现了在插入hbase的同时hive同样能够查询得到。

这里我们小小的展示一下:

  1. 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'
  2. 0 row(s) in 0.6850 seconds
复制代码
shili.png





验证结果:




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

hbase.png

上图红字部分为RowKey


hive验证:

hive> select * from logtable;
OK
192.168.1.10 http://www.aboutyun.com/thread-8472-1-1.html 123        192.168.1.10        NULL        NULL        NULL        NULL
Time taken: 3.024 seconds, Fetched: 1 row(s)

这个成功之后,我们剩下的工作就是清洗插入,然后hive只写简单的sql就能统计了










已有(53)人评论

跳转到指定楼层
wubaozhou 发表于 2014-12-31 08:51:53
回复

使用道具 举报

ewwerpm 发表于 2014-8-14 21:33:13
你们都用的什么版本集成的啊?我用的hadoop 2.2,hbase 0.96, hive  0.12,按照上面的步骤做,到最后一步hive查询 显示OK,可是结果集却显示不出来。这个帖子12不兼容96说 hive 0.12和 hbase 0.96不兼容啊,是这样的吗?hive 0.12只兼容hbase 0.94,可是hbase 0.94又不兼容hadoop 2.2,
hive> select * from logtable;
OK
Failed with exception java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.hbase.client.Result cannot be cast to org.apache.hadoop.io.Writable
回复

使用道具 举报

howtodown 发表于 2014-8-15 10:40:22
ewwerpm 发表于 2014-8-14 21:33
你们都用的什么版本集成的啊?我用的hadoop 2.2,hbase 0.96, hive  0.12,按照上面的步骤做,到最后一步h ...
理论上是的,这些需要做一些特殊的处理。
他们的安装过程都是差不多的。如果不熟悉,则需要按照官网的配置,这样不容易出问题。
他们的之间的对应关系,可以参考

hadoop、hbase、hive版本对应关系

回复

使用道具 举报

lyman825726 发表于 2014-8-24 19:25:23
正是想看的。多谢分享
回复

使用道具 举报

zhangsongjh 发表于 2014-12-24 12:43:58
很好,适合初学者,没有搭建环境而又希望了解这些产品的人。
回复

使用道具 举报

dannyhe 发表于 2015-5-15 11:01:34
正是想看的。多谢分享
回复

使用道具 举报

小伙425 发表于 2016-5-4 09:44:57
学习了 辛苦啦
回复

使用道具 举报

ggggying12 发表于 2017-2-22 19:42:14
好好学习,天天向上
回复

使用道具 举报

ggggying12 发表于 2017-2-23 17:38:53
非常感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条