接触过 HBase 的同学应该对 HBase 写数据的过程比较熟悉(不熟悉也没关系).HBase 写数据(比如 put.delete)的时候,都是写 WAL(假设 WAL 没有被关闭) ,然后将数据写到一个称为 MemStore 的内存结构里面的,如下图: 如果想及时了解Spark.Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop 但是,MemStore 毕竟是内存里面的数据结构,写到这里面的数据最终还是需要持久化到磁盘的,生成 HFile.如下图: 如果…
一.前言 关于数据落地方面,HBase官网也有相关介绍.本文主要介绍一下实际工作中涉及的数据存储方面的一些经验和技巧,主要涉及表rowkey设计.数据落地方案 二.表设计 相对于MySQL等关系型数据库而言,HBase也有相应的类似库和表的概念,其中MySQL的库对应于HBase的NameSpace (0.95以上版本才支持), 表对应于HBase的表.对于NameSpace来说,HBase默认有两类:default和hbase, default中存放的实际数据的表,hbase中存放的是系统内建…
如果将上篇内容理解为一个冗长的"铺垫",那么,从本文开始,剧情才开始正式展开.本文基于提供的样例数据,介绍了写数据的接口,RowKey定义,数据在客户端的组装,数据路由,打包分发,以及RegionServer侧将数据写入到Region中的全部流程. NoSQL漫谈 本文整体思路 前文内容回顾 示例数据 HBase可选接口介绍 表服务接口介绍 介绍几种写数据的模式 如何构建Put对象(包含RowKey定义以及列定义) 数据路由 Client侧的分组打包 Client发RPC请求到Regi…
首先续上篇测试:   经过上一篇文章中对代码及参数的修改,Hbase的写入性能在不开Hlog的情况下从3~4万提高到了11万左右. 本篇主要介绍参数调整的方法,在HDFS上加上压缩卡,最后能达到的写入性能为17W行每秒(全部测试都不开Hlog). 上篇测试内容: 详情 http://blog.csdn.net/kalaamong/article/details/7275242. 测试数据 http://blog.csdn.net/kalaamong/article/details/7290192…
常见的HBase新手问题: 什么样的数据适合用HBase来存储? 既然HBase也是一个数据库,能否用它将现有系统中昂贵的Oracle替换掉? 存放于HBase中的数据记录,为何不直接存放于HDFS之上? 能否直接使用HBase来存储文件数据? Region(HBase中的数据分片)迁移后,数据是否也会被迁移? 为何基于Spark/Hive分析HBase数据时性能较差? 开篇 用惯了Oracle/MySQL的同学们,心目中的数据表,应该是长成这样的: 这种表结构规整,每一行都有固定的列构成,因此…
[摘要] 这是HBase入门系列的第1篇文章,主要介绍HBase当前的项目活跃度以及搜索引擎热度信息,以及一些概况信息,内容基于HBase 2.0 beta2版本.本系列文章既适用于HBase新手,也适用于已有一定经验的HBase开发人员. 华为云上的NoSQL数据库服务CloudTable,基于Apache HBase,提供全托管式集群服务,集成了时序数据库OpenTSDB与时空数据库GeoMesa,在TB/PB级别的海量数据背景下,可提供ms级查询以及千万级TPS,点我了解详情. 这是HBa…
[摘要] 本文主要介绍HBase与HDFS的关系,一些关键进程角色,以及在部署上的建议 HBase与HDFS 我们都知道HBase的数据是存储于HDFS里面的,相信大家也都有这么的认知: HBase是一个分布式数据库,HDFS是一个分布式文件系统 理解了这一点,我们先来粗略回答本文已开始提出的其中两个问题: HBase中的数据为何不直接存放于HDFS之上? HBase中存储的海量数据记录,通常在几百Bytes到KB级别,如果将这些数据直接存储于HDFS之上,会导致大量的小文件产生,为HDFS的元…
一.Hbase是什么? Hbase属于NoSql的一种. NoSql数据库分为如下几类: Key-Value类型数据库 这类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据.key/value模型对IT系统来说简单.易部署.但是对DBA只对部分值进行查询和更新的时候,key/value就显得效率低下了.举例如:Tokyo Cabinet,Redis,Voldemort,Oracle BDB. 面向列的数据库 这部分数据库用来应对分布式存储的海量数据.键仍然存在,但是它们…
学习方法 可以参考官方文档的简单示例来 点击查看 可以直接在控制台使用help命令查看 例如直接使用help命令: 从上图可以看到,表结构的操作,表数据的操作都展示了.接下来我们可以针对具体的命令使用help查看,比如:alter alter help 从图中可以看到,你可以更改列族,可以使用区域复制,可以更改多个列,当然现在只是大概看下,接下来会带领大家实际操练,大家一定要勤于动手呦~ 一.基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 h…
一.Phoenix简介 Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据.在 Phoenix 之前,如果你要访问 HBase,只能调用它的 Java API,但相比于使用一行 SQL 就能实现数据查询,HBase 的 API 还是过于复杂.Phoenix 的理念是 we put sql SQL back in NOSQL,即你可以使用标准的 SQL 就能完成对 HBase 上数据的操作.同时这也意味着你可以通过集成 Sprin…