[ 译]Apache HBase Write Path

翻译自cloudera,原文直通车:Apache HBase Write Path

Apache HBase也就是Hadoop Database是基于HDFS之上的.HBase可以随机获取和更新存储在HDFS上的记录。但是HDFS

上的文件只能追加而且一旦创建便无法修改。说到这里你或许会问:那HBase是怎么做到在HDFS上低延迟的读和写呢?在这篇

文章里,我们就会通过描述HBase的写的流程来解释数据在HBase中是如何更新的。

写流程描述就是HBase如何完成put或者delete操作。流程开始于client端,然后再到region server,最终结束于当数据写入

到HFile为止。在这过程中还包括了HBase如何保证region server down掉的时候的数据的完整性(数据不丢失)。所以,理解这个

流程对于深刻理解HBase 如何防止数据丢失的机制是很有帮助的。

HBase中的表的管理涉及到如下三类server:

1.一个处理active状态的master server
2.一个或者多个backup master server
3.很多region server

Region server管理HBase中的table。因为HBase中的table会变得很大,所以他们会分裂成很多分区,这些分区我们称为region。

每一次Region server会负责处理一个或者多个region的请求。注意:由于region server是唯一用来处理hbase的table数据的,因此

hbase master的crash并不会导致数据丢失

HBase中的数据的组织方式类似于sorted map的组织方式,把排序后的row key分成不同的region。HBase的客户端通过调用put

或者delete来更新hbase中的表。当客户端发出一个请求,默认情况下该请求会立即被路由到region server。我们也可以通过编程的方式

指定让client先缓存这些命令,然后以批量的方式提交这个命令。可以通过制定autoflush为off状态来实现批量提交。如果autoflush被

设置为了off,所有的更改都会被client端缓存直到用户调用flush-commits被调用,或者当buffer满了的时候就会把全部命令批量提交。buffer

的设置是使用“hbase.client.write.buffer”参数来指定的。

由于HBase的row-key是预排序的,所以可以很轻易的确定哪个region server管理哪些范围内的row-key的记录。一个更新请求是针对某一

特定的列。每个row-key都是归属于某个regoin的,regoin是在regoin server的管理中的。

未完待续。。。

[ 译]Apache HBase Write Path,布布扣,bubuko.com

时间: 2024-10-13 12:34:23

[ 译]Apache HBase Write Path的相关文章

Apache HBase 集群安装文档

简介: Apache HBase 是一个分布式的.面向列的开源 NoSQL 数据库.具有高性能.高可靠性.可伸缩.面向列.分布式存储的特性. HBase 的数据文件最终落地在 HDFS 之上,所以在 Hadoop 集群中,DataNode 节点都需安装 HBase Worker Node. 另外,HBase 受 ZooKeeper 管理,还需安装 ZooKeeper 单机或集群.建议 HBase Master 节点不要与集群中其余 Master 节点安装在同一台物理服务器. HBase Mast

【Hadoop学习】Apache HBase项目简介

原创声明:转载请注明作者和原始链接 http://www.cnblogs.com/zhangningbo/p/4068957.html       英文原版:http://hbase.apache.org/ Apache HBaseTM ,即Hadoop 数据库,是一个分布式的.可缩放的大数据存储方案. 何时使用Apache HBase? 当需要随机.实时读写大数据时,就可以使用Apache HBase了.该项目旨在组织甚大规模的位于商业硬件集群之上的表——数十亿行 × 数百万列.Apache

Tephra Apache HBase

Tephra 在 Apache HBase 的基础上提供了全局一致性的事务支持(腾云科技ty300.com).HBase (入门教程qkxue.net)提供了强一致性的基于行和区域的 ACID 操作支持,但是牺牲了在跨区域操作的支持.这就要求应用开发者花很大力气来确保区域边界上操作的一致性.而 Tephra 提供了全局事务支持,可以夸区域.跨表以及多个 RPC 上简化了应用的开发. 示例代码: /** * A Transactional SecondaryIndexTable. */ publi

How-to: Enable User Authentication and Authorization in Apache HBase

With the default Apache HBase configuration, everyone is allowed to read from and write to all tables available in the system. For many enterprise setups, this kind of policy is unacceptable. Administrators can set up firewalls that decide which mach

The Apache HBase? Reference Guide

以下内容由http://hbase.apache.org/book.html#getting_started节选并改编而来. 运行环境:hadoop-1.0.4,hbase-0.94.22,jdk1.7.0_65 Chapter 1. Getting Started create a table in HBase using the hbase shell CLI, insert rows into the table, perform put and scan operations again

idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.

查看idea log 2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - IntelliJ IDEA 2018.2.5 Build #IU-182.4892.20 2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - JDK: 1.8.0_152-release 2019-11-08 22:30:29,402 [ 47531

apache hbase 发布1.0.0版本

今天apache发布了最新的hbase 1.0.0,下图是版本变迁历史: 详情参考: https://blogs.apache.org/hbase/entry/start_of_a_new_era

org.apache.hadoop.hbase.MasterNotRunningException解决策略

执行HBase时常会遇到个错误,我就有这种经历. ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 检查日志:org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41) 假设

org.apache.hadoop.hbase.master.HMasterCommandLine: Master exiting java.lang.RuntimeException: HMaster Aborted

前一篇的问题解决了,是 hbase 下面lib 包的jar问题,之前写MR的时候加错了包,替换掉了原来的包后出现另一问题:@ubuntu:/home/hadoop/hbase-0.94.6-cdh4.5.0/bin$ ./start-hbase.sh starting master, logging to /home/hadoop/hbase-0.94.6-cdh4.5.0/logs/hbase-master-ubuntu.outlocalhost: starting regionserver,