总所周知,Hadoop生态体系非常庞大,里面涵盖了各种大数据组件。随着技术的不断演讲,有点组件已经逐渐退出了历史舞台,比如当前很少使用的组件storm、Tez、Presto等。因此,首先总结hadoop的生态组件,然后对组件进行功能说明。
该组件的功能及脑图会持续更新。。。
关键组件说明:
1.HDFS(分布式文件系统)——核心
源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
HDFS是整个hadoop体系的基础,负责数据的存储与管理。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。
client:切分文件,访问HDFS时,首先与NameNode交互,获取目标文件的位置信息,然后与DataNode交互,读写数据
NameNode:master节点,每个HDFS集群只有一个,管理HDFS的名称空间和数据块映射信息,配置相关副本信息,处理客户端请求。
DataNode:slave节点,存储实际数据,并汇报状态信息给NameNode,默认一个文件会备份3份在不同的DataNode中,实现高可靠性和容错性。
Secondary NameNode:辅助NameNode,实现高可靠性,定期合并fsimage和fsedits,推送给NameNode;紧急情况下辅助和恢复NameNode,但其并非NameNode的热备份。
2.MapReduce(分布式计算框架)——核心
源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。
JobTracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给TaskTracker。
TaskTracker:slave节点,运行 Map task和Re