为什么HBase主要应用于在线应用系统?(还没搞懂)

www.github.com/HBaseinaction

google 三大论文  Google File System MapReduce BigTable

HBase shell 是一个封装了Java api 的JRuby软件

一个表可以有多个列簇,至少一个列簇

HBase==无模式数据库

HBase两种方式读取数据:get和scan

HBase每个数据单元可以有多个时间版本,版本数有默认值,也可以自定义,取出时默认是最新版本

scan命令在不指定情况下返回所有行

什么事HBase的逻辑数据模型、物理数据模型和模式设计

HBase运行和操作需要配置信息,有两种方式来定义或者获得配置信息,一种是从配置文件中获取比如hbase-site.xml,另一种是手动输入。shell一般用的是配置文件,Java api一般用的是手动,如果不指定,则使用默认的,比如zookeeper.quorum是localhost,如果你在客户端非集群上,显然不行,则要手动配置

由于操作hbase需要获得链接,消耗网络开销,所以有了链接池,链接从链接池里分配,工作关闭后链接返回到链接池

hbase中所有数据都是按字节数组的形式存储的

hbase使用坐标来定位数据。行健、列簇、列、时间版本。rowkey column family column qualifier  version

hbase中数据作为值value存在单元里

hbase中修改数据使用的方式跟存储新数据使用的方式一样

执行写入的时会写到两个地方:预写式日志(WAL)和memstore。只有这两个地方的变换信息确认后才认为写操作完成

memstore,内存里的写入缓冲区。当memstore填满后刷新到硬盘,生成一个HFile。

HFile对应列族,一个列族可以有多个HFile,但一个HFile不能存多个列族的数据。在集群每个节点上,每个列族有一个memstore

如果HBase宕机,没有从memstore刷写数据到HFile,可以通过回访WAL来恢复。不用手工操作,HBase内部机制中有恢复流程部分来处理

每台服务器有一个WAL,这台服务器上所有表共享这个WAL

blockcache读优化。最近最少使用算法

删除是给要删除的内容打上墓碑标记,用来标志删除的内容不能被get和scan读取。
因为HFile不能改变,所以直到一次大合并,这些墓碑记录才会被处理

合并分为大合并和小合并。小合并把多个小的HFile合并成一个大的HFile。大合并将处理给定region的一个列族的所有HFile。大合并相当耗费资源。大合并是清理删除记录的唯一机会

如果一个单元的版本超出了最大数量,多出的记录会在下一次大合并的时候扔掉

关系型数据库是二维坐标系统,HBase是四维坐标系统

如果使用get检索数据的时候如果不指定时间版本,返回数据中会是多个时间版本的映射集合,按照坐标的降序排列

什么是半结构化数据

HBase没有事务

HFile本身是二进制文件

在HBase中query的替代品是scan加filter

Filter在服务器端过滤,不是在客户端。过滤器可以组合

HBase的在线操作(online)和离线操作(offline)

一张总的大HBase表切分成小一点的数据单位分配到堕胎服务器上,这些小一点的数据单位叫做region,托管region的服务器叫做regionserver。一个regionserver托管多个region

为什么工作负载主要是随机读写就不需要MR框架?

单个region大小可以自定义,如果超过则切分成两个

ROOT和META表用来查找region位置在哪儿。META表如果大到一定程度可以切分,ROOT表不会切分

zookeeper提供HBase的入口点,即ROOT表

在HBase中使用mapreduce计算和多线程计算有同样的效率,但是吞吐量却高很多的原因:数据的并行放置,让任务本地化了

(counters是hadoop作业里收集监控指标的一个简单方法)

宽表和窄表

get()API内部实现是一次扫描单行的scan()运算

get()的使用必须需要行健,scan没有限制,如果有起始和终止则可以限定范围

对于HBase集群,最消耗计算资源的操作发生在使用服务器过滤器扫描结果的时候

协处理器从0.92.0版本引入

OpenTSDB,基于HBase,一种数据可视化工具

scan ‘-ROOT-’

scan ‘.META.’


这些都是在HBase实战中看的,这本书不错

http://pan.baidu.com/s/1i3uwuZN



HBase-再看HBase的更多相关文章

  1. HBase-初看HBase

    0.95版本hbase 单机模式下所有的服务都运行在一个JVM上,包括HBase和zookeeper.使用的是本地文件系统 日志默认放在目录下logs文件夹中 基本命令: create 'table' ...

  2. MapReduce-从HBase读取数据处理后再写入HBase

    MapReduce-从HBase读取处理后再写入HBase 代码如下 package com.hbase.mapreduce; import java.io.IOException; import o ...

  3. HBase学习笔记-HBase性能研究(1)

    使用Java API与HBase集群交互时,需要构建HTable对象,使用该对象提供的方法来进行插入/删除/查询等操作.要创建HTable对象,首先要创建一个带有HBase集群信息的配置对象Confi ...

  4. HBase案例:HBase 在人工智能场景的使用

    近几年来,人工智能逐渐火热起来,特别是和大数据一起结合使用.人工智能的主要场景又包括图像能力.语音能力.自然语言处理能力和用户画像能力等等.这些场景我们都需要处理海量的数据,处理完的数据一般都需要存储 ...

  5. 【转帖】HBase之五:hbase的region分区

    HBase之五:hbase的region分区 https://www.cnblogs.com/duanxz/p/3154487.html 一.Region 概念 Region是表获取和分布的基本元素, ...

  6. spark shc hbase 超时问题 hbase.client.scanner.timeout.period 配置

    异常信息 20/02/27 19:36:21 INFO TaskSetManager: Starting task 17.1 in stage 3.0 (TID 56, 725.slave.adh, ...

  7. mysql索引设计的注意事项(大量示例,收藏再看)

    mysql索引设计的注意事项(大量示例,收藏再看) 目录 一.索引的重要性 二.执行计划上的重要关注点 (1).全表扫描,检索行数 (2).key,using index(覆盖索引) (3).通过ke ...

  8. 4 hbase表结构 + hbase集群架构及表存储机制

      本博文的主要内容有    .hbase读取数据过程 .HBase表结构 .附带PPT http://hbase.apache.org/ 读写的时候,就需要用hbase了,换句话说,就是读写的时候. ...

  9. HBase 2、HBase安装与初试牛刀

    官方帮助文档:http://hbase.apache.org/book.html  PDF:http://hbase.apache.org/apache_hbase_reference_guide.p ...

  10. Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...

随机推荐

  1. ORA-12162: TNS:net service name is incorrectly specified

    今天在进行修改oracle_sid环境变量的时候,将相关的环境变量值去掉,从而不能进入sqlplus,报错如下: [oracle@kel ~]$ sqlplus / as sysdba SQL*Plu ...

  2. kobo boot scripts

    #!/bin/sh pkill nickel eink_enable_autoupdate rm -rf /debian/tmp/* /debian/tmp/.* 2>/dev/null mou ...

  3. 在window server 2008 64位系统上 发布网站的过程中遇到的问题

    发布网站的过程如下: 1.安装数据库系统2.建立数据库,执行sql3.安装iis4.在本地机子上发布网站5.把发布好的东西拷贝到IIS上 1.安装数据库系统: 出现错误:必须使用角色管理工具 安装或配 ...

  4. MapReduce TopK统计加排序

    Hadoop技术内幕中指出Top K算法有两步,一是统计词频,二是找出词频最高的前K个词.在网上找了很多MapReduce的Top K案例,这些案例都只有排序功能,所以自己写了个案例. 这个案例分两个 ...

  5. URL的格式scheme

    url scheme: scheme + (://) + userinfo + (@) + hostname + (:) + port + path + (?) + query + (#) + fra ...

  6. 【转】Maven实战(四)---多模块项目---JBOSS部署问题

    原文出自于:http://blog.csdn.net/liutengteng130/article/details/41622681      感谢! 这几天在搭框架中仅仅是JBOSS就遇到了很多问题 ...

  7. CSS选择器的特殊性

    在我们为元素添加样式的时候,或多或少会出现一个元素会有几个不同规则的样式.有#id的,有.class,直接标签元素的,还有各种组合起来的选择器.那CSS到底如何解决这些冲突呢,我们这次专门来探讨一下. ...

  8. JSF 2 checkboxes example

    In JSF, <h:selectBooleanCheckbox /> tag is used to render a single HTML input element of " ...

  9. [iOS 多线程 & 网络 - 2.11] - ASI框架上传文件

    A.ASI的上传功能基本使用 1.实现步骤 (1)创建请求 使用ASIFormDataRequest (2)设置上传文件路径 (3)发送请求     2.上传相册相片 UIImagePickerCon ...

  10. Objc基础学习记录1

    1.'-'系在实例方法前头 2.'+'类方法class method 相反; 3.void表示没有返回值; 4.&x 和c语言一样,代表的是x的在内存上的地址; 5.*y指向内存存储空间内的数 ...