文章目录
Hadoop的生态体系
- 分布式存储系统(HDFS)
是分布式计算中数据存储管理的基础。
具有高容错性的数据备份机制,能检测和应对硬件故障,并在低成本的通用硬件上运行。
具备流式的数据访问特点,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
- MapReduce分布式计算框架
是一种计算模型,用于大规模数据集(大于1TB)的并行运算。
Map是对数据集上的独立元素进行指定的操作,生成键值对形式中间结果
Reduce是对中间结果种 相同的 ‘键’ 的所有 ‘值’ 进行规约,来得到最终结果
- YARN资源管理平台
是Hadoop2.0的资源管理器,为上层应用提供统一的资源管理和调度
- Sqoop数据迁移工具
主要用于在Hadoop与传统的数据库间进行数据的转换,它可以将关系型数据库(MYSQL、Oracle)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系数据库中
- Mahout数据挖掘算法库
提供了一些可扩展的机器学习领域经典算法的实现
- HBase分布式数据库
针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。
提供了对大规模数据的随机、实时读写访问
HBase中保存的数据可以使用MapReduce处理
- Zookeeper分布式协调服务
为分布式应用提供一致性服务的软件。
提供的功能包括配置维护、域名服务、分布式同步、组服务等用于构建分布式应用
- Hive基于Hadoop的数据仓库
可以将结构化数据文件映射为一张数据库表,将SQL语句转换为MapReduce任务进行运行
- Flume日志收集工具
支持在日志系统种定制各类数据发送方,用于收集数据
提供对数据进行简单处理。
Hadoop的版本
开源社区版:由Apache软件基金会维护的版本
商业版:由第三方商业公司在社区版进行修改的版本,如Cloudera公司的CDH版本
Hadoop1.x
内核主要由 分布式存储系统HDFS和分布式计算机框架MapReduce两个系统组成
HDFS由一个NameNode和多个DataNode组成,DataNode负责存储数据,但是数据存储到哪儿个DataNode节点上,则由NameNode决定。
MapReduce运行在Hadoop集群之上,由一个JobTracker和多个TaskTracker组成,JobTracker只有一个负责接收用户提交的计算任务,将计算任务分配给多个TaskTracker执行、跟踪。
Hadoop2.x
由 分布式存储系统HDFS和分布式计算机框架MapReduce,新增资源管理框架YARN 三个系统组成
可以同时启动多个NameNode,一个处于工作active状态,一个处于待命standby状态,这种机制叫Hadoop HA。
MapReduce是运行在YARN集群上的离线处理框架,它的运行环境不再由JobTracker和TaskTracker等服务组成,而是变成通用资源管理YARN和作业控制进程ApplicationMaster。
Hadoop3.x