1、Hadoop Common
为了支持其他模块的一些公共类,和框架。
2、HDFS(Hadoop Distributed File System)
Hdfs提供高吞吐量的访问能力 , 用来存储数据。具有高容错性,高伸缩性的优点,允许用户将hadoop部署在廉价的硬件上,构建分布式系统。如下图是HDFS的存储图,Hdfs具有横向扩展性,布置单节点的hadoop时候,最小模型是一台master主机和两台slaver节点。如果要扩展datenode节点,只需要在准备好的虚拟机上面拷贝一份hadoop文件,然后导入master的公钥,最后修改一下配置文件(slaver文件,里面加入节点名字。在/etc/hosts文件里加入主机名和要求节点的ip)。
hdfs中节点:namenode NN
datenode DN
secondarynamenode SN
3、Hadoop Yarn 云的操作系统
给部署在yarn上的应用,分配资源,管理资源。(任务调度)job / application 调度。Yarn的架构图如下:(mapreduce跑在yarn系统上)。下边有更为详细的解析,这里只简单说明。
Yarn 中的node:
ResourceManager RM
NodeManager NM
4、Hadoop Mapreduce
上图是基于yarn系统的并行的处理大数据的框架,Mapreduce担当并行的计算分析任务。允许用户在不了解分布式系统底层细节的情况下开发并行,分布式的应用程序。Map和reduce,map是映射,reduce是规约。我用自己的理解方式说,Map就是一种映射计算,让我们知道数据块的位置属性等,Reduce就是一种各种数据块分别求和的方式。以wordcount为例,在map阶段,map函数在每个单词后面加上一个1, 在reduce阶段,reduce函数将相同单词后面的1都加起来。其中hadoop框架实现过程中的排序。