简介:Hadoop是基于JAVA语言开发的Apache开源框架,以分布式文件系统 HDFS(Hadoop Distributed File System) 和 MapReduce(Google MapReduce 的开源实现) 为核心的 Hadoop,为用户提供了系统底层透明的分布式基础构架。
Hadoop 三大核心:
HDFS: Hadoop Distributed File System 分布式存储系统
提供了高可靠性、高扩展性和高吞吐率的数据存储服务的分布式存储系统
YARN: Yet Another Resource Negotiator 资源管理调度系统
负责集群资源的管理和调度
Mapreduce:分布式运算框架(计算向数据移动)
具有易于编程、高容错性和高扩展性等优点。
Hadoop的特点:
1.HDFS架构
HDFS(Hadoop Distributed File System)是建立在一组分布式服务器节点上的本地文件系统之上的分布式文件系统。HDFS采用的是经典的主-从式结构。
HDFS组件包括:client、NameNode、DataNode、Secondary NameNoda,其中:
Client客户端
NameNode:master节点,是整个文件系统的管理节点。他维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。文件包括:(fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息、edits:操作日志文件、fstime:保存最近一次checkpoint的时间)
DataNode:Slaves节点,负责存储实际的Block数据块以及执行数据块的读、写操作
Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能替换 NameNode 并提供服务。
2.Secondary NameNode 工作机制
3.HDFS读流程
HDFS的文件读取原理,主要包括以下几个步骤:
4.HDFS写流程
HDFS的文件写入原理,主要包括以下几个步骤:
4.Yarn
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序。
架构:
从YARN的架构图来看,它主要由ResourceManager、NodeManager、ApplicationMaster和Container等以下几个组件构成。
ResourceManager(RM)
YARN分层结构的本质是ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager将各个资源部分(计算、内存、带宽等)精心安排给基础NodeManager(YARN的每节点代理)。ResourceManager还与ApplicationMaster一起分配资源,与NodeManager一起启动和监视它们的基础应用程序。在此上下文中,ApplicationMaster承担了以前的TaskTracker的一些角色,ResourceManager承担了JobTracker 的角色。
总的来说,RM有以下作用:
ApplicationMaster(AM)
ApplicationMaster管理在YARN内运行的每个应用程序实例。ApplicationMaster负责协调来自ResourceManager的资源,并通过NodeManager监视容器的执行和资源使用(CPU、内存等的资源分配)。总的来说,AM有以下作用:
NodeManager(NM)
NodeManager管理YARN集群中的每个节点。NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1通过插槽管理Map 和Reduce任务的执行,而NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。总的来说,NM有以下作用:
Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。总的来说,Container有以下作用:
对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息
5.Yarn 的工作机制
Yarn运行机制
工作机制详解
6. Yarn 的 Job 提交流程
7.Hadoop生态圈的组件&简要描述
8.NameNode与SecondaryNameNode 的区别与联系
区别:
联系:
9.Hadoop1.0,2.0,3.0的区别
10.MapReduce的Shuffle过程
MapReduce数据读取并写入HDFS流程实际上是有10步
11.MapReduceShuffle过程的优化
1.合并小文件:
2.数据输入小文件处理
3.Map阶段
4.Reduce阶段
12.Hadoop序列化和反序列化及自定义bean对象实现序列化
1.序列化和反序列化
2.自定义bean对象要想序列化传输步骤及注意事项:
3.Hadoop估算reduce个数的策略
4.如何设定map和reduce个数 60%