HBase学习笔记-基础(一)
HBase版本:0.97
1.Get
Gets实在Scan的基础上实现的。
2.联合查询(Join)
HBase是否支持联合是一个网上常问问题。简单来说 : 不支持。至少不像传统RDBMS那样支持。
但并不表示等价联合不能在应用程序中支持,只是必须自己做。 两种方法,要么指示要写到HBase的数据,要么查询表并在应用或MapReduce代码中做联合。
3.列族
一个表存在多列族,注意基数(如, 行数). 如果列族A有100万行,列族B有10亿行,列族A可能被分散到很多很多区(及区服务器)。这导致扫描列族A低效。
无论是列族,属性和行键都会在数据中重复上亿次。所以尽量使列族名小,最好一个字符。
每个Column Family单独存储:storeFile。
TTL
列族可以设置TTL秒数,HBase 在超时后将自动删除数据。影响 全部 行的全部版本 - 甚至当前版本。HBase里面TTL 时间时区是 UTC.
4.行键(RowKey)设计
OpenTSDB的Key的格式是[metric_type][event_timestamp],乍一看,似乎违背了不将timestamp做key的建议,但是他并没有将timestamp作为key的一个关键位置,有成百上千的metric_type就足够将压力分散到各个region了。
5.倒序时间戳
一个数据库处理的通常问题是找到最近版本的值。采用倒序时间戳作为键的一部分可以对此特定情况有很大帮助。追加(Long.MAX_VALUE - timestamp) 到key的后面,如 [key][reverse_timestamp].
表内[key]的最近的值可以用[key]进行 Scan 找到并获取第一个记录。由于 HBase 行键是排序的,该键排在任何比它老的行键的前面,所以必然是第一个。
6.行健
行键不能改变。唯一可以“改变”的方式是删除然后再插入。
7.强一致性
同一行数据的读写只在同一台regionserver上进行;
仅支持单行事务,对行的写操作是始终是“原子”的
8.行事务
同一行的列的写入是原子的;
Column Oriented + 三维有序
SortedMap(RowKey,
List(SortedMap(Column,
List(Value,Timestamp))
)
)
rowKey (ASC) + columnLabel(ASC) + Version (DESC) --> value
9.不支持
1) 二级索引;
2) sql/join/跨行跨表等RDBMS特性;
特性
Being a FS, HDFS lacks the random read/write capability. It is good for sequential data access. And this is where HBase comes into picture. It is a NoSQL database that runs on top your Hadoop cluster and provides you random real-time read/write access to your data.Hadoop is most suited for offline batch-processing kinda stuff while HBase is used when you have real-time needs.HBase can't be used for classic transactional applications or even relational analytics.
HBase优化:
1.压缩
可以在列族上设置压缩算法。比较高效的压缩算法有snappy
2.写速度关键因素
Table region分布均衡;
单台region server的region数;
hbase.regionserver.handler.count
hbase.regionserver.global.memstore.upperLimit
hbase.hregion.memstore.block.multiplier
hbase.hstore.blockingStoreFiles
hbase.hregion.max.filesize
3.读速度关键因素
单台Region Server上的Region数;
StoreFile数;
bloomfilter;
in-memory flag;
blockcache设置;
hfile.block.cache.size;
修改compaction配置
hbase.regionserver.thread.splitcompactcheckfrequency 20s compaction检查周期
hbase.hstore.compactionThreshold 3 最小minor compaction的文件个数
hbase.hstore.blockingStoreFiles 7 Block flush操作的Store个数
hbase.hstore.blockingWaitTime 90s Block flush操作的等待时间
hbase.hstore.compaction.max 10 最大minor compaction的文件个数
hbase.hregion.majorcompaction 1 day Major compaction的周期
修改数据压缩格式
disable 'test'
alter 'test', NAME => 'f', COMPRESSION => 'snappy'
enable 'test'
major_compact 'test'
服务启动
启动集群中所有的regionserver
./hbase-daemons.sh start regionserver
启动某个regionserver
./hbase-daemon.sh start regionserver
安全:
1. 开启Kerberos安装认证、ACL控制
监控:
Minos:集群自动化发布和监控系统(小米开源)
目标>
1) 集群易配置、自动化部署和监控
2) 管理Hadoop集群:hbase/hdfs/zookeeper/yarn的统一方案
地址:https://github.com/xiaomi/minos
其它:
get请求会转换成scan
http://www.aboutyun.com/thread-7686-2-1.html
HBase学习笔记-基础(一)的更多相关文章
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command ...
- HBase学习笔记之HBase的安装和配置
HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...
- HBASE学习笔记(四)
这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...
- Java学习笔记——基础篇
Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!! 学习笔记: *包.权限控制 1.包(package) ...
- HBase学习笔记之BulkLoad
HBase学习之BulkLoad bulkload的学习以后再写文章. 参考资料: 1.https://blog.csdn.net/shixiaoguo90/article/details/78038 ...
- HBase学习笔记之HBase原理和Shell使用
HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell
随机推荐
- 掌上PDA无线下单 移动开单设备 手持POS终端打印扫描开单进销软件
您公司是否存在以下问题吗? ◆ 接单员对价钱是否能记住?接单员是否知道库存? ◆ 接单员是否向客户推介优势产品或新产品? ◆ 接单员是否知道客户为什么有的产品再也没有给我们拿货? ◆ 退货时为什么会退 ...
- word统计章节字数
只有我这么无聊了..写论文的时候发现每次想看这个章节的字数统计时,还需要全选然后再看字数统计,太麻烦了.所以想着用宏写个能直接查看选定章节的字数统计. 具体方法如下: 建立宏:视图--宏--录制宏-- ...
- chrome developer tool 调试技巧
这篇文章是根据目前 chrome 稳定版(19.0.1084.52 m)写的, 因为 google 也在不断完善chrome developer tool, 所以 chrome 版本不同可能稍有差别. ...
- 在线代码格式化,在线JSON校验格式化
在线代码格式化 http://tool.oschina.net/codeformat/json 在线JSON校验格式化 http://www.kjson.com/ 两个好用工具
- 使用jQuery操作Cookies的实现代码
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...
- QCheckBox 的按钮响应
Qt中QCheckBox的按键响应如下,其中checkbox为对象名: void YourClass::on_checkbox_toggled(bool state) { // Do somethin ...
- OpenCV show two cameras 同时显示两个摄像头
用OpenCV同时显示两个摄像头的内容的代码如下: #include <iostream> #include <stdio.h> #include <tchar.h> ...
- lightning mdb 源代码分析(2)
本系列前一篇已经分析了lightningmdb的整体架构和主要的数据结构.本文将介绍一下MMAP原理以及lmdb中如何使用它. 1. Memory Map原理 内存映射文件与虚拟内存有些类似,通过内存 ...
- 诅咒JavaScript之----ArcGIS JavaScript 点聚合 ClusterLayer
对一个之前一直做winForm的 菜鸟来说,突然接触这么神奇的语言,基本上每天都会诅咒一下这门神奇的语言. 最近做了一个小网站,底图用的是天地图的服务,用ArcGIS JavaScript提供的一些G ...
- ps插件安装
CutAndSliceMe.zxp 切图插件安装,下载后改为zip后缀,再解压后 复制文件夹到(PS软件安装目录)PhotoshopCC\Plug-ins\Panels文件夹下面