hadoop三大核心:HDFS、YARN、MapReduce

hadoop四大模块: Common、HDFS、YARN、MapReduce

Hadoop Common:为其它Hadoop模块提供基础设施

Hadoop Distributed File System (HDFS):一个高可靠、高吞吐量的分布式文件系统;来源于google的GFS分布式文件系统。  

  • 易于扩展的分布式文件系统
  • 运行在大量的普通廉价机器上,提供容错机制
  • 为大量用户提供性能不错的文件存取服务 

Haddop YARN:一个新的基础框架,集群资源统一管理与任务调度

Hadoop MapReduce:一个分布式的离线并行计算框架

 

 

HDFS的设计目标

  • 存储量大
  • 自动快速检测应对硬件错误
  • 流式访问数据
  • 移动计算比移动数据本身更划算
  • 简单一致性模型
  • 异构平台可移植

HDFS 的优势:

  • 1.高可靠性:Hadoop一般都在成千的计算机集群之上,且可以搭建hadoop的高可靠集群,及内部容错功能优秀
  • 2.高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中
  • 3.高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 4.高容错性:Hadoop能够自动保存数据的多个副本,并且能免自动将失败的任务重新分配。

HDFS的缺点:

  • 1.不适合低延迟数据访问
  • 2.无法高效存储大量小文件
  • 3.不支持多用户写入及任意修改文件

HDFS三个服务:

1.namenode  metadata元数据  ----老板

2.secondary namenode  ---秘书

3.datanode ---码农

数据:数据内容

元数据:描述数据的数据--文件名称、大小、所属人、地址.......128k

HDFS的架构图:

Hadoop与hdfs关系 hadoop和hdfs_HDFS

 

ABCDE是服务器,Name Node与服务器之间是主从关系

机架:存放多个服务器

数据块(block):假如一个文件为200M,一个block存128M ,则另一个block存72M

元数据:镜像文件(Fsimage) + 日志文件(Edits,用户操作文件的详细流水信息)

三大服务的工作职责:

Namenode:是一个中心服务器,单一节点,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。2.0,中心服务器,可以是多个节点了。

文件操作:Namenode负责文件元数据的操作,datanode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过namenode,只会询问它跟那个datanode联系,否则namenode会成为系统的瓶颈。

副本存放在哪些datanode上由namenode来控制,根据全局情况做出块放置决定。读取文件时,namnode尽量让用户先读取最近的副本,降低带块消耗和读取延时

namenode:全权管理数据块的复制,它周期性地从集群中的每个datanode接收心跳信号和块状态报告。接收到心跳信号,意味着该datanode节点工作正常。块状态报告包含了一个该datanode上所有数据块的列表。

datanode每3秒向namenode发送一次心跳信号,如果namenode 10分钟内没有收到心跳信号,则判断datanode失效,将副本转移到其它datanode

块状态信息报告,每1个小时,向namenode报告一次。

 

写数据流程:

Hadoop与hdfs关系 hadoop和hdfs_Hadoop与hdfs关系_02

 

读数据流程:

Hadoop与hdfs关系 hadoop和hdfs_HDFS_03

 

参考书籍:hdfs技术内幕........