HBase分布式存储系统学习
简介:
- hadoop的数据库,根据谷歌的bigtable论文实现的
- 分布式的可扩展的大数据存储技术
- 随机访问 实时读写海量数据
- 存储数‘十亿行 百万例’的数据
- 高性能、高可靠、面向列、可伸缩的分布式存储系统
- HBase的底层也是基于hdfs的
- 利用zookeeper作为一个协调工作的
HBase到底是什么东西?
- 分布式开源数据库,基于hadoop文件系统
- 模仿提供了Goole文件系统的BigTable数据库的所有功能
- 处理非常庞大的表
- 数10亿,百万列
- 利用mr计算数据,利用zookeeper协调资源
- HBas是非关系型数据库(NoSQL)
行存储和列存储
- 行存储:mysql oracle底层基于行存储数据的
- 查询数据需要全表扫描,效率较低
- 对数据压缩支持不太好
- 列存储:hbase底层基于列存储数据的
- 查询数据不需做全表扫描
- 支持较好的数据压缩
Hbase的特点
- 可以分布式存储海量的数据
- 具有容错能力强,数据高可靠的特点
- HBase是一个列式NoSQL数据库
- 数据存储的结构是按照列进行存储
Hbase的体系结构(模型)
1.逻辑结构(模型)
- 表
- 划分数据集合的概念,和传统的db中的表的概念是一样
- 行键
- 对应关系数据库中的主键,作用就是**唯一标示一行记录**
- 获取hbase中的一个记录(数据),要通过**行键**来获取
- 行键是**字节数组, 任何字符串**都可以作为行键
- 表中的行根据行键(row key)进行**排序** ,数据按照Row key的**字节序**(byte order)排序存储
- 列族
- 简单的认为是一系列**“列”的集合**
- 列限定符
- 或者叫**列**
- 每个列簇都可以有多个列
- 时间搓
- 在单元格中可以存放**多个版本**的数据
- 单元格
- 主要用来**存储数据**
- 单元格的定位要通过**三级定位**才能定位到具体的单元格
三级定位 行键+列族+时间戳
2.物理结构(模型)
- Zookeeper
- 分布式协调
- Master
- HMaster没有单点问题,HBase中可以起启动多个HMaster
- 负责Table和Region的管理工作
- 管理用户对Table的增、删、改、查操作
- RegionServer的负载均衡
- 调整Region分布,在Region Split后,负责新Region的分配
- 在HRegionServer停机后,负责失效HRegionServer上的Regions迁移
- RegionServer
- RegionServer主要负责响应用户的I/O请求
- 向HDFS文件系统中读写数据,是HBase中最核心的模块
- HLohg部分和多个Regoion部分
- Hlog
- HLog保存着用户操作hbase的日志
- 实现了Write Ahead Log (WAL) 预写了日志
- HLog会删除已存储到StoreFile中的数据
- Region
- 保存了行键的固定区域范围的数据
- 一个Hregion对应一个区域
- 一个Hregion对应一个Hstore
- Hstore
- 对应一个列族
- 一个HStore包含一个MemStore(内存储)和多个StoreFile
- MemStore(内存储)
- 内存储中的一个区域,一个HStore对应一个内存储
- 当内存储中的内容放不下了,就会刷出到硬盘以一个个的StoreFile存储
- StoreFile
- 其实就是数据的存储位置
- 对HFile的封装
- Hfile
- Hadoop File
- Hdfs的一个文件对象
Hbase读写数据的流程
- Zookeeper(寻找元数据信息)
- get /hbase/meta-region-server
- 找到提供元数据信息访问的regionserver
- 找“hbase:meta”表,在去查找请求那个regionser来读取数据
Hbase的Shell操作
list_namespace
#列出所有的命名空间(相当于mysql中的show databases)list_namespace_tables 'ns_name'
#列出指定命名空间下的所有表create_namespace 'ns1'
#创建命名空间create 'ns1:t1','f1'
#创建表disable 'ns1:t1'
#禁用表,因为删除表之前首先需要禁用了drop 'ns1:t1'
#删除表put 'ns1:t1','row001','f1:name','xiaohua'
#添加数据get 'ns1:t1','row001',{COLUMN=>'f1:name'}
#查询数据delete 'ns1:t1','row001','f1:name'
#删除数据
HBase分布式存储系统学习相关推荐
- 分布式文件与分布式存储系统学习总结(持续更新)
存储系统知识 Write Ahead Log 问题引入 存储系统在运行过程中,每时每刻都在发生数据更新.如对文件数据的CRUD. 对于中心控制节点来说,这些都会涉及到metadata的更新操作. 为了 ...
- 分布式存储系统——HBase
一.什么是Hbase? HBase-Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群.当 ...
- HBase:海量数据分布式存储系统详细介绍
1 HBase 浅析 1.1 HBase 是啥 HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库.它的理论原型是 Google 的 BigTable 论文.你可以认为 HBa ...
- 万万没想到,分布式存储系统的一致性是......
阿里妹导读:分布式存储系统是一个非常古老的话题,也是分布式系统里最难.最复杂.涉及面最广的问题之一.本文深入浅出,为大家详细解释相关的重要概念.对于分布式系统新人来说,这是一份不可多得的学习资料. 分 ...
- Kubernetes-native 弹性分布式深度学习系统
9月11日,蚂蚁金服在 Google Developer Day Shanghai 2019 上宣布开源了基于 TensorFlow 2.0 eager execution 的分布式深度学习系统 El ...
- HBase全网最佳学习资料汇总
HBase全网最佳学习资料汇总 摘要: HBase这几年在国内使用的越来越广泛,在一定规模的企业中几乎是必备存储引擎,互联网企业阿里巴巴.百度.腾讯.京东.小米都有数千台的HBase集群,中国电信的话 ...
- ElasticDL: Kubernetes-native 弹性分布式深度学习系统
9月11日,蚂蚁金服在 Google Developer Day Shanghai 2019 上宣布开源了基于 TensorFlow 2.0 eager execution 的分布式深度学习系统 El ...
- 浅谈分布式存储系统的数据分布算法
前言 分布式存储系统 面临着的首要问题,就是如何将 大量的数据 分布在 不同的存储节点 上.无论上层接口是 KV 存储.对象存储.块存储.亦或是 列存储,在这个问题上大体是一致的.本文将介绍如何 分布 ...
- 每日积累【Day 3】Hbase架构深入学习
Hbase架构深入学习 Hbase Apache HBase建立在HDFS之上的分布式.基于列存储的非关系型数据库:具有可靠.稳定.自动容错.多版本等特性:HBase实际上是Google BigT ...
最新文章
- UVA1025 城市里的间谍 A Spy in the Metro(2003 ICPC world final)(DAG上DP)
- TTL_CMOS_RS232区别
- IC Order search 的debugging关键点
- 姓名性别电话邮箱html表单,HTML form标签语法、属性、规范和示例详细说明-立地货...
- Java高级面试题!java编程思想怎么学
- restapi(0)- 平台数据维护,写在前面
- C++---基于ffmpeg实现视频播放器(一)
- 动态网页程序设计报告(留言板)
- C++ 捕获程序异常奔溃minidump
- 2+22+222+2222+。。。。
- 25岁女生,转行学前端合适吗?
- 第二人生的源码分析(101)脚本的初步知识
- 【百度echarts】实现圆环进度条-代码示例
- 计算机网络实训报告总结,学习计算机网络的实训总结
- win系统cpu温度获取
- 简单小游戏——见缝插针
- ORB SLAM2源码解读(三):Frame类
- html 滚动 切换背景,在滚动页面时渐变切换背景色
- IDL 绘制 PLANK黑体辐射曲线
- 中国人民公安大学(PPSUC) 网络对抗技术第五次实验
热门文章
- 5个强盗分100颗宝石
- java字体库_java使用第三方字体库的方法,使用第三方ttf/ttc等字体库的方法
- vue3.2使用vue-wechat-title及路由导航守卫实现浏览器动态标题、替换浏览器的vue小图标
- 安利钻石商务通 2006 v6.2 免费下载
- 登陆进管理后台的首页
- winbox添加dhcp和nat
- Android 开发之 ContentProvider 内容提供者
- 实用工具推荐 ---ZoomIt
- php phpqrcode 生成二维码
- PHP urldecode()与urlencode()函数