《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查询多行记录

时间: 2024-10-14 10:27:24

《OD学HBase》20160820的相关文章

《OD学HBase》20160821

一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab.enabled preclose.flush.size JVM堆内存 初生代内存空间:数据停留时间较短  128~512M -Xmn128M 老生代内存空间:数据停留时间比较长,几GB 内存碎片  GC清理 -->进程停顿 当垃圾过多,GC进程限制应用程序进程的进行 GC垃圾回收策略: Parral

《OD学spark》20160924scala基础

拓展: Hadoop 3.0 NameNode HA NameNode是Active NameNode是Standby可以有多个 HBase Cluster 单节点故障? HBaster -> BackMaster HRegionServer WEBUI 60010 Spark 课程安排分为两个部分: 第一部分:基础篇 SCALA:1天 SparkCore:2天 - MapReduce SparkSQL:1天 - Hive Shark = Hive on Spark 关键,企业中必用的,必须掌握

《OD学hadoop》20160910某旅游网项目实战

一.event事件分析 叶子节点只计算一次 父节点的触发次数由子节点的数量节点 事件流:是由业务人员定义的一系列的具有前后顺序的事件构成的用户操作行为,至少包括两个事件以上. 目标:以事件流为单位,分析事件流中各个事件的触发次数 事件流特征: 1.事件流中每一个事件都会存在一个来源/父事件 计算方式: 1. 不考虑事件流的关系,直接计算各个事件的触发次数(wordcount) 2. 考虑事件流,计算事件流中的各个事件的触发次数 区分 1.uuid,不同访客的事件流不在一起处理: 不同人产生的事件

《OD学hadoop》第一周0625

一.实用网站 1. linux内核版本 www.kernel.org 2. 查看网站服务器使用的系统  www.netcraft.com 二.推荐书籍 1. <Hadoop权威指南> 1-3版: Hadoop1系列 4版(目前仅有英文原版):Hadoop2系列 yarn高可用性,HA 2. <Hive权威指南> 3. <MapReduce设计模式> 4. <HBase权威指南> 5. <鸟哥的Linux私房菜> 6. <Vim使用技巧>

《OD学spark》20160925 Spark Core

一.引言 Spark内存计算框架 中国Spark技术峰会 十二场演讲 大数据改变世界,Spark改变大数据 大数据: 以Hadoop 2.x为主的生态系统框架(MapReduce并行计算框架) 存储数据.处理数据 分布式 Spark: 类似于MapReduce的另外一种分布式计算框架 核心: 数据结构:RDD,集合List[T] MapReduce 最大的痛点: IO性能瓶颈,也是所有分布式计算框架的痛点 (1)磁盘IO, input(disk) -> map -> DISK(local)-&

《OD学hadoop》第三周0709

一.MapReduce编程模型1. 中心思想: 分而治之2. map(映射)3. 分布式计算模型,处理海量数据4. 一个简单的MR程序需要制定map().reduce().input.output5. 处理的数据放在input中.处理的结果放在output中6. MR程序>八股文7. MR在处理数据的时候,是由一个流向,数据在处理过程中的流向格式:以<key,value>进行流向8. input -> map() -> reduce() -> output<key

《OD学hadoop》mac下使用VMware Fusion安装centos

一. NAT模式网络访问 (1)在linux中输入命令ifconfig查看网络信息 (2)在mac中输入命令ifconfig查看网络信息 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=3<RXCSUM,TXCSUM> inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 inet6 fe80::1%lo0 prefixlen 64 sco

《OD学微信开发》微信小程序入门示例

官网地址: https://mp.weixin.qq.com/debug/wxadoc/dev/ 一.文件结构 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page. .js后缀的是脚本文件 .json后缀的文件是配置文件 .wxss后缀的是样式表文件 wxopen-002 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 1. app.js app.js是小程序的脚本代码.我们可以在这个文件中监听并处理小程序的生命周期函数.声明全局变量.调用框架提供的丰富的 AP

《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)

1. 1) vim /etc/udev/rules.d/70-persistent-net.rules vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet UUID=57d4c2c9-9e9c-48f8-a654-8e5bdbadafb8 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAM