HBase简介

  • 是BigTable开源实现
  • 网页索引:爬虫-> BigTable运行MapReduce
  • HBase 是谷歌的GFS的开源实现
  • 面向列,分布式数据库
  • 底层对应关系
BigTable HBase
文件存储系统 GFS
海量数据处理 MapReduce
协同管理服务 Chubby
  • 设计初心:为了满足大数据实时处理需求
  • 关系数据库模式确定以后就很难变更
  • 关系数据库中定义了非常多的数据操作,而这个避免了多表之间的连接错做
  • 索引方面,只支持对行键的处理
  • 数据维护方面不会删除原来的旧值
  • 纵向扩展方面:关系数据库很难实现水平扩展,最多可以实现纵向扩展
  • 访问接口
    • Java API

      • shell命令
      • Thrift Gateway
      • REST Gateway
    • 提供了SQL类型接口
      • Pig
      • Hive

数据模型

  • 稀疏的多维度的排序映射表

    • 行键、时间戳、列族
  • 列限定符
    • name
    • major
    • email
  • 时间戳:区分新旧版本
  • 每一个值都是未经解释的字符串
  • 不考虑冗余
  • 面向行存储
    • 优点:每一次完整记录
    • 缺点:会取出不需要的数据,不能达到很高的数据压缩率
  • 面向列式
    • 按照一个列存储:带来很高的数据压缩率
    • 分析数据应用高效

功能组件

  • 库函数

    • 一般链接各个服务器
  • Master服务器
    • 充当管家
  • Region服务器
    • 维护和管理Region服务器
    • 一个Region会分裂多个新的Region
  • 三层结构实现Region寻址和定位
    • 构建一个元数据,假设这个元数据值由两列

      • Region 的 id
      • Region服务器的 id
    • HBase最开始构建是有个一个映射表,这个表成为.MWTA.表
      • -ROOT表,最多只有一个Region,存储了.META表的Region位置信息,META表中记录了用户数据表的Region位置信息
      • ZooKeeper中存储了ROOT表地址
      • 三层寻址
        • -ROOT-表 128MB 2 17 2^{17} 217行数据
        • .META.表 128MB 2 17 2^{17} 217行数据
        • 总共 2 34 2^{34} 234行数据

运行机制

  • 借助于HDFS进行数据存储
  • 用户写入数据
    • 缓存 -> MemStore -> 写日志
  • 读取
    • Region服务器 -> MemStore -> 缓存 -ifnot-> StoreFile
  • 缓存刷新
    • 周期性的MemStore的内容刷写道磁盘StoreFile文件中
    • 每次刷鞋都生产一个新的StoreFile文件,Store包含多个
    • Region服务器都有一个自己爹HLog文件,每次启动都检查该文件,如果发现更新,先写入MemStore,在写到StoreFile最后删除旧的Hlog后提供服务
  • 多个新的StoreFile会影响查找操作,合并也会占领内存,当合并到多大时会产生分裂
  • 一个Region服务器公用一个HLog:提高了写的性能

应用方案

  1. 性能优化方法

    • 时间靠近的数据-时间戳-升序排序-最大的整型值减去timestamp
    • 把相关的表放到Region的缓存中
    • 设置最大版本数,节省存储空间
    • 自动清理数据:设置TimeToLive一旦超过生命周期就会超过过期数据
  2. 检测性能
    • Master-status
    • Ganglia
    • OpenTSDB
    • Ambari
  3. 能够使用SQL引擎使用SQL语句
    • Hive
    • Phoenix
  4. 构建HBase二级索引
    • 辅助索引
    • 访问
      • 单个行键
      • 定一个行键开始点和结束点访问
      • 全表扫描
    • Coprocessor
      • endpoint

        • 存储过程
      • observer
        • 触发器
      • 没有HBase进行修改
      • 耗时双倍

安装配置等

  1. JAVA_HOM配置
  2. 先Hadoop后HBase
  3. 常用Shell
# 创建
create 'table_name','T1','T2'
# 添加数据
put 'table_name','r1','f1:c1','hello,dblab'
# 查看数据
get 'table_name','r1',{COLUMN=>'f1:c1'}
# 删除
disable 'table_name'
drop 'table_name'

常用Java API

  1. 版本冲突
  2. 三个常量定义
public static Configuration configuration;
public static Connection connection;
public static Admin admin;
  1. 建立连接
public static void init() {conifguration = HBaseConfiguration.create();configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");try {connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();} catch (IOException e) {e.printStackTrace();}
}

实际操作

实验室传送门

【笔记】大数据技术之HBase简介与应用(四)相关推荐

  1. 大数据技术之 HBase简介

    大数据技术之 HBase 第 1 章 HBase 简介 1.1 HBase 定义 HBase 是一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库. 1.2 HBase 数据模型 逻辑上,HB ...

  2. 大数据技术之Hbase简介以及底层原理详解

    简介 概述 HBase是有Apache提供的基于Hadoop的分布式,可扩展的非关系型数据库 HBase可以管理很大的数据的表 - billions of rows X millions of col ...

  3. 【学习笔记】大数据技术之HBase

    大数据技术之HBase 思考? 1. RegionServer和Master的区别? 2. Hbase端口 3. HBase写流程中,为什么要和zk进行交互? 第 1 章 HBase 简介 1.1 H ...

  4. 大数据技术之HBase(超级详细)

    大数据技术之HBase 第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持 ...

  5. 大数据技术之HBase (一)

    大数据技术之HBase (一) 1.简介 1.1什么是HBase HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储 ...

  6. 大数据技术之 HBase安装配置

    大数据技术之 HBase安装 1.hbase依赖于hadoop以及zookeeper,所以 1.1 首先myhadoop.sh start 1.2 然后zk.sh start 接下来安装hbase 1 ...

  7. 大数据技术之HBase(一)HBase简介、HBase快速入门、HBase进阶

    文章目录 1 HBase 简介 1.1 HBase 定义 1.2 HBase 数据模型 1.2.1 HBase 逻辑结构 1.2.2 HBase 物理存储结构 1.2.3 数据模型 1.3 HBase ...

  8. 大数据技术之HBase(二)HBase原理简介

    一.HBase定义 1.1 HBase定义 HBase 是一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库非结构化数据存储的数据库,基于列的模式存储.利用Hadoop HDFS作为其文件存储 ...

  9. 大数据技术之HBase原理与实战归纳分享-下

    文章目录 整合Phoenix 定义 为何要使用 安装 SHELL操作 表的映射 简易JDBC示例 二级索引 二级索引配置文件 全局索引 包含索引 本地索引(local index) HBase与 Hi ...

最新文章

  1. Techparty-广州Javascript技术专场(学习分享)
  2. Windows内核 基本汇编指令
  3. 2000 ~2019 年历届 CVPR 最佳论文汇总
  4. 读取Excel的文本框,除了解析xml还可以用python调用VBA
  5. “哪吒”出世!华为开源中文版BERT模型
  6. 关于Web面试的基础知识点--Javascript(一)
  7. 计算机名代表电脑什么,电脑开机蓝屏的各种文件名是什么意思
  8. JAVA中Math类的random()方法使用
  9. java如何验证手机号码_Java 手机号码正则表达式验证
  10. WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头
  11. 戴德金--连续性和无理数--我自己做的中文翻译第11页
  12. Composure视口的材质丢失?
  13. 物联网毕业设计 - 智能运动计步系统(物联网 嵌入式 单片机 stm32)
  14. 地塞米松/多柔比星/胡桃醌/丹皮酚-PLGA聚乳酸-羟基乙酸纳米粒
  15. git显示当前分支的父分支名称
  16. 基于SSM的汽车维修管理软件设计与实现
  17. 爬虫|12306模拟登录
  18. 生物小分子耦合稀土上转换纳米颗粒
  19. Python爬虫,京东自动登录,在线抢购商品
  20. Linux 系统 top 命令详解

热门文章

  1. python对dataframe中series的json格式解析
  2. HTML最新面试题(笔试面试题)
  3. 【Python】求最大公约数或者最小公倍数
  4. mybatis 逆向工程MBG
  5. 【微服务】微服务常用组件汇总
  6. 软件专用测试清单,软件测试计划清单实用模板.doc
  7. SQL级联删除与级联更新使用格式
  8. 从零开始TP6配置ThinkPHP-ApiDoc
  9. Odoo是什么?Odoo较全面简介——江苏欧度软件
  10. 【光感自动窗帘控制系统设计】