【笔记】大数据技术之HBase简介与应用(四)
HBase简介
- 是BigTable开源实现
- 网页索引:爬虫-> BigTable运行MapReduce
- HBase 是谷歌的GFS的开源实现
- 面向列,分布式数据库
- 底层对应关系
BigTable | HBase |
---|---|
文件存储系统 | GFS |
海量数据处理 | MapReduce |
协同管理服务 | Chubby |
- 设计初心:为了满足大数据实时处理需求
- 关系数据库模式确定以后就很难变更
- 关系数据库中定义了非常多的数据操作,而这个避免了多表之间的连接错做
- 索引方面,只支持对行键的处理
- 数据维护方面不会删除原来的旧值
- 纵向扩展方面:关系数据库很难实现水平扩展,最多可以实现纵向扩展
- 访问接口
- Java API
- shell命令
- Thrift Gateway
- REST Gateway
- 提供了SQL类型接口
- Pig
- Hive
- Java API
数据模型
- 稀疏的多维度的排序映射表
- 行键、时间戳、列族
- 列限定符
- name
- major
- 时间戳:区分新旧版本
- 每一个值都是未经解释的字符串
- 不考虑冗余
- 面向行存储
- 优点:每一次完整记录
- 缺点:会取出不需要的数据,不能达到很高的数据压缩率
- 面向列式
- 按照一个列存储:带来很高的数据压缩率
- 分析数据应用高效
功能组件
- 库函数
- 一般链接各个服务器
- 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:提高了写的性能
应用方案
- 性能优化方法
- 时间靠近的数据-时间戳-升序排序-最大的整型值减去timestamp
- 把相关的表放到Region的缓存中
- 设置最大版本数,节省存储空间
- 自动清理数据:设置TimeToLive一旦超过生命周期就会超过过期数据
- 检测性能
- Master-status
- Ganglia
- OpenTSDB
- Ambari
- 能够使用SQL引擎使用SQL语句
- Hive
- Phoenix
- 构建HBase二级索引
- 辅助索引
- 访问
- 单个行键
- 定一个行键开始点和结束点访问
- 全表扫描
- Coprocessor
- endpoint
- 存储过程
- observer
- 触发器
- 没有HBase进行修改
- 耗时双倍
- endpoint
安装配置等
- JAVA_HOM配置
- 先Hadoop后HBase
- 常用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
- 版本冲突
- 三个常量定义
public static Configuration configuration;
public static Connection connection;
public static Admin admin;
- 建立连接
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简介与应用(四)相关推荐
- 大数据技术之 HBase简介
大数据技术之 HBase 第 1 章 HBase 简介 1.1 HBase 定义 HBase 是一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库. 1.2 HBase 数据模型 逻辑上,HB ...
- 大数据技术之Hbase简介以及底层原理详解
简介 概述 HBase是有Apache提供的基于Hadoop的分布式,可扩展的非关系型数据库 HBase可以管理很大的数据的表 - billions of rows X millions of col ...
- 【学习笔记】大数据技术之HBase
大数据技术之HBase 思考? 1. RegionServer和Master的区别? 2. Hbase端口 3. HBase写流程中,为什么要和zk进行交互? 第 1 章 HBase 简介 1.1 H ...
- 大数据技术之HBase(超级详细)
大数据技术之HBase 第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持 ...
- 大数据技术之HBase (一)
大数据技术之HBase (一) 1.简介 1.1什么是HBase HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储 ...
- 大数据技术之 HBase安装配置
大数据技术之 HBase安装 1.hbase依赖于hadoop以及zookeeper,所以 1.1 首先myhadoop.sh start 1.2 然后zk.sh start 接下来安装hbase 1 ...
- 大数据技术之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 ...
- 大数据技术之HBase(二)HBase原理简介
一.HBase定义 1.1 HBase定义 HBase 是一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库非结构化数据存储的数据库,基于列的模式存储.利用Hadoop HDFS作为其文件存储 ...
- 大数据技术之HBase原理与实战归纳分享-下
文章目录 整合Phoenix 定义 为何要使用 安装 SHELL操作 表的映射 简易JDBC示例 二级索引 二级索引配置文件 全局索引 包含索引 本地索引(local index) HBase与 Hi ...
最新文章
- Techparty-广州Javascript技术专场(学习分享)
- Windows内核 基本汇编指令
- 2000 ~2019 年历届 CVPR 最佳论文汇总
- 读取Excel的文本框,除了解析xml还可以用python调用VBA
- “哪吒”出世!华为开源中文版BERT模型
- 关于Web面试的基础知识点--Javascript(一)
- 计算机名代表电脑什么,电脑开机蓝屏的各种文件名是什么意思
- JAVA中Math类的random()方法使用
- java如何验证手机号码_Java 手机号码正则表达式验证
- WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头
- 戴德金--连续性和无理数--我自己做的中文翻译第11页
- Composure视口的材质丢失?
- 物联网毕业设计 - 智能运动计步系统(物联网 嵌入式 单片机 stm32)
- 地塞米松/多柔比星/胡桃醌/丹皮酚-PLGA聚乳酸-羟基乙酸纳米粒
- git显示当前分支的父分支名称
- 基于SSM的汽车维修管理软件设计与实现
- 爬虫|12306模拟登录
- 生物小分子耦合稀土上转换纳米颗粒
- Python爬虫,京东自动登录,在线抢购商品
- Linux 系统 top 命令详解