HBase的工作原理和相关操作

学习一个开源软件的基本思路都是(1)安装和配置(2)理解工作原理(3)命令操作(4)代码操作(5)研究源码(6)根据论文或需求进行二次开发。同样,学习HBase也不例外,但我省去了HBase集群(4台)的安装和配置,主要总结HBase的工作原理,Shell命令操作,Java代码操作相关内容。

一. HBase存储结构

1. Client

解析:

对于管理类的操作,Client与HMaster进行RPC,对于数据读写类的操作,Client与HRegionServer进行RPC。

2. ZooKeeper

解析:

ZooKeeper作为协同服务,可以看成是Google的Chubby的开源实现,主要的目的是为了避免HMaster的单点问题。

3. HMaster

解析:

HMaster主要负责Table和Region的管理工作。具体功能如下所示:

  • 管理用户对Table的增、删、改、查操作;
  • 管理HRegionServer的负载均衡,调整Region分布;
  • 在Region Split后,负责新Region的分配;
  • 在HRegionServer停机后,负责失效HRegionServer上的Region迁移。

4. HRegionServer

HRegionServer主要负责响应用户I/O请求,向HDFS中读写数据,是HBase中最核心的模块。总体的关系是HRegionServer包含多个HRegion,HRegion包含多个HStore,每个HStore对应Table中的一个Column Family的存储。HStore包含MemStore和StoreFile两个部分。MemStore是Sorted Memory Buffer,用户写入的数据首先放入MemStore,当MemStore满了以后会执行Flush操作变成一个StoreFile(底层实现是HFile),当StoreFile文件数量增长到一定阈值时,会触发Compact合并操作,将多个StoreFile合并到一个StoreFile,合并过程中会进行版本合并和数据删除。

时间: 2024-10-20 16:52:16

HBase的工作原理和相关操作的相关文章

Hive的工作原理和相关操作

Hive是一个基于Hadoop的数据仓库,提供比较完整的SQL功能(本质还是将SQL转换为MapReduce),可供数据分析师利用Hadoop对海量数据进行分析.但是,Hive也有自身的缺点,比如比较慢等. 一. Hive的工作原理和结构 二. Hive的基本操作 1. 表操作 2. 视图操作 3. 索引操作 4. 分区操作 5. 桶操作 三. 使用JDBC开发Hive程序

【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配置安装,前

浏览器工作原理及相关内核、技术介绍

好吧,我最喜欢的就是原理方面的介绍了..好处有两个:1.了解原因更方便与工(zhuang)作(bi):2.原理都是相同的,大道归一啊(吐) 正文开始: 一.浏览器工作原理(简化版) 1.浏览器用来干什么用 浏览器的主要功能是将用户请求访问的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF.image及其他格式.用户用URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置. HTML和CSS

LVS的工作原理和相关算法

首先我们要了解LVS的工作机制: LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下来通过用户请求的的地址和端口,来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现.而且这个转发的过程对用户而言是透明的(简单的讲,就是用户访问的是DR的IP,而DR转发给RSS,而用户不知道这个过程) LVS的工作模式 1.

[iOS]浅谈NSRunloop工作原理和相关应用

一. 认识NSRunloop  1.1 NSRunloop与程序运行 那么具体什么是NSRunLoop呢?其实NSRunLoop的本质是一个消息机制的处理模式.让我们首先来看一下程序的入口——main.m文件,一个ios程序启动后,只有短短的十行代码居然能保持整个应用程序一直运行而没有退出,是不是有点意思?程序之所以没有直接退出是因为UIApplicationMain这个函数内部默认启动了一个跟主线程相关的NSRunloop对象,而UIApplicationMain这个函数一直执行没有返回就保存

RabbitMQ原理与相关操作(二)

接着 上篇随笔 增加几个概念: RabbitMQ是一个在AMQP(高级消息队列协议)标准基础上完整的,可服用的企业消息系统. AMQP模型的功能组件图(上图摘自 Sophia_tj 的 第2章 AMQP模型) AMQP的四个总要概念: 1.虚拟主机(virtual host)或(vhost) 2.交换机(exchange) 3.队列(queue) 4.绑定器(bind) 什么是虚拟主机?一组交换机.队列和绑定器 被称为 虚拟主机(vhost). 为什么要用虚拟主机?RabbitMQ server

[原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

RabbitMQ原理与相关操作(一)

小编是菜鸟一枚,最近想试试MQ相关的技术,所以自己看了下RabbitMQ官网,试着写下自己的理解与操作的过程. 刚开始的第一篇,原理只介绍 生产者.消费者.队列,至于其他的内容,会在后续中陆续补齐. 引入MQ话题 什么时候会用到MQ 可能很多人有疑惑:MQ到底是什么?哪些场景下要使用MQ?前段时间安装了RabbitMQ,现在就记录下自己的学习心得吧.首先看段程序: class Program { static void Main(string[] args) { new Thread(Write

了解Hbase的工作原理

前言 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力.HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的