一、基础概念 & 适用场景
1、分布式文件系统(HDFS)
HDFS是Hadoop分布式文件系统,HDFS有如下技术特点和应用场景:
- 适合处理超大文件,数量级达到GB、TB甚至PB级
- 支持集群规模的动态扩展
- 适用于流式数据读写的场景,即“一次写入,多次读取”
- 具有高容错性,数据块可以保存多个副本,实现负载均衡
- 对硬件要求低,能够运行在廉价的商用机器集群
不适用于如下场景:
- 不适合需要高效存储大、量小的场景
- 不适合低延迟的数据访问场景
- 不适合多用户同时写和任意修改该文件场景
2、分布式计算框架(MapReduce)
MapReduce是一个分布式并行编程模型,将计算任务分布在成百上千个节点组成的集群进行并行计算,并返回计算结果。
MapReduce计算模型有如下优点和使用场景:
- 具有高度可扩展性,可动态增加/削减计算节点
- 具有高容错能力,支持任务自动迁移、重试和预测执行,不受单点故障影响
- 能实现灵活的资源分配和调度,达到资源利用的最大化
- 可部署在几千台机器的超大规模集群尚,使MapReduce可以处理具有超大规模数据的业务场景
- MapReduce模型使用方便,易于编程,简化了分布式程序设计,提高了开发效率且支持多开发语言
- MapReduce计算的时延较高,对实时性要求较高的场景不合适使用
- MapReduce适合顺序批量处理数据,处理随机访问的能力不足,因此需要处理随机数据的场景也不适用MapReduce
3、分布式集群管理系统(Zookeeper)
Zookeeper是一个针对大型分布式系统的可靠协调系统。在大数据系统中,Zookeeper为Hadoop生态系统中各组件提供功能支撑。
Zookeeper主要有如下常见应用场景:
- 为分布式应用系统提供同一的配置管理信息
- 为分布式应用系统提供同一的命名服务
- 提供基于简单原语的分布式同步操作
- 集群管理
4、数据仓库工具(Hive)
- 海量数据的离线分析
- 结构化数据的处理
5、分布式数据库(HBase)
- 存储和查询半结构化和非结构化的数据
- 存储和查询记录稀疏的数据
- 存储和查询超大数据量的数据
- 业务场景简单,不需要全部关系数据库特性的场景