爬虫代码实现四:采用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存储