本文共 856 字,大约阅读时间需要 2 分钟。
该模型抽象出硬盘读写问题,并将其转化为对一个数据集(由键值对组成)的计算,它是一个批处理系统
传统关系型数据库 | MapReduce |
---|---|
GB数量级 | PB数量级 |
交互式和批处理 | 批处理 |
多次读写 | 一次写入多次读取 |
事务:ACID | 无 |
写时模式 | 读时模式 |
完整性高 | 完整性低 |
非线性横向扩展 | 线性横向扩展 |
这里有几个概念很重要
ACID: (1)原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可以只执行其中的一部分操作。(2)一致性(Consistency):数据库总是从一个一致性的状态转到另一个一致性的状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱加起来应该还得是5000,这就是事务一致性。
(3)隔离性(Isolation):通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。
(4)持久性(Durability):一旦事务提交,则其所做的修改就会永久的保存到数据库中。不会因为系统故障等情况而丢失所做的修改。
读时模式和写时模式: 传统数据库是写时模式(schema on write),即数据在写入数据库时对模式进行检查。Hive数据仓库在数据加载时不进行验证,而是在查询时进行,是读时模式(schema on read)。写时模式有利于提升查询性能,因为数据库可以对列进行索引,并对数据压缩。但作为权衡,此时加载数据会花更多时间。名称 | 描述 |
---|---|
HDFS | 分布式文件系统 |
MapReduce | 编程模型 |
YARN | 资源调度管理器 |
HBase | 分布式数据库 |
ZooKeeper | 分布式配置服务 |
Avro/Flume | 数据序列化 |
Sqoop | 块数据传输 |
Hive | 数据仓库 |
以上是我学习过的内容,现在面临秋招和研究生面试,面试过程中也问到了相关内容,所以现在重新复习一次。
转载地址:http://prqen.baihongyu.com/