目录
Hadoop框架
1.hadoop的优势
2.hadoop的组成
1.hadoop1.x和hadoop2.x的区别
2.HDFS
3.Yarn
4.MapReduce
Hadoop框架
1.hadoop的优势
1)高可靠性:hadoop底层维护多个数据副本,即使集群中某台机器发生故障,数据也不会丢失
2)高扩展性:计算在集群上运行,集群可扩展数以千计的节点(机器)
3)高效性:多个节点,计算可以并行
4)高容错性:自动将失败的任务重新分配
2.hadoop的组成
1.hadoop1.x和hadoop2.x的区别
yarn产生原因:
hadoop1.x中MapReduce本身存在着一些问题:
1)JobTracker单点故障问题;如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了。
2)JobTracker承受的访问压力大,影响系统的扩展性。
3)不支持MapReduce之外的计算框架,比如Storm、Spark、Flink等。
2.HDFS
hdfs架构
hdfs是主从结构,主节点是NameNode(设置高可用时,有备用主节点SecondaryNameNode),从节点为DataNode
1)NameNode: (相当于一本书的目录)管理文件系统的命名空间,维护元数据信息,处理客户端请求。
2)DataNode:(相当于一本书的内容)存储数据,通过心跳机制定期(默认3秒)与NameNode通信,向NameNode报告自身的块信息
3)SecondaryNameNode:1.辅助NameNode,分担工作量,完成元数据文件fsimage、 edits的定期合并,推送给NameNode。2.紧急状况下,可辅助NameNode恢复数据
HDFS存储机制:元数据
元数据(Metadata)
信息存放在NameNode内存当中 包含:HDFS中文件及目录的基本属性信息(如拥有者、权限信息创建时间等)、文件有哪些block构成、 以及block的位置存放信息。
元数据信息持久化
参考:
fsimage(元数据镜像检查点文件):里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息;
edits(编辑日志文件,记录写操作):edits保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。
注:block的位置信息并不会做持久化,仅仅只是在DataNode启动汇报给NameNode,存放在NameNode内存空间内
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge,这个过程称为checkpoint。
checkpoint的作用
namenode和secondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从 secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。
HDFS存储机制:block
• Block是HDFS的最小存储单元 • Block的大小 -默认大小:128M(HDFS 1.x中,默认64M)
-若文件大小不足128M,则会单独成为一个block -实质上就是Linux相应目录下的普通文件
-名称格式:blk_xxxxxxx
• Block和元数据分开存储,Block存储于DataNode,元数据存储于NameNode
• Block多副本 -默认副本数:3
-机架感知:将副本存储到不同的机架上,实现数据的高容错
-副本均匀分布:提高访问带宽和读取性能,实现负载均衡,避免出现数据倾斜
3.Yarn
Job提交流程
4.MapReduce
MapReduce的核心思想:
1.分而治之:将一个大的计算任务,分成多个重复的小的计算任务并行
2.构建抽象模型:Map和Reduce,我们只需要告诉他做什么,而不需要告诉他怎么做,
它提供了接口,我们只需要实现接口,重写一些方法,就可以进行调用
MapReduce的原理