首页 > 代码库 > 爬虫代码实现四:采用Hbase存储爬虫数据(1)

爬虫代码实现四:采用Hbase存储爬虫数据(1)

 

3.Hbase表设计:

1.窄表:列少行多,表中的每一行尽可能保持唯一。

2.宽表:列多行少,通过时间戳版本来进行区分取值。

技术分享

窄表:比如说,这个表,rowkey由userid+时间+bbsid假设bbsid为回帖的id。那么,对于同一个用于1001,假设我们需要查询1001用户某一天的数据,使用窄表,我们需要查询1001用户所有天数的rowkey数据,然后再一条条对比,最后找到我们需要查找的天数的数据。那如果是365天,我就是要查找第365天,一条条对比,这样效率很低。

技术分享

那么,本项目该如何来设计Hbase表呢?

点击优酷的不同电视剧,发现url如下:

技术分享

技术分享

因此,我们可以采用网站来源+电视剧id作为rowkey,需要爬取的字段信息存于列簇,那么我们如何获取这些列字段比如一天24小时对应的值呢?

这里我们创建Hbase表,设置多个版本,create ‘tvcount‘,{NAME=>‘tvinfo‘,VERSIONS=>30},这样对于同一个列,我们是存了多个时间段的相应的值,而不仅仅是一条。

 具体操作:

1.首先打开hbase环境:

技术分享

2.再输入$ clear

技术分享

3.进入hbase shell命令:

技术分享

4.查询list看有没有这个表

技术分享

技术分享

好像目前没有这个表任何信息

5.因此,这里需要创建一个表来存储优酷的电视剧的信息。创建tvcount表,列簇是tvinfo,记录30天的数据

技术分享

6.再查list,发现有这个表了

技术分享

7.查看下这个表

技术分享

现在,我们这个表已经是创建成功了。

 

爬虫代码实现四:采用Hbase存储爬虫数据(1)