一、HDFS简介
1.Hadoop2介绍
2.HDFS概述
3.HDFS读写流程
1.Hadoop2的介绍
(1)Hadoop2框架的核心设计:HDFS、MapReduce、YARN(使得Hadoop2可以运行更多的框架)、other
(2)Hadoop1:MapReduce、HDFS
(3)Hadoop2主要改进:
YARN:使Hadoop2可以运行更多种类的框架
NameNodeHA:master-slave架构中的master,存储于源数据?可以实现HA:activeNameNode挂掉以后,standbyNameNode可以立即搭起并提供服务
HDFSFederation:Hadoop源数据放于NameNode内存当中,内存限制了整个集群的规模,federation是让多个NameNode组成一个联邦,共同管理NameNode,这样就可以扩大Hadoop1的集群规模
HadoopRPC序列化扩展性:Hadoop1中RPC序列化扩展性差,很难添加新的数据,把数据类型独立出来作为一个可插拔的模块。
2.HDFS概述
分布式文件系统
(1)主要特性:
支持超大文件;
检测和快速应对硬件故障;
流式数据访问;
简化一致性模型;
(2)不适合的场景:
低延迟数据访问;
大量的小文件;
多用户写入文件,修改文件
(3)HDFS数据块:Hadoop1中默认HDFS数据块大小是64M,Hadoop2中默认HDFS数据块是128M,以Linux上普通文件 的形式保存在数据节点的文件系统中,数据块是HDFS的文件存储处理的单元。
(4)数据块的好处:
HDFS可以保存比存储节点单一磁盘大的文件;
简化了存储子系统,简化了存储管理,也消除了分布式管理文件元数据的复杂性;
方便容错,有利于数据复制;
3.HDFS的读写流程
读流程
写流程
创建子路径的流程
删除流程
三.YARN原理
Hadoop2新增的资源管理器
1. YARN产生背景
2. YARN基本架构及原理
1. YARN产生背景
(1) Hadoop1中的MapReduce弊端
扩展性差;
可靠性差;(单点故障)
资源利用率低;(基于槽位的资源划分,mapslot,reduceslot不可共享,浪费资源)
无法支持多种计算框架并存;(基于磁盘的离线计算,但不包括内存计算,流式计算,迭代式计算)
多个计算框架可以:资源利用率高,运维成本低,数据共享
2. YARN基本框架及原理
(1) YARN的定义
是一种Hadoop资源管理器,是一种通用资源管理系统,可为上一层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
(2) 应用场景
通用的统一的资源管理系统:
长应用程序;长期运行的
短应用程序
(3) 主要组件
ResourceManager:YARN的master
ApplicationMaster:每个作业的重启失败的任务
NodeManager:整个YARN的slave
Container:动态的资源抽象
三.MapReduce的原理介绍
1.MapReduce介绍
2.MapReduce2运行原理
3.shuffle及排序
1. MapReduce介绍
MapReduce是面向大数据并行处理的计算模型、框架和平台。
五个步骤,shuffle是map和Reduce的核心
2. MapReduce2运行原理
3.shuffle及排序
Map,Reduce之间,合并排序等
MapReduce的map端输出作为输入传递给reduce端,并按键排序的过程称为shuffle。
Prtition分区
mapreduce的编程
mapclass;
reduceclass;
main:
创建configuration的实例
创建Map Reduce的job实例
设置输入路径:FileInputFormat.addInputPath()
设置一个HDFS上没有的子路径:FileOutputFormat.setOutputPath()
设置mapclass
设置reduceclass
设置reduce的个数:setNumReduceTasks();
设置map的key/value的类型
设置输出的key/value的类型
设置job的jar包:setJarByClass()
设置提交:setForCompletion(true)