文章目录
Hadoop框架详解
Apachehadoop
大家想了解更多关于hadoop的可以去官网,纯英文,原汁原味
[link]http://hadoop.apache.org/
hadoop主要模块
◆ Hadoop Common: 为其他Hadoop模块提供基础设施
◆ Hadoop HDFS: 一个高可靠、高吞吐量的分布式文件系统
◆ Hadoop MapReduce: 一个分布式的离线并行计算框架
◆ Hadoop YARN: 一个新的MapReduce框架,任务调度与资源管理
◆ Hadoop Ozone: Hadoop的对象存储.
◆ Hadoop Submarine:面向Hadoop的机器学习引擎
主要分析一下HDFS、MapReduce、和Yarn,然后Ozone和Hadoop Submarine的话呢,没有用过,希望用过的大佬可以留下线索,让大家学习一下。
HDFS
HDFS即Hadoop Distributed File System分布式文件系统:主要是分布式存储数据
◆Client 是客户端
◆NameNode(NN)是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。
◆DataNode(DN)在本地文件系统存储文件块数据,以及块数据的校验和。
◆Secondary NameNode(SNN) 用来监控HDFS状态的辅助后台程序,每隔一段时间获 取HDFS元数据的快照
Client
Client(代表用 户) 通过与 NameNode 和 DataNode 交互访问 HDFS 中 的文件。 Client 提供
了一个类似 POSIX 的文件系统接口供用户调用。
Namenode
◆Namenode 是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。
◆文件操作,NameNode 负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟 文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则 NameNode会成为系统的瓶颈。
◆副本存放在哪些DataNode上由 NameNode来控制,根据全局情况做出块放置决定,读取文件时NameNode尽量让用户先读取最近的副本,降低带块消耗和读取延时;
◆Namenode 全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。
Datanode
◆一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳 ;
◆DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息;
◆心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机