NOSQL综述和hbase基础语法
一、什么是NOSQL
NoSQL:not only SQL,非关系型数据库
NoSQL是一个通用术语
- 指不遵循传统RDBMS模型的数据库
- 数据是非关系的,且不使用SQL作为主要查询语言
- 解决数据库的可伸缩性和可用性问题
- 不针对原子性或一致性问题
二、NOSQL的优缺点
NoSQL和关系型数据库对比:
NOsql的特点:
- 最终一致性
- 应用程序增加了维护一致性和处理事务等职责
- 冗余数据存储
但是NoSQL != 大数据!!!
NoSQL基本概念:
三大基石:CAP、BASE、 最终一致性
分类如下:
三、hbase概述
1.HBase是一个领先的NoSQL数据库
- 是一个面向列存储的数据库
- 是一个分布式hash map
- 基于Google Big Table论文
- 使用HDFS作为存储并利用其可靠性
2.HBase特点
- 数据访问速度快,响应时间约2-20毫秒
- 支持随机读写,每个节点20k~100k+ ops/s
- 可扩展性,可扩展到20,000+节点
3.发展史
四、hbase应用场景
4.1.增量数据-时间序列数据
高容量,高速写入
HBase之上有OpenTSDB模块,可以满足时序类场景,比如传感器,系统监控,股票行情监控等
4.2.信息交换-消息传递
高容量,高速读写
通信、消息同步的应用构建在HBase之上,比如email,FaceBook等
4.3.内容服务-Web后端应用程序
高容量,高速读写
头条类、新闻类的的新闻、网页、图片存储在HBase中
4.4.HBase应用场景示例
9000 memcached instances,4000 shards mysql
2011全部迁移到HBase
Alibaba
自2010年以来,HBase一直为阿里搜索系统的核心存储
当前规模
3 个集群,每个有1000+ nodes
在Yarn上与Flink共享
每天提供超过10M+ ops/s 的服务
五、hbase架构
HBase采用Master/Slave架构
- HMaster
- RegionServer
- Zookeeper
- HBase
- Client
- Region
HMaster的作用
-
是HBase集群的主节点,可以配置多个,用来实现HA
-
处理元数据的变更 监控RegionServer
-
负责RegionServer的负载均衡
-
处理RegionServer故障转移
-
通过ZooKeeper发布自己的位置给客户端
HBase元数据管理
- 数据管理目录
- 系统目录表hbase:meta
- 存储元数据 ZooKeeper
- 存储hbase:meta表的位置信息
- HBase实际数据存储在HDFS上
六、hbase基本语法
1.用户权限
user_permission [‘表名’]
grant ‘用户名’,‘RWXCA’
2.表
创建:create ‘表名’,{NAME=>‘列簇名’},{NAME=>‘列簇名’}
删除:disable ‘表名’ —>drop ‘表名’
改: snapshot ‘表名’,‘镜像名’
clone_snapshot ‘镜像名’,‘表名’
delete_snapshot"镜像名"
查:list
3.行
插入数据:put ‘表名’,‘行键’,’‘列簇名:列名’,‘值’
可以单独删除行,行内的数据全部删除
4.列簇
增加:alter’表名’,NAME=>‘列簇名’
删除:… ,METHOD=‘delete’
改:先加后删
查:get ‘表名’,‘行键’,‘列簇名’
5.列:
覆盖
6.批量导入文件
hbase org.appche.hadoop.hbase.mapreduce.ImportTsv
-Dimporttsv.separator=","
-Dimporttsv.columns=“HBASE_ROW_KEY,
emp:name,emp:job_title,emp:company,time:sDate,time:eDate”
customer file:///root/emp_basic.csvpu