Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。
是
Apache
下的一个项目,由
HDFS
、
MapReduce
、
HBase
、
Hive
和
ZooKeeper
等成员组成。其中,
HDFS
和
MapReduce
是两个最基础最重要的成员
Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System
[3]
(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是
MapReduce
引擎,该引擎由 JobTrackers 和 TaskTrackers 组成
hadoop两部分组成
1、分布式文件系统(
HDFS Hadoop distributed FileSystem
)
2、MapReduce
hadoop两大类角色:
1、master 主服务器
2、salve 子服务器
1、分布式文件系统
1、NameNode
作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作(CRUD)
统计数据需要多大的空间,多少个DataNode块,进行存储数据
2、DataNode
管理存储的数据
数据真正储存的节点内容、或者物理地址 存储(blockID-块地址,
data-
数据)
hadoop启动时会将dataNode节点的数据主动上传到NameNode空间中,让所有的数据都让nameNode维护起来,DataNode与NameNode保持心跳(实时通信)实现数据共享、
2、
MapReduce
分布式计算
和
任务处理
JobTrackers 和 TaskTrackers 组成
1、Map 接受数据并且将数据抓换成key \ value形式保存
2、Reduce 对Map进行逻辑处理 排序 、 计算、处理的逻辑处理
同时又两个集中处理的子任务
1、
JobTracker、
分解任务的执行
2、TaskTracker、
任务的执行(分解出来的任务执行(存储在硬盘或DataNode))
HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,假设输入域是 one small step for man,one giant leap for mankind。在这个域上运行 Map 函数将得出以下的键/值对列表:(one,1) (small,1) (step,1) (for,1) (man,1)
MapReduce 流程的概念流
(one,1) (giant,1) (leap,1) (for,1) (mankind,1)如果对这个键/值对列表应用 Reduce 函数,将得到以下一组键/值对:(one,2) (small,1) (step,1) (for,2) (man,1)(giant,1) (leap,1) (mankind,1)
MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果