hbase轻松入门

chorm590 chorm590     2023-02-06     393

关键词:

2018-12-13

 2018-12-20

1、基本概念

1.1、前言

    在了解HBase之前,非常有必要先了解一下最基础的概念,毕竟了解概念是学习的第一步,也是必不可少的一步。

    首先我们以哲学史上三个终极问题来向HBase say hello.

      1、我是谁?

      2、我从哪里来?

      3、我要到哪里去?

 

    * HBase是什么(我是谁)?

      HBase是Apache公司根据Google发表的几篇关于如何处理海量数据的论文(GFS, MapReduce, BigTable)中的思想而创立的一个开源项目。一句话:HBase是一个用于存储海量数据的分布式数据库软件。这里涉及到一个概念不得不提,何谓“海量数据”?个人对海量数据的定义有两点:1. 数据本身足够大。TB及以上级别的数据量; 2. 数据增长速度足够快。每天以几十上百GB的速度在增长。

 

    * 为什么需要HBase(我从哪里来)?

      我们都知道,能量是不可能凭空产生的。HBase如是,它并不是有一群人吃饱了没事做要弄个HBase出来玩玩。一件新事物的诞生,必然是出于人们对旧有事物的不满足。在HBase诞生之前,人们使用的数据库软件都是面向“行”存储的。什么是面向行存储呢?我们都知道,数据库存储数据最终还是要以文件的形式保存到硬盘中的。一般来说,文件在硬盘中都是物理连续地保存起来的(机械盘,有土豪用固态盘作数据存储?),而面向行存储呢,就是表中的每一行的所有数据都是连续地存储起来的。如下图所示:

技术分享图片

图1 传统数据库的存储方式

      

      上图右侧部分就是面向行存储的方式在硬盘上被保存的形式。
            传统的关系型数据库,数据一般都是以表的形式中心化存储的,即所有数据都存在那一台主机上,顶多搞多两台机器用来保存备份数据。这种数据存储方式,对于数据量不多的情况下还是很溜的,但一旦数据量上去了,其劣势就愈发明显了。最明显的影响就是检索效率的下降,并且检索效率下降将会越来越严重,这是致命的。同时,注意到上图Marry行的数据,sex列的数据是空的。即使某一行中某一列是没有数据的,它在物理上仍然要占据一块空间!当你数据量上去以后,这种空间浪费的情况绝对会让你脑阔疼。
            出于上述这两种原因(事实上我所了解到的只有这两种原因,但对于小白来说,已经够了。),那群人吃饱饭以后再翻翻Google发表的论文,就弄出了这个HBase。
 

    * 该如何学习HBase(我要到哪里去)?

      Linux Only!!!
      先谈谈硬件设备咯,工欲善其事,必先利其器。
      前面我们提到HBase是一个用于处理大数据的分布式数据库。它的核心在于分布式。既然要玩分布式,肯定少不了要准备几台电脑了。有条件的老铁买它三四台电脑来,装上Linux就可以开干了。但我相信大多数人都没有这个条件的,即使真的有条件,我也不建议你这样干,毕竟连你自己都无法确定你的这股学习干劲在明天起床以后还有没有。。。
      因此,硬件设备建议:
        1、一台好一点的电脑;
          内存尽量高一点16G或以上。CPU尽量好一点。硬盘就随便了,毕竟是用来学习而不是投入生产的,256G的固态在现在应该是主流吧?
        2、电脑主系统装一个Windows 10;
          什么年代了,还用win7? 用XP的,建议你改行吧,你不适合搞IT。其实主系统是什么影响并不大,纯粹是觉得搞IT的自己的电脑系统就应该是最新的。
        3、装一个最新版的虚拟机软件;
          虚拟机这种玩虚拟化技术的东东,它的迭代肯定意味着对新硬件新技术以及他们自身的虚拟化技术都上了一个新的阶层,或许是能跑的比以前更流畅,或许是占用的资源比以前更小。总之这种东西你用新的就没错。我用的是vmware 15。
        4、装它三四台Linux虚拟机系统;
          其实你硬要抬杠,一台Linux虚拟机就够了。但个人建议至少装三台,既然要玩,就玩像一点。至于虚拟机的配置,尽你的条件上高一点咯。硬盘空间不需要很多的,默认的20GB已经多到要爆炸了。我用的是ubuntu desktop 18.01 lts。

 

      接下来再谈谈软件环境咯。有的人可能要说了,上面谈硬件设备的时候不是已经说了要win10,要虚拟机了吗,那个不是软件环境吗!  好像是这么个理,但是,其实,它。。。不要在意这些细节啦,往下看咯。

      HBase的分布式能力完全是仰仗于Hadoop这头小神象的(Hadoop的LOGO就是一只欢快的小象象,如下图2所示)。假如你了解了Hadoop以后再去学习HBase,你会有一种HBase就是把Hadoop的各种概念再用他自己的话“复述”一遍而已的感觉。

技术分享图片

图2 Hadoop LOGO

      然后还有一个Zookeeper,

      因此,有条件的老铁,在学习HBase之前,可以先去了解一下Hadoop和Zookeeper。如果不想自己学习HBase的一腔热血被强行中途打断而去学习其它东东,也可以不去了解它们而直接学习HBase。因为我在后面也会讲一下Hadoop和Zookeeper的一些相关概念的。

 

    如果你能坚持看到这里,那么我要开始刮一次目再来和你相看了,因为我已经开始有点相信你不是一时头脑发热而想去学习什么鬼HBase的了。那话又说回来,既然看到了这里,说明你在HBase上的哲学史三大终极问题都已经捋清楚了,对“自我”有一个基本的认识以后,就开始要稍微深入一点了。先来看看HBase的技术架构吧。

 

1.2、架构

  HBase的架构对于小白同学来讲还是很复杂的。刚刚我才说到,干嘛好学不学学什么鬼HBase嘛,它真的超级多概念的,刚开始学的时候,光是记这些概念就能让你技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片。不过其实也没有这么严重了,因为。。。现在放弃还来得及!!!技术分享图片

  言归正传了,要看HBase的架构,直接抓取网上的一幅架构图来讲解吧:

技术分享图片

图3 HBase架构

    整个HBase系统是基于HDFS构建的。这个怎么理解呢,呃,就像小米手机的 MIUI是基于Android原生系统构建的,锤子手机的smartisan os也是基于Android原生系统构建的一样。一些很繁琐很基础的事情先由Android原生系统帮你搞定了,你再把你的精力专注于构建你自己的应用生态圈去那样。HBase系统也是这样。HDFS的全称是Hadoop distributed file system,分布式的能力HDFS已经做的很优秀了,你HBase直接拿过来,专注于上层应用开发,整个项目就会简单的多了。

    真正属于HBase的东西只有两样:1、HMaster; 2、 HRegionServer。 HMaster是用来作决策的。HRegionServer是用来存储数据的。

    Zookeeper也是一个第三方的程序。它是用来解决HBase系统中服务协同问题的。

    Client端其实就是HBase开放出来的给程序员们调用的各种API。当然你也可以把它理解成是在屏幕前操纵的人。

    关于HBase架构图更详细一点的介绍,本篇博文限于篇幅就不再赘述,有兴趣的同学可以参考一下另一篇博文:  HBase轻松入门之HBase架构图解析  。

 

 


 

2、安装与部署 

   暂时不更。

 

 

 


 

3、Shell接口

   暂时不更。

 

 

 


 

4、Java API

  暂时不更。

 

hbase学习01(hbase入门及hbaseshell简单操作)(代码片段)

文章目录hbase入门启动关闭hbaseshell操作namespace的操作表的操作hbase入门启动关闭首先zookeeper和hadoop正常启动再启动hbase./bin/start-hbase.sh关闭时先关闭hbase./bin/stop-hbase.sh再关闭zookeeper和hadoop查看hbase页面hadoop102:16010hbaseshell操作./bin/hba... 查看详情

hbasehbasegettingstarted(hbase入门指南)

入门指南1.简介Quickstart 会让你启动和运行一个单节点单机HBase。2.快速启动–单点HBase这部分描述单节点单机HBase的配置。一个单例拥有所有的HBase守护线程—Master,RegionServers和ZooKeeper,运行一个单独JVM持久化到本地文件系统... 查看详情

hbase入门

转载地址:https://dxer.github.io/2016/03/18/hbase/HBase一些基本概念1、Rowkey行主键,在对HBase进行查询时候只能依靠Rowkey,HBase不支持条件查询等类似于一些主流数据库的查询方式,读取记录只能依赖行主键以及进行全局扫面,可以将行... 查看详情

hbase入门

Hbase入门简介HBase是一个构建在HDFS之上的,分布式的,面向列的开源数据库,由GoogleBigTable的开源实现,它主要用于存储海量数据,是Hadoop生态系统中的重要一员。HBase的优势成熟社区成熟理论充分经过实践丰富的工具支持高效将... 查看详情

大数据技术之hbasehbase简介hbase快速入门hbase进阶(代码片段)

...2.2HBase物理存储结构1.2.3数据模型1.3HBase基本架构2HBase快速入门2.1HBase安装部署2.2HBaseShell操作2.2.1基本操作2.2.2表的操作3HBase进阶3.1架构原理3.2写流程3.3MemStoreFlush3.4读流程3.5StoreFileCompa 查看详情

大数据技术之hbasehbase简介hbase快速入门hbase进阶(代码片段)

...2.2HBase物理存储结构1.2.3数据模型1.3HBase基本架构2HBase快速入门2.1HBase安装部署2.2HBaseShell操作2.2.1基本操作2.2.2表的操作3HBase进阶3.1架构原理3.2写流程3.3MemStoreFlush3.4读流程3.5StoreFileCompa 查看详情

hbase入门修行基础篇

HBase入门修行基础篇 HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一... 查看详情

hbase编程api入门之get

    前面是基础。HBase编程API入门之put packagezhouls.bigdata.HbaseProject.Test1;importjavax.xml.transform.Result;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.HBaseConfig 查看详情

hbase编程api入门之delete

   前面的基础,是HBase编程API入门之putHBase编程API入门之get hbase(main):001:0>scan‘test_table2‘ROWCOLUMN+CELLrow_04column=f1:name,timestamp=1478117286377,value=Andy3row_04column=f2:name,timestamp=14781172 查看详情

hbase从入门到精通_如何学好hbase

Hbase从入门到精通课程学习地址:http://www.xuetuwuyou.com/course/188课程出自学途无忧网:http://www.xuetuwuyou.com课程简介面对海量数据的存储及实时查询,传统的RDBMS已经无法满足,基于HDFS之上的HBase应运而生,每个表的数据可以达到数... 查看详情

hbase_入门配置(代码片段)

配置HBASE:因为Hbase要依赖zookeeper集群和Hadoop集群,所以在配置hbase之前先确保已经配置zookeeper集群和Hadoop集群,这里不再详解zookeeper和hadoop,若没有配置可以跳转:  zookeeper:https://www.cnblogs.com/dongxiucai/p/9688181.html  hadoop:http... 查看详情

hbase快速入门

2.1HBase安装部署2.1.1Zookeeper正常部署首先保证Zookeeper集群的正常部署,并启动之。[atguigu@hadoop102zookeeper-3.5.7]$bin/zkServer.shstart[atguigu@hadoop103zookeeper-3.5.7]$bin/zkServer.shstart[atguigu@hadoop 查看详情

一条数据的hbase之旅,简明hbase入门教程-开篇

常见的HBase新手问题:什么样的数据适合用HBase来存储?既然HBase也是一个数据库,能否用它将现有系统中昂贵的Oracle替换掉?存放于HBase中的数据记录,为何不直接存放于HDFS之上?能否直接使用HBase来存储文件数据?Region(HBase中的数据... 查看详情

hbase之集群搭建与快速入门(代码片段)

HBase快速入门1.HBase安装部署Zookeeper正常部署[codecat@hadoop102zookeeper-3.5.9]$bin/zkServer.shstart[codecat@hadoop103zookeeper-3.5.9]$bin/zkServer.shstart[codecat@hadoop104zookeeper-3.5.9]$bin/zkServ 查看详情

hbase学习01(hbase入门及hbaseshell简单操作)(代码片段)

文章目录hbase入门启动关闭hbaseshell操作namespace的操作表的操作hbase入门启动关闭首先zookeeper和hadoop正常启动再启动hbase./bin/start-hbase.sh关闭时先关闭hbase./bin/stop-hbase.sh再关闭zookeeper和hadoop查看hbase页面hadoop102:16010hbaseshell操作./bin/hba... 查看详情

hbase编程api入门之create(管理端而言)

... 大家,若是看过我前期的这篇博客的话,则HBase编程API入门之put(客户端而言)  就知道,在这篇博文里,我是在HBaseShell里创建HBase表的。   这里,我带领大家,学习更高级的,因为,在开发中,尽量不能去服务器上... 查看详情

hbase入门笔记--读性能优化

一、前言    在生产环境使用HBase过程中,随着数据量的不断增加,查询HBase数据变得越来越慢,对于业务来说是不可用的,需要对读性能进行优化二、问题定位    从hbase监控指标来看,发现FullGC次数... 查看详情

大数据入门学习指南

...理,内容十分丰富,集合将近200篇高质文章带你轻松学习。但是由于文章很多&#x 查看详情