hadoop学习笔记----- Hbase理论

HBase

Hbase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。

就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bittable的能力。

HBase是Apache的Hadoop项目的子项目。

HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,另一个不同的是HBase基于列的而不是基于行的模式。

BIG Table表的想法:

以存放关系的学生表为例:

用bigtable的想法为,三个列的大表:学号(key)、属性(姓名、年龄、、、)、值(value)

世界上所有的二维表,都可以用三个列的大表来表示:

行键(key)对象的标识值、

属性、

Value

Bigtable表查询:  对key-value的查询很快

HBase逻辑模型:

以表的形式存放数据;

表由行与列组成,每个列属于某个列族,由行和列确定的存储单元称为元素;

每个元素保存了同一份数据的多个版本,由时间戳来标识区分;

HABASE有多表

列族需要预先定义,列族里面的列不需要预先定义列族里面的列由限定符限制;

行键可以重复;

HBASE解决HDFS文件系统不能修改问题:

打删除标记

在内存中建立机制,数据存储内存,数据在内存中修改(追加、)内存中数据重整机制、

内存中收集一定时间的数据后,向硬盘中一写就一个文件一个块

每隔一断时间进行一数据重整合并,合并小的文件,解决删除问题

面向时间查询:适合社交网站等应用场景

行键:

行键是数据行在表里的唯一标识,并作为检索记录的主键;

访问表里的行只有三种方式:

通过单个行键访问

给定行键的范围访问

全表扫描

行键可以是最大长度不超过64kb的任意字符串,并按照字典序存储;

对于经常要一起读取的行,要对行键值精心设计,以便它们能放在一起存储;

列族与列:

列表示为<列族>:<限定符>

列族是预先定义好的,列族中的列是随意添加的。

Hbase在磁盘上按照列族存储数据,这种列式数据库的设计非常适合于数据分析的情形;

列族里的元素最好具有相同的读写方式(例如等长的字符串),以提高性能;

面向列存储意义:在行键相同的情况下,列族相同的会放在一起,

时间戳:

对应每次数据操作的时间,可由系统自动生成,也可以由用户显示的赋值;

HBase支持两种数据版本回收方式:

1、每个数据单元,只存储指定个数的最新版本

2、保存指定时间长度的版本

常见的客户端时间查询“某个时刻起的最新数据”或“给我全部版本的数据”

元素由行键,列族限定符,时间戳唯一决定;

元素以字节码形式存放,没有类型之分;

Hbase物理模型:

时间: 2024-08-09 21:58:33

hadoop学习笔记----- Hbase理论的相关文章

Hadoop学习笔记_2_Hadoop源起与体系概述[续]

Hadoop源起与体系概述 Hadoop的源起--Lucene Lucene是Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎 早期发布在个人网站和SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎 对于大数据的

Hadoop学习笔记(2) ——解读Hello World

Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello Word. OK,我们先来看一下当时在命令行里输入的内容: $mkdir input $cd input $echo "hello world">test1.txt $echo "hello hadoop">test2.txt $cd .. $bin/ha

Hadoop学习笔记目录

Hadoop 运行环境准备 运行环境部署结构介绍 Linux CentOS6.5安装(Hadoop环境配置) Linux 常用远程管理工具介绍 SSH免密码登录配置 Hadoop安装及配置 Hadoop验证-WordCount执行 Hadoop开发工具准备 Hadoop Eclipse Plugin 配置安装及验证 Hadoop Studio 使用 Hadoop简介及应用场景分析 HDSF MapReduce Hive HBase Mahout Zookeeper Avro Sqoop 监控 整

Hadoop学习笔记_1_Hadoop源起与体系概述

Hadoop源起与体系概述 引[一个典型的实验环境]: 1.服务器: ESXi,可以在上面部署10多台虚拟机,能同时启动4台; ESXi可以直接安装在裸机上面,而不用首先安装一个WinServer或Linux(StandAlone安装). ESXi在本质上就是一个高度定制化的Linux,其内核与周边环境都被VMWare公司修改了. 2.PC:要求Linux环境或Windows+Cygwin,Linux可以是StandAlone或者使用虚拟机 3.SSH:Windows下可以使用SecureCRT

Hadoop学习笔记(6) ——重新认识Hadoop

Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功能DFS和MapReduce, DFS可以理解为一个分布式文件系统,存储而已,所以这里暂时就不深入研究了,等后面读了其源码后,再来深入分析. 所以这里主要来研究一下MapReduce. 这样,我们先来看一下MapReduce的思想来源: alert("I'd like some Spaghetti!

Hadoop学习笔记(7) ——高级编程

Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成<key, value>. 2.映射(map):根据输入的<key, value>进生处理, 3.合并(combiner):合并中间相两同的key值. 4.分区(Partition):将<key, value>分成N分,分别送到下一环节. 5.化简(Reduce):将中间结

Hadoop学习笔记(8) ——实战 做个倒排索引

Hadoop学习笔记(8) ——实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如下: 这张索引表中, 每个单词都对应着一系列的出现该单词的文档,权表示该单词在该文档中出现的次数.现在我们假定输入的是以下的文件清单: T1 : hello world hello china T2 : hello hadoop T3 : bye world bye hadoop bye bye 输

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

Hadoop学习笔记(5) ——编写HelloWorld(2)

Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我们写了一个MapReduce的HelloWorld程序,那这一节,我们就也学一学DFS程序的编写. DFS是什么,之前已经了解过,它是一个分布式文件存储系统.不管是远程或本地的文件系统,其实从接口上讲,应该是一至的,不然很难处理.同时在第2节的最后,我们列出了很多一些DFS的操作命令,仔细看一下,这