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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫代码实现四:采用Hbase存储爬虫数据相关的知识,希望对你有一定的参考价值。

 

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存储爬虫数据的主要内容,如果未能解决你的问题,请参考以下文章

分布式爬虫系统设计实现与实战:爬取京东苏宁易购全网手机商品数据+MySQLHBase存储

爬虫代码实现三:打通爬虫项目的下载解析存储流程

拉勾网爬虫Python代码实现

去哪儿网酒店数据的爬虫算法实现

java-爬虫-14-采用Redis创建url仓库,实现分布式爬虫

爬虫代码实现七:实现高低级队列循环抓取