非关系型数据库——HBase(基础)

⾮关系型数据库——HBase(基础)
HBase基础
什么是NoSQL
NoSQL:not only SQL,⾮关系型数据库
NoSQL是⼀个通⽤术语
动力换挡变速箱指不遵循传统RDBMS模型的数据库
数据是⾮关系的,且不使⽤SQL作为主要查询语⾔
解决数据库的可伸缩性和可⽤性问题
不针对原⼦性或⼀致性问题
NoSQL和关系型数据库对⽐
主要有以下⼀些区别
对⽐NoSQL关系型数据库常⽤数据库HBase、MongoDB、Redis Oracle、DB2、MySQL 存储格式⽂档、键值对、图结构表格式,⾏和列农夫山泉与京华时报
存储规范⿎励冗余规范性,避免重复
存储扩展横向扩展,分布式纵向扩展(横向扩展有限)查询⽅式结构化查询语⾔SQL⾮结构化查询
事务不⽀持事务⼀致性⽀持事务
性能读写性能⾼读写性能差
成本简单易部署,开源,成本低成本⾼NoSQL和BI、⼤数据的关系
BI(Business Intelligence):商务智能
它是⼀套完整的解决⽅案
BI应⽤涉及模型,模型依赖于模式
BI主要⽀持标准SQL,对NoSQL⽀持弱于关系型数据库
NoSQL和⼤数据相关性较⾼,但是NoSQL != ⼤数据
NoSQL产品是为了帮助解决⼤数据存储问题,但是⼤数据不仅仅包含数据存储的问题
通常⼤数据场景采⽤列存储数据库
如:HBase
HBase概述
1. HBase是⼀个领先的NoSQL数据库
2. 是⼀个⾯向列存储的NoSQL数据库
3. 是⼀个分布式Hash Map,底层数据是Key-Value格式
4. 基于Google Big Table论⽂
5. 使⽤HDFS作为存储并利⽤其可靠性
6. HBase特点
7. 数据访问速度快,响应时间约2-20毫秒
8. ⽀持随机读写,每个节点20k~100k+ ops/s
9. 可扩展性,可扩展到20,000+节点
10. ⾼并发
HBase应⽤场景
增量数据-时间序列数据
⾼容量,⾼速写⼊
HBase之上有OpenTSDB模块,可以满⾜时序类场景,⽐如传感器,系统监控,股票⾏情监控等信息交换-消息传递
⾼容量,⾼速读写
通信、消息同步的应⽤构建在HBase之上,⽐如email,FaceBook等
内容服务-Web后端应⽤程序
⾼容量,⾼速读写
头条类、新闻类的的新闻、⽹页、图⽚存储在HBase中
Apache HBase⽣态圈
HBase⽣态圈技术
Lily – 基于HBase的CRM
OpenTSDB – HBase⾯向时间序列数据管理
Kylin – HBase上的OLAP
Phoenix – SQL操作HBase⼯具
Splice Machine – 基于HBase的OLTP
Apache Tephra – HBase事务⽀持
TiDB – 分布式SQL DB
服装信息系统
Apache Omid - 优化事务管理
Yarn application timeline server v.2 迁移到HBase
Hive metadata存储可以迁移到HBase
Ambari Metrics Server将使⽤HBase做数据存储
HBase分布式环境部署
启动ZooKeeper
启动Hadoop(HDFS、YARN)
上传、解压、配置环境变量并修改配置⽂件
hbase-env.sh
regionservers
启动测试
启动:start-hbase.sh
关闭:stop-hbase.sh
HBase物理架构 - 概述
HBase物理架构 - HMaster
HMaster的作⽤是:
–集的主节点,可以配置多个,⽤来实现HA
–处理元数据的变更
–监控RegionServer
–负责RegionServer的负载均衡
–处理RegionServer故障转移
–通过ZooKeeper发布⾃⼰的位置给客户端
HBase物理架构 - RegionServer-1
RegionServer负责管理维护Region,负责存储HBase实际数据
⼀个RegionServer包含⼀个WAL、⼀个BlockCache (读缓存)和多个Region ⼀个Region包含多个存储区,每个存储区对应⼀个列族
⼀个存储区由多个StoreFile和MemStore组成
⼀个StoreFile对应于⼀个HFile和⼀个列族
HFile和WAL作为序列化⽂件保存在HDFS上
Client与RegionServer交互
HBase物理架构 - RegionServer-2
功能
负责管理HBase的实际数据
处理分配给它的Region
刷新缓存到HDFS
维护HLog
执⾏Compaction
负责处理Region分⽚
HBase逻辑架构 - Row
Rowkey(⾏键)是唯⼀的并已排序
Schema可以定义何时插⼊记录
每个Row都可以定义⾃⼰的列,即使其他Row不使⽤
相关列定义为列族
使⽤唯⼀时间戳维护多个Row版本
在不同版本中值类型可以不同
HBase数据全部以字节存储
HBase元数据管理
数据管理⽬录
系统⽬录表hbase:meta
存储元数据
ZooKeeper存储hbase:meta表的位置信息
HBase实际数据存储在HDFS上
HBase Shell
HBase Shell是⼀种操作HBase的交互模式
⽀持完整的HBase命令集
命令类别命令
General version, status, whoami, help
DDL alter, create, describe, disable, drop, enable, exists, is_disabled, is_enabled, list
DML count, delete, deleteall, get, get_counter, incr, put, scan, truncate
Tools assign, balance_switch, balancer, close_region, compact, flush, major_compact, move, split, u
nassign, zk_dump Replication add_peer, disable_peer, enable_peer, remove_peer, start_replication, stop_replication HBase操作-1
通过hbase shell进⼊
version --查看版本
status  --查看集状态
whoami  --查看
help
基本操作
create 'customer',{NAME=>'addr'},{NAME=>'order'}--创建⼀个表 list                                              --列出HBase所有的表
desc 'customer'--查看表的详细信息
put 'customer','jsmith','addr:city','montreal'--添加数据
get 'customer','jsmith'--获取数据
经济发展理论将⽂档数据导⼊HBase
##通过hbase shell导⼊⽂档数据
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator=,  \
-lumns="HBASE_ROW_KEY,order:numb,order:date" \ customer file:///home/vagrant/hbase_import_data.csv
HBase Java API
使⽤Java API操作HBase
创建Maven项⽬并添加依赖
使⽤Java API开发代码
创建表,查看表,删除表
金东进添加数据,查看数据,删除数据
打包、上传Jar包并测试
// Get client admin
Configuration config = ate();
config.Path("/opt/install/hbase/l");
config.Path("/opt/install/hadoop/etc/hadoop/l"); connect= ateConnection(config);
admin = Admin();
// 执⾏表操作
多器官功能衰竭admin.disableTable()
admin.deleteTable()
admin.listTable()

本文发布于:2024-09-22 17:29:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/325951.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   扩展   查看   模型   数据库
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议