爬虫代码实现四:采用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)的更多相关文章
- 爬虫代码实现四:采用Hbase存储爬虫数据(2)
导入hbase的jar包,在maven仓库找:进入http://mavenrepository.com/,输入hbase client,选择apache hbase client, 点击进入,选择 点 ...
- Sybase:存储过程中采用临时表存储统计数据
Sybase:存储过程中采用临时表存储统计数据 作用 很有效的提升统计查询速度,对于数据量亿级.千万级多表之间关联查询,非常有效: 使用 --无需定义临时表,直接使用 --自动释放临时表 select ...
- python爬虫入门(四)利用多线程爬虫
多线程爬虫 先回顾前面学过的一些知识 1.一个cpu一次只能执行一个任务,多个cpu同时可以执行多个任务2.一个cpu一次只能执行一个进程,其它进程处于非运行状态3.进程里包含的执行单元叫线程,一个进 ...
- 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储
http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...
- 爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)
这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string&g ...
- (转)Python新手写出漂亮的爬虫代码2——从json获取信息
https://blog.csdn.net/weixin_36604953/article/details/78592943 Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬 ...
- 第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码
第三百五十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—利用开源的scrapy-redis编写分布式爬虫代码 scrapy-redis是一个可以scrapy结合redis搭建分布式爬虫的开 ...
- 第三百二十四节,web爬虫,scrapy模块介绍与使用
第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了 ...
- 四十七 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.elastic.co/guide/en/elasticsearch/reference/current/se ...
随机推荐
- 小贝_redis hash类型学习
Redis Hash类型 一.查看hash类型的命令 二.操作hash命令具体解释 一.查看hash类型的命令 1.输入 help@hash 127.0.0.1:6379>help @hash ...
- kubernetes集群管理常用命令一
系列目录 我们把集群管理命令分为两个部分,第一部分介绍一些简单的,但是可能是非常常用的命令以及一些平时可能没有碰到的技巧.第二部分将综合前面介绍的工具通过示例来讲解一些更为复杂的命令. 列出集群中所有 ...
- lua 字符串处理
匹配模式(pattern) . 任何单个字符 %a 任何字母 %c 任何控制字符 %d 任何数字 %g 任何除空白符外的可打印字符 %l 所有小写字母 %p 所有标点符号 %s 所有空白字符 %u 所 ...
- php 获取当前页面url路径
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST'].""; # ...
- 【TensorFlow-windows】(零)TensorFlow的"安装"
Tensorflow的安装,具体操作就不演示了.具体操作请移步: http://blog.csdn.net/darlingwood2013/article/details/60322258#comme ...
- 用EasyDarwin进行IPTV rtsp mpeg-ts smil流的转发和分发直播服务
对RTSP/RTP的转发和分发一直都是EasyDarwin的基础功能,尤其是在安防行业中,EasyDarwin非常贴合安防监控的需求,但一直未尝试用EasyDarwin进行IPTV的RTSP流进行转发 ...
- 数据库的update、delete、insert和select用法
String sql=null; 1.sql="update 表名 set <列名>=<表达式> [where=<表达式>]" 2.sql=&q ...
- 云计算系列——HIVE1.2.1 - JDBC 服务
前提 Hadoop 集群已经启动 Hive1.2.1 环境已经搭建 一.启动 HIVE - JDBC 服务 hiveserver2 为 hive 的 jdbc 服务,此服务默认为前台进程,需要在执行 ...
- HZNU 2154 ldh发奖金【字符串】
题目链接 http://acm.hznu.edu.cn/OJ/problem.php?id=2154 思路 先判断不能拆分的情况 以为需要拆分成两个正整数 所以我们可以知道 只有个位的数字 是不能够拆 ...
- 分布式session之token解决方案实现
基于令牌(Token)方式实现Session解决方案,因为Session本身就是分布式共享连接 用token代替session 废话不多说,看项目: pom.xml <project xmlns ...