《OD学HBase》20160820
一、案例
微博:
微博内容:
关注用户和粉丝用户: 添加或移除关注用户
查看关注用户的微博内容
微博数据存储:
响应时间 秒级 无延迟
(1)mysql分布式
(2)hbase数据库
使用HBase数据库实现微博系统数据的存储
表的设计:
命名空间:weibo
1. 微博内容表
TableName: weibo:weibo-content
RowKey:用户ID_timestamp
列簇:cf
列标签: cf:content,cf:title,cf:photo
版本设计:只需要保留一个版本
2. 用户关系表
TableName: weibo:relations
rowkey: 用户iID
列簇:
attend 关注用户
fan 粉丝用户
列标签:使用用户ID作为列标签,值为用户ID
rowkey attend fan
0001 attend:0002=0002 fan:0004=0004
attend:0003=0003 fan:0004=0004
版本设计:只需要保留一个版本
3. 用户微博内容接收邮件箱表
TableName: weibo:receive-content-email
Rowkey:用户ID
列簇:cf
列标签:
直接使用用户ID,vlaue值取微博内容的rowkey
版本设计:设置最大版本为1000
rowkey cf
00001 cf:0002=0002_2132455
cf:0002=0002_2132456
1)rowkey设计:
(1)唯一性
(2)长度: 最大64kb。rowkey是hbase中表数据冗余产生的因素
10~100 字节
最好 8字节 16字节 64位操作系统
(3)散列原则:
假如 时间戳_用户ID 作为rowkey
10亿用户同时发微博,
1456777_000001
1456778_000002
1456778_100000
问题: 集中到某个region,造成这单独几个region负载量偏大,而其他region完全没有负载
散列: 尽量将某一时刻内的数据均衡分散到所有Region中(大部分Region)中
热点现象:数据在某一个时刻集中存储到某一两个Region上
rowkey设计规范;
方便查询,尽可能讲查询字段放到rowkey,HBase根据rowkey查询速度是最快。
2)列簇设计:
HBase面向列簇存储
region起始rowkey --- 终止rowkey范围内一个列簇下的数据
hdfs上的一个文件
StoreFile === HFile
跨列簇查询,速度相对较慢
一般设计一到两个列簇
HBase中的缓存
memstore: 写缓存
blockcache:块缓存,读缓存
HBase表单元格版本号:插入数据的时候如果没有单独制定,系统默认使用时间戳作为版本号。也可以自己制定时间戳。
Get查询单行记录,Scan查询多行记录
《OD学HBase》20160820的更多相关文章
- 《OD学HBase》20160821
一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...
- 《OD学HBase》20160814
一.HBase引入 http://hbase.apache.org/ 大数据的数据库 1. 概述 Hadoop生态系统中的一个分布式.可拓展.面向列.可伸缩,具有自动容错功能的数据库. NoSQL数据 ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 《OD学hadoop》20160903某旅游网项目实战
一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...
- 《OD学Sqoop》数据转换工具Sqoop
一. 第二阶段课程回顾 hadoop 2.x HDFS YARN MapReduce Zookeeper Hive 二.大数据协作框架 对日志类型的海量数据进行分析 hdfs mapreduce/hi ...
- 《OD学hadoop》第二周0702
大数据离线计算hadoop2.x 三周(6天) markdown文本剪辑器 罗振宇--跨年演讲,时间的朋友 http://tech.163.com/16/0101/11/BC87H8DF000915B ...
- 《OD学hadoop》第一周0625
一.实用网站 1. linux内核版本 www.kernel.org 2. 查看网站服务器使用的系统 www.netcraft.com 二.推荐书籍 1. <Hadoop权威指南> 1- ...
- 一起学HBase——总结HBase中的PUT、GET、DELETE操作
传统的关系型数据库有CRUD增删改查操作,同样对于NoSQL列式数据库也有CRUD操作.本文对HBase中常用的Scan.GET.PUT.DELETE操作的用法做个总结. Put操作 Put相当于传统 ...
- 一起学HBase——简单介绍HBase各种组件
HBase是谷歌BigTble的开源实现.谷歌的三篇论文拉开了大数据江湖的序幕,铸就了现在以Hadoop为主的大数据技术生态圈.而HBase是开源的大数据数据库,和传统的行式数据库不同的是,HBase ...
随机推荐
- SQLSERVER中WITH(NOLOCK)详解
在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST .有关 NOLOCK 和 READPAST的一些技术知识 ...
- navigationController.navigationBar.titleTextAttributes
navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor ...
- IOS Crash捕获
IOS Crash ,就两种情况:一种是异常,另一种是中断[信号量]. #include <libkern/OSAtomic.h> #include <execinfo.h> ...
- POJ 2127
#include <iostream> #define MAXN 501 using namespace std; int a[MAXN],b[MAXN],ans[MAXN]; int G ...
- js中几个正则表达式相关函数使用时g标志的作用
首先,javascript中涉及到正则表达式的函数总共有6个,可分为两种: 1.第一种是作为字符串对象的方法,即以 String.fun(); 形式调用,这里包括 split.search.match ...
- HTTP协议中TCP的三次握手,四次挥手总结
建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...
- 做一款仿映客的直播App
投稿文章,作者:JIAAIR(GitHub) 一.直播现状简介 1.技术实现层面 技术相对都比较成熟,设备也都支持硬编码.iOS还提供现成的Video ToolBox框架,可以对摄像头和流媒体数据结构 ...
- JSX架构及注释
一.架构 二.注释 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&q ...
- MAC终端配色Solarized
MAC终端配色Solarized $ git clone git://github.com/altercation/solarized.git 在 solarized/osx-terminal.app ...
- Gray code---hdu5375(格雷码与二进制码,普通dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题意就是:给你一串二进制码,里面可能含有'?'这个既可以表示0又可以表示1, 让我们把这个二进制 ...