HBase的基础知识

1.HBase(NoSQL:不是关系型数据库)的逻辑数据模型

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。

1.1 表(table),是存储管理数据的。
1.2 行键(row key),类似于MySQL中的主键。
  行键是HBase表天然自带的。
1.3 列族(column family),列的集合。
  HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。
  HBase表中的数据,每个列族单独一个文件。
1.4 时间戳(timestamp),列(也称作标签、修饰符)的一个属性。
  行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。
  如果不指定时间戳或者版本,默认取最新的数据。
1.5 存储的数据都是字节数组。
1.6 表中的数据是按照行键的顺序物理存储的。

2.HBase的物理数据模型

2.1 HBase是适合海量数据(如20PB,1024T=1P)的秒级简单查询的数据库。
2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。
  许多个region存储在region server(单独的物理机器)中的。
  这样,对表的操作转化为对多台region server的并行查询

3.HBase的体系结构


3.1 HBase是主从式结构,HMaster、HRegionServer

 

Client 包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息

Zookeeper 保证任何时候,集群中只有一个running master

       存贮所有Region 的寻址入口

       实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给Master

         存储Hbase 的schema,包括有哪些table,每个table 有哪些column family

Master 可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行

       为Region server 分配region

       负责region server 的负载均衡

                发现失效的region server 并重新分配其上的region

Region Server 维护Master 分配给它的region,处理对这些region 的IO请求

        负责切分在运行过程中变得过大的region

 

 

HBase中有两张特殊的Table,-ROOT-和.META.

1、.META.:记录了用户表的Region信息,.META.可以有多个regoin

2、-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region Zookeeper中记录了-ROOT-表的location

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问

 

转载于:https://www.cnblogs.com/ahu-lichang/p/6675640.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Exception in thread main java.lang.UnsupportedClassVersionError的另类解决办法

最近在Linux虚拟机上跑在windows平台上的eclipes打出来的jar包时报出Exception in thread “main” java.lang.UnsupportedClassVersionError的错误: 经过上网查询了解到是因为自己Windows使用的是jdk1.8版本,而Linux使用的是jdk1.7版本,所…

Linux命令【第一篇】

1、创建一个目录/data 记忆方法:英文make directorys缩写后就是mkdir。 命令: mkdir /data 或 cd /;mkdir data #提示:使用分号可以在一行内分割两个命令。 实践过程: 方法一: [rootoldboy66 ~]# mkdir /data #查…

Jenkins + gitlab webhook实现自动化部署

1、先在Jenkins安装插件Gitlab Hook Plugin 和Build Authorization Token Root Plugin;2.插件安装完成后在任务里添加token3、在gitlab上添加钩子4、点击测试钩子或push代码再看Jenkins已经在构建了就说明成功了(也可以在浏览器直接执行这个URL&#xff…

好雨云帮如何对接Git Server

前言 云帮目前支持对接GitLab、Gogs、Github,或者主流代码托管平台的公开项目,后期会考虑接入其他类型的Git服务。 私有云 GitLab是一个用于仓库管理系统的开源项目,私有云服务里使用比较多的自建Git服务。 对接GitLab 通过应用市场进行安装Gitlab 安装G…

Source Insight上手教程

目录Project的建立和工作区域同步查看定义查找引用查找调用Source Insight常用快捷键 目录 最近刚参加工作,第一个任务就是查看项目的源码,熟悉代码结构。于是乎就简单学习了Source Insight。在这里就转载别人的文章当做自己的笔记,便于自己…

微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项

今天在做隐藏微信右上角的分享按钮 百度查到的一串代码&#xff0c;挺好用的 <!--禁用微信分享按钮--><script>function onBridgeReady() {WeixinJSBridge.call(hideOptionMenu);}if (typeof WeixinJSBridge "undefined") {if (document.addEventListen…

python2.7无法使用pip(安装easy_install)

python27和python36 共存时安装pip方法&#xff0c;解决python27文件夹下没有script文件方法 报错&#xff1a; D:\PYTHON2.7>python ez_setup.py Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg Traceback (most recent call…

解决:pip警告!DEPRECATION: The default format will switch to columns in the future.

pip警告&#xff01; DEPRECATION: The default format will switch to columns in the future. You can use --format(legacy|columns) (or define a format(legacy|columns) in your pip.conf under the [list] section) to disable this warning. pip升级到9.0.1后 查看pi…

PLSQL安装配置

&#xff08;1&#xff09;解压&#xff1a;plsql developer Oracle数据库开发工具首先确保有oracle数据库或者有oracle服务器&#xff0c;然后才能使用PLSQL Developer连接数据库。&#xff08;2&#xff09;工具---首选项---连接----输入OCI库&#xff08;设置之后不用再装or…

Mysql 学习笔记2

&#xff08;1&#xff09;MySQL查看表占用空间大小 //先进去MySQL自带管理库&#xff1a;information_schema //自己的数据库&#xff1a;dbwww58com_kuchecarlib //自己的表&#xff1a;t_carmodelparamvalue mysql> use information_schema; Database changed mysql&g…

python程序打包为exe可执行文件

大家都知道&#xff0c;Python是一种脚本语言&#xff0c;也就是解释型的语言&#xff0c;需要解释器来进行解释以后才可以执行&#xff0c;而Python源代码需要在Python虚拟机上面运行&#xff0c;但是我们做好的程序&#xff0c;不可能给用户使用的时候还让他安装一个Python环…

使用Android Studio搭建Android集成开发环境

一、Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE&#xff08;Android平台集成开发环境&#xff09;。它基于Intellij IDEA开发环境&#xff0c;旨在取代Eclipse和ADT&#xff08;Android开发者工具&#xff09;为开发者提供更好的开发工具。既然G…

django2.x报错No module named 'django.core.urlresolvers'

解决方法就是: from django.urls import reverse 最近从django1.9迁移到django2.0中出现一个意外的报错&#xff1a; 这个报错的原因在stack overflow上有很直接的解释&#xff0c;但是百度上并没有直接的答案。 简单来说&#xff0c;原因就是&#xff1a;django2.0 把原来…

Django-安装xadmin的方法及主要配置方法

历经千辛万苦&#xff0c;终于实现了django2.1中xadmin的使用 被论坛里各路神仙带跑N次 准确说是几个小时 直接colne https://github.com/Liu0330/xadmin 工作系统环境&#xff1a;win10Python3.6.xDjango2.1.xXadmin2.0&#xff08;注意2.2版本就不行&#xff01;&#xff…

大数据集群搭建之Linux的安装(一)

1、准备工具 VMWare、centos mimal版本系统文件。 2、工具安装 1、安装vmware软件 安装软件地址&#xff1a; VMWare&#xff1a;http://pan.baidu.com/s/1qYnySrE 密码&#xff1a;3t3r centos mimal版本&#xff1a;http://pan.baidu.com/s/1dE5LY6H 密码&#xff1a…

Python3.6+Django2.0+Xadmin2.0学生信息管理系统

一、创建模型 模型是表示我们的数据库表或集合类&#xff0c;并且其中所述类的每个属性是表或集合的字段&#xff0c;在 app/models.py 中定义。 1、首先&#xff0c;导入models模块 from django.db import models 接下来创建个学生信息类&#xff0c;其中包含学生姓名、性别…

升级 pip版本

安装第三方库&#xff1a;pip install Pillow 出现 You are using pip version 7.1.2, however version 9.0.1 is available. You should consider upgrading via the python -m pip install --upgrade pip comm and. 解决方法1&#xff1a; 输入“python -m pip install -U pi…

大数据集群搭建之节点的网络配置过程(二)

紧接着上一章来设置windows的vmnet8的ip地址和虚拟机中centos的ip地址。 NAT虚拟网络的配置图如下图所示&#xff1a; 1、这里根据VMware中得到的网关地址去设置vmnet8的ip地址。 网关地址查看&#xff1a; 2、得到的网关地址后去设置vmnet8&#xff0c;将网关地址设置为v…

Python3.6+Django2.0+Xadmin2.0学生信息管理系统-2

1、上传图片/文件等资源 有时候需要添加一些附件&#xff0c;例如&#xff0c;新生刚入学&#xff0c;大家相互之间还不熟悉&#xff0c;希望能通过照片来加深印象&#xff0c;并且方便教学管理。 首先&#xff0c;对demo/urls.py文件进行改造&#xff0c;给urlpatterns添加s…

pycharm之no python interpreter configured for project的解决办法

今天由于重装了系统&#xff0c;所以必须得重新配置一些软件&#xff0c;在打开pycharm运行程序时显示“no python interpreter configured for project”提示。根据字面意思是“python没有解释器”。 解决办法&#xff1a; 找到你之前下载python环境支持库如下图所示&#x…