一.Hadoop框架介绍
hadoop是Apache发布的开源分布式基础架构
他的两个核心是
- HDFS
HDFS是Hadoop的文件管理系统,负责了海量数据的存储,是做大数据的基础 - MapReduce
MapReduce则是为了海量数据提供了计算
两部分就组成了Hadoop的分布式基础架构
二.HDFS介绍
HDFS作为Hadoop为存储海量数据,自然有着与传统文件系统有着不同的结构,它是以Linux文件系统的基础的架构,构建里一套分布式文件系统,它是由一个NameNode和多台DataNode组成的。
他通过将文件进行划分,分成多个数据块进行存储。(默认64MB,一般设置为128MB,备份X3)
NameNode
- 管理文件系统的命名空间,存放文件元数据
- 维护文件系统的所有文件和目录,文件与数据块的映射
- 记录每个文件中各个块所在数据节点的信息
DataNode
- 存储并检索数据块
- 香NameNode更新所存储块的列表
优点
- 适合大文件存储,有副本策略
- 可以构建在廉价机器上,有一定容错和恢复机制
- 支持流式数据访问,一次写入多次读取
缺点
- 不适合大量小文件存储
- 不适合并发写入,不支持文件随机修改
- 不支持随机读等低延时的访问方式
二.Yarn
yarn是Hadoop 中的资源管理器,MapReduce通过yarn来调度。
ResourceManager
- 分配和调度资源
- 启动并监控ApplicationMaster
- 监控NodeManager
ApplicationMaster
- 为MapReduce类型程序申请资源,并分配给内部任务
- 负责数据的切分
- 监控任务的执行与容错
NodeManager
- 管理单个节点的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
四.MapReduce
MapReduce采用分而治之的编程思想
- 输入一个大文件,通过split之后,将其分为多个分片
- 每个文件分片由单独的机器去处理,这就是Map方法
- 将每个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法