HBase引入与理解

【Hbase】知识总结 Hbase的简介 Hbase的来源 1、数据量越来越大,传统的关系型数据库,不能满足存储和查询功能的需求。而hive虽然能够满足存储的要求,但是hive的本质也是利用底层的mr,所以读写速度不快,而且hive不能满足非结构化,半结构化的存储,hive主要的作用是分析和统计,hive用于存储是毫无意义的。 2、起源于Google在2006发表的一篇论文《bigtable》,是对bigtable的开... 阅读详情

title: HBase引入与理解
date: 2019-09-05 14:00:00
categories:

  • 技术
    tags:
  • HBase

Hive适用于离线分析,速度较慢,无法支持在线业务。所以引入HBase,记录本文。

HBase特点

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。

HBase特点

  • 面向列
  • 适合非结构化数据的存储,PB级别。
  • 分布式:易于扩展、动态伸缩、并发处理。用zookeeper管理。

应用场景

  • 瞬间写入量很大
  • 大量数据需要长期保存, 且数量会持续增长
  • HBase不适合有join, 多级索引, 表关系复杂的数据模型

HBase VS 关系型数据库

HBase关系型数据库
数据库大小 PB级别 GB TB
数据类型 Bytes 丰富的数据类型
事务支持 ACID只支持单个Row级别 全面的ACID支持, 对Row和表
索引 只支持Row-key 支持
吞吐量 百万写入/秒 数千写入/秒

行数据库&列数据库存储方式比较

Hbase表结构

  • NameSpace: 关系型数据库的"数据库"(database)
  • 表(table):用于存储管理数据,具有稀疏的、面向列的特点。对于为值为空的列,并不占用存储空间。
  • 行(Row):在表里面,每一行代表着一个数据对象,每一行都是以一个行键(Row Key)来进行唯一标识的, 行键并没有什么特定的数据类型, 以二进制的字节来存储.
  • 列(Column): HBase的列由 Column family 和 Column qualifier 组成, 由冒号: 进行行间隔, 如 family: qualifier
  • 行键(RowKey):类似于MySQL中的主键,HBase根据行键来快速检索数据,一个行键对应一条记录。与MySQL主键不同的是,HBase的行键是天然固有的,每一行数据都存在行键。
  • 列族(ColumnFamily):是列的集合。列族在表定义时需要指定,而列在插入数据时动态指定。列中的数据都是以二进制形式存在,没有数据类型。在物理存储结构上,每个表中的每个列族单独以一个文件存储。一个表可以有多个列簇。
  • 列修饰符(Column Qualifier) : 列族中的数据通过列标识来进行映射, 可以理解为一个键值对(key-value), 列修饰符(Column Qualifier) 就是key 对应关系型数据库的列
  • 时间戳(TimeStamp):是列的一个属性,是一个64位整数。由行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。可根据版本(VERSIONS)或时间戳来指定查询历史版本数据,如果都不指定,则默认返回最新版本的数据。
  • 区域(Region):HBase自动把表水平划分成的多个区域,划分的区域随着数据的增大而增多。

HBase基础结构

  1. Client
  2. ZooKeeper:保证有一个HMaster存活,元数据存储。
  3. HMaster:对HRegionSever的负载均衡。
  4. HRegionServer
  5. HStore:每个列族对应一个HStore,存储数据,内存(MemStore)+文件硬盘(StoreFile)
  6. HRegion:水平拆分的单元,10G一个。
  7. HLog:先写HLog,后写MemStore
HStore
  • HBase存储的核心,由MemStore和StoreFile组成。

  • 用户写入数据的流程为:client访问ZK, ZK返回RegionServer地址-> client访问RegionServer写入数据 -> 数据存入MemStore,一直到MemStore满 -> Flush成StoreFile
HBase模块协作
  • HBase启动
    • HMaster启动, 注册到Zookeeper, 等待RegionServer汇报【HMaster注册】
    • RegionServer注册到Zookeeper, 并向HMaster汇报【RegionServer注册】
    • 对各个RegionServer(包括失效的)的数据进行整理, 分配Region和meta信息
  • RegionServer失效
    • HMaster将失效RegionServer上的Region分配到其他节点
    • HMaster更新hbase: meta 表以保证数据正常访问
  • HMaster失效
    • 处于Backup状态的其他HMaster节点推选出一个转为Active状态
    • 数据能正常读写, 但是不能创建删除表, 也不能更改表结构

HBase安装

安装包下载

一开始用的是国外链接,下载得太慢。

wget http://archive.apache.org/dist/hbase/stable/hbase-1.4.10-bin.tar.gz

该用清华大学的镜像,快了好多,感谢!

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.10-bin.tar.gz
安装过程记录

配置伪分布式环境

  • 环境变量配置

    export HBASE_HOME=/usr/local/development/hbase-1.2.4
    export PATH=$HBASE_HOME/bin:$PATH
    
  • 配置hbase-env.sh

    export JAVA_HOME=/usr/local/development/jdk1.7.0_15
    export HBASE_MANAGES_ZK=false  --如果你是使用hbase自带的zk就是true,如果使用自己的zk就是false
    
  • 配置hbase-site.xml

    <property>
          <name>hbase.rootdir</name>  --hbase持久保存的目录
          <value>hdfs://hadoop001:8020/opt/hbase</value>   
    </property>
    <property>
          <name>hbase.cluster.distributed</name>  --是否是分布式
          <value>true</value>
    </property>
    <property>     
              <name>hbase.zookeeper.property.clientPort</name>    --指定要连接zk的端口
              <value>2181</value>    
    </property>    
    <property>        
              <name>hbase.zookeeper.property.dataDir</name>            <value>/home/hadoop/app/hbase/zkData</value>    
    </property>          
    
  • 启动hbase(启动的hbase的时候要保证hadoop集群已经启动)

    /hbase/bin/start-hbase.sh
    
  • 输入hbase shell(进入shell命令行)

    hbase shell
    

参考&致谢

https://baike.baidu.com/item/HBase/7670213?fr=aladdin

https://blog.youkuaiyun.com/flyfish111222/article/details/51893096

Spring+HBase+phoenix踩过的坑 博主含泪记录下踩过的坑! 由于业务需求,需要对HBase进行复杂查询,而此时HBaseFilter已经不能满足我们的要求,故想着运用Phoenix来作为中间件,对HBase用SQL语句来查询。 Hpoenix 作为一个中间件可以像类似jdbc进行连接。 <bean id="phoenixDataSource" class="com.alibaba.druid.pool.DruidData 阅读详情

相关推荐

HBase与Hive集成:实现SQL查询HBase数据

你有没有过这样的困惑?用HBase存了大量用户行为数据(比如点击、浏览),想统计"上周年龄18-25岁用户的点击量",但HBase的Shell命令只能一行行查,根本搞不定复杂统计;用Hive写SQL很顺手,但Hive的表存在HDFS里,实时写入速度慢,没法存动态变化的数据。我们的目标:把HBase的"实时存储能力"和Hive的"SQL分析能力"结合起来——让HBase负责"存数据",Hive负责"查数据",用最熟悉的SQL语句从HBase里捞出想要的结果。

操作系统内核探秘的博客 1066

HbaseJAVA开发API导入jar包以及实现操作命令

前言 上一篇:常用的HBase Shell操作 提示:以下是本篇文章正文内容,下面案例可供参考 一、HbaseLibrary设置 因为以后经常使用Hbase都是用JAVA进行开发,很常用JAVA中的APIHbase包,所以我们直接创建一个Library。以后使用方便 。 点击Configure Build Path: 点击Add Library 创建一个你想要的Library,比如创建一个Hbasejar包库。 我们hbase的jar包在lib里面,全选...

master_hunter的博客 5514

POM引入HBase后执行Spark报错编程

本文提供了一些解决方案,包括检查依赖版本、排除冲突的依赖、设置Hadoop配置以及提供正确的HBase配置。记得根据你的实际环境和需求进行适当的修改和配置。确保你在POM文件中引入的HBase相关依赖版本与你使用的Spark版本兼容。在运行该示例之前,请确保你已经正确配置了Spark和HBase,并将相关的依赖添加到你的POM文件中。在使用Spark进行编程时,如果在项目的POM文件中引入了HBase相关依赖,可能会导致出现一些报错。在你的Spark应用程序中,确保提供正确的HBase配置信息。

DevGlider的博客 248

Hbase JAVA import包报错

hbase 编程中,import 包报错的解决方案

greatcoder的博客 884

使用Flink实现流式数据导入HBase的方法

本文介绍了使用Flink实现流式数据导入HBase的方法。通过编写相关的Flink程序,我们可以将实时产生的数据流导入到HBase中,以便进行进一步的查询和分析。Apache Flink是一个流式处理框架,可以高效地处理和分析实时数据。完成代码编写后,我们可以将程序打包并提交到Flink集群进行运行。接下来,我们将编写一个简单的Flink程序来实现数据的流式导入。本文将介绍如何使用Flink将流式数据导入HBase。在进行数据写入之前,我们需要配置HBase的连接信息。对象,最后写入HBase。

2301_79366177的博客 561

Unity3D实战:5分钟搞定RTSP监控视频播放(附完整代码)

本文提供了一套在Unity3D中快速集成RTSP监控视频播放的实战方案。通过采用LibVLCSharp for Unity这一成熟稳定的跨平台中间件,开发者可以轻松实现RTSP流的解码与渲染,并附有完整的C#代码示例,帮助用户在5分钟内完成集成,适用于智慧园区、安防监控等3D可视化场景。

weixin_29001655的博客 191

hbase运行jar包_关于hbase api的个人总结(带jar包)

1 packagecloudy.hbase.dao.imp;23 importjava.io.IOException;45 importorg.apache.hadoop.conf.Configuration;6 importorg.apache.hadoop.hbase.HBaseConfiguration;7 importorg.apache.hadoop.hbase.HColumnDescr...

weixin_42365604的博客 540

相机标定-张正友棋盘格标定法

(X,Y,Z)为在世界坐标系下一点的物理坐标 ( u , v ) 为该点对应的在像素坐标系下的像素坐标 引入齐次坐标的原因:引入齐次坐标的目的是为了升维,将坐标从二维坐标变为三维坐标。 2.相机成像过程 相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。 (1)世界坐标系(,,) 描述目标在真实世界中的位置引入的参考坐标系。 (2)相机坐标系(,,) ...

qq_41275123的博客 1万+

Spring boot整合Hbase,javaApi连接Hbase

环境介绍: hbase-2.3.3 pom文件需要引入的包: <!--hbase 引用的包开始--> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>2.3.3</version> <exclusions>

Mr青青子衿 447

WorkBuddy驱动SolidWorks实测:AI建模流程、参数化与许可排查指南

AI辅助三维建模正在改变工程师的重复劳动方式。其核心理念不是替代人的设计决策,而是通过AI智能体接管CAD软件中的草图绘制、特征创建、尺寸修改等高频操作,让工程师从繁琐的GUI交互中解放出来。在SolidWorks这类主流CAD平台上,这类AI助手的落地依赖环境稳定、需求描述清晰和参数化建模规范。通过将外径、孔距等关键尺寸定义为全局变量并用方程式驱动,可实现改一个数、模型自动更新的高效流程;同时,遇到“无法获得许可”等环境故障时,需要按服务状态、安全软件隔离、干净卸载的顺序排查。以WorkBuddy驱动So

weixin_28559803的博客 360

MC_SetOverride指令详细应用介绍(基恩士PLC)

基恩士KV系列PLC和松下总线绝对值伺服运动控制(详细配置+轴控完整ST源代码)

RXXW_Dor的博客 334

Scala Hbase 问题汇总 stack overflow

1.object hbase is not a member of package org.apache.hadoop when compiling scala 在Scala工程中使用HBase API,import hbase时, import org.apache.hadoop.hbase 出现编译错误解决(大概,没有尝试): 使用sbt构建工程时,添加依赖: hbase-clien

power0405hf的专栏 2319

骚戴笔记公告

骚戴笔记公告

我从不打没有准备的仗! 2万+

【SDCC讲师专访】阿里巴巴高级技术专家沈春辉:选择HBase是一种缘分

SDCC 2016将于2016年3月18-19日在上海召开。在大会召开之际,优快云采访到了阿里巴巴高级技术专家沈春辉,请他分享一些关于对HBase的研究与理解。阿里巴巴高级技术专家 沈春辉阿里巴巴高级技术专家,HBase社区Committer,2011年加入阿里,主要从事和关注分布式存储与数据库领域,在支撑大规模在线数据服务的前线拥有多年战斗经验,目前负责阿里HBase的改进与开发工作。他将在...

sunsi001的博客 1309

基于Xilinx XDMA 的PCIE通信

基于Xilinx XDMA 的PCIE通信 概述:   想实现基于FPGA的PCIe通信,查阅互联网各种转载…基本都是对PCIe的描述,所以想写一下基于XDMA的PCIe通信的实现(PCIe结构仅做简单的描述(笔记),了解详细结构移至互联网)。实践实践!!! 说明: 参考文档: PCI Express Base Specification Revision 3.0 PCI Express Base Specification Revision 5.0 pg195-pcie-dma PCI Express体系

Crazzy_M的博客 1万+

知识图谱(Knowledge Graph)原理与代码实战案例讲解

知识图谱(Knowledge Graph)原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来

AI天才研究院 1077

大数据技术-HBase:HBase IO HFile

HBase声称可以支持实时的随机快速读写数据,但是其数据大部分是存入hdfs文件的,且是append进去的,为什么可以做到呢?下面我们将详细解释如何获取到随机I/O,怎样存储文件,及其所使用的文件格式HFile。 Hadoop有一种叫做SequenceFile的文件格式,你可以将key/value对append到hdfs上,这种文件格式不支持修改和移除,仅仅支持append。如果你需要找一个特定

黄刚的技术博客 928

Winform从入门到精通(38)——StatusStrip(史上最全)

本文介绍StatusStrip控件的详细用法,包含所有属性和事件,绝对史上最全!

qq_34059233的博客 2758

细述hbase协处理器

1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(&lt;0.92)Hbase中,统计数据表的总行数,需要使用Counter方法,执行一次MapReduce Job才能得到。虽然HBase在数据存储层中集成了MapReduce,能够有效用于数据表的分布式计算。然而在很...

weixin_34405925的博客 88

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HBase多租户机制分析

背景介绍在HBase1.1.0发布之前,HBase同一集群上的用户、表都是平等的,没有优劣之分。这种’大同’社会看起来完美,实际上有很多问题。最棘手的主要有这么两个,其一是某些业务较其他业务重要,需要在资源有限的情况下优先保证核心重要业务的正常运行,其二是有些业务在某些场景下会时常’抽风’,QPS常常居高不下,严重消耗系统资源,导致其他业务无法正常运转。这实际上是典型的多租户问题,社区针对这个问题...

赵英超的博客 857

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Hbase 学习(八) 使用MapReduce

在hbase的demo里面有个IndexBuilder的例子,它就是使用了MapReduce来操作hbase的,例子也比较简单,但是只包括了Mapper。 另外网上还有另外一个例子,也是说明这个的,这个例子更为全面一点,包括了Mapper和Reducer。 http:/...

201

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Hbase【最新版V0.94.24】- 系列 1: Release 介绍

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33778778的博客 121

我理解的数仓项目

我理解的数仓项目 我会从数据的流向来梳理整个架构. 离线数仓:(对产生的数据进行处理,一般处理T+1数据.) 订单数据保存在mysql数据库中,通过kettle进行ETL (进行数据的抽取,基本的预处理 转换装载到HDFS中) 这里用到hive数据仓库工具,hive 数据保证在hdfs中,运用hsql对数据进行操作, 底层进行mapreduce. 对数仓进行分层. ods 层 ...

weixin_45646798的博客 595

计算机学习心得

有一天我问我媳妇:你觉得操作系统复杂么?我媳妇想都没想就来了一句:复杂! 我又问:为什么觉得操作系统复杂?或者操作系统复杂在哪里?我媳妇眼睛转了两圈之后说:不知道! 我说:操作系统其实不复杂!

互联网从业者/大数据架构师/全栈开发者 1066

【HBase入门与实战】一文搞懂HBase!

1.HBase的引入、定义和特点 2.NoSQL数据库的概念和与关系型数据库的区别 3.HBase的物理架构和逻辑架构 4.HBase Shell的基本命令使用 5.HBase的应用场景

Byyyi耀的博客 2665
上一篇: 决策树的演变与理解
下一篇: Ubuntu16安装HIVE全程记录
chengshuo678
博客等级 码龄14年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值