Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS

Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。

HDFS

Client

Client(代表用 户) 通过与 NameNode 和 DataNode 交互访问 HDFS 中 的文件。 Client 提供

了一个类似 POSIX 的文件系统接口供用户调用。

NameNode

整个 Hadoop 集群中只有一个 NameNode。 它是整个系统的“ 总管”, 负责管理 HDFS 的目

录树和相关的文件元数据信息。 这些信息是以“ fsimage”( HDFS 元数据镜像文件)和

“ editlog”(HDFS 文件改动日志)两个文件形式存放在本地磁盘,当 HDFS 重启时重新构造出

来的。此外, NameNode 还负责监控各个 DataNode 的健康状态, 一旦发现某个 DataNode 宕

掉,则将该 DataNode 移出 HDFS 并重新备份其上面的数据。

Secondary NameNode

Secondary NameNode 最重要的任务并不是为 NameNode 元数据进行热备份, 而是定期合并

fsimage 和 edits 日志, 并传输给 NameNode。 这里需要注意的是,为了减小 NameNode 压

力, NameNode 自己并不会合并 fsimage 和 edits, 并将文件存储到磁盘上, 而是交由

Secondary NameNode 完成。

DataNode

一般而言, 每个 Slave 节点上安装一个 DataNode, 它负责实际的数据存储, 并将数据信息定期

汇报给 NameNode。 DataNode 以固定大小的 block 为基本单位组织文件内容, 默认情况下

block 大小为 64MB。 当用户上传一个大的文件到 HDFS 上时, 该文件会被切分成若干个 block,

分别存储到不同的 DataNode ; 同时,为了保证数据可靠, 会将同一个 block 以流水线方式写到

若干个(默认是 3,该参数可配置)不同的 DataNode 上。 这种文件切割后存储的过程是对用户

透明的

Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS

MapReduce

Client

用户编写的 MapReduce 程序通过 Client 提交到 JobTracker 端; 同时, 用户可通过 Client 提

供的一些接口查看作业运行状态。 在 Hadoop 内部用“作业”(Job) 表示 MapReduce 程序。

一个 MapReduce 程序可对应若干个作业,而每个作业会被分解成若干个 Map/Reduce 任务

(Task)。

JobTracker

JobTracker 主要负责资源监控和作业调度。JobTracker 监控所有 TaskTracker 与作业的健康状况,

一旦发现失败情况后,其会将相应的任务转移到其他节点;同时 JobTracker 会跟踪任务的执行进

度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合

适的任务使用这些资源。在 Hadoop 中,任务调度器是一个可插拔的模块,用户可以根据自己的

需要设计相应的调度器。

Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS

Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS

由于平台文章篇幅限制,细节内容过多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

小编这里有还一份大数据的学习文档可以免费分享给大家。其中包含:Zookeeper、spark、hadoop、hbase、RabbitMQ、Cassandra 分布式缓存、数据结构等等

资料免费获取方式:关注我 + 转发文章,后台私信【资料】即可免费获取

Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS

Hadoop干货丨阿里高级大数据工程师带你深入了解MapReduce、 HDFS


分享到:


相關文章: