博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop实战读书笔记(3)
阅读量:6607 次
发布时间:2019-06-24

本文共 2580 字,大约阅读时间需要 8 分钟。

hot3.png

"运行Hadoop"是什么意思?

这意味着在网络分布的不同服务器上运行一组守护进程(daemons)。这些守护进程有特殊的角色,一些仅存在于单个服务器上,一些则运行在多个服务器上。

 

这些角色都有谁?

NameNode(名称节点)

DataNode(数据节点)

Secondary NameNode(次名称节点)

JobTracker(作业跟踪节点)

TaskTracker(任务跟踪节点)

 

分布式存储采用了神马结构?

分布式存储系统被称为Hadoop文件系统,或简称为HDFS

Hadoop Distribution File System

Hadoop在分布式计算与分布式存储中都采用了主/(master/slave)结构。

 

NameNode是什么,干啥的?

Hadoop守护进程中最重要的一个。

NameNode位于HDFS的主端,它指导从端的DataNode执行底层的I/O任务。

NamNode跟踪文件如何被分割成文件块,而这些块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常。

运行NameNode消耗大量的内存和I/O资源。因此,为了减轻机器的负债,驻留NameNode的服务器通常不会存储用户数据或者执行MapReduce程序的计算任务。这意味着NameNode服务器不会同时是DataNode或者TaskTracker

不过NameNode的重要性也带来了一个负面影响-Hadoop集群的单点失效。对于任何其他的守护进程,如果它们所驻留的节点发生软件或硬件失效,Hadoop集群很可能还会继续平稳运行,不然你还可以快速重启这个节点。但这样的方法并不适用于NameNode

 

DataNode是什么,干啥的?

每个从节点会驻留一个DataNode守护进程,来执行分布式文件系统的繁重工作-HDFS数据块读取或者写入到本地文件系统的实际文件中。

当对HDFS文件进行读写时,文件被分割为多个块,由NameNode告知客户端每个数据块驻留在哪个DataNode。客户端直接与DataNode守护进程通信,来处理与数据块相对应的本地文件。而后,DataNode会与其他DataNode进行通信,复制这些数据块以实现冗余。

 

NameNodeDataNode交互?

HDFS中交互,NameNode跟踪文件的元数据。

 

NameNode持有的文件的元数据是?

描述系统中所包含的文件以及每个文件如何被分割为数据块。DataNode提供数据块的备份存储,并持续不断地向NameNode报告,以保持元数据为最新状态。

DataNode上的文件存储是怎么存的?

HDFS上文件是被分成数据块存储的,默认大小(64MB),由NameNode指定这些文件块存储在哪些DataNode中,每个文件块默认有3个副本,确保如果一个DataNode垮掉,数据不会丢失。初始化时,每个DataNode将当前存储的数据块告知NameNode,初始化完成之后,DataNode也会不断的更新本地信息给NameNode,并接收指令。

 

Secondary NameNode是干什么的?

Secondary NameNode SNN是一个用于监测HDFS集群状态的辅助守护进程。就像NameNode一样,每个集群有一个SNN,它通常也独占一台服务器,该服务器不会运行其他的DataNodeTaskTacker守护进程。SNNNameNode的不同在于它不接收或记录HDFS的任何实时变化。相反,它与NameNode通信,根据集群所配置的时间间隔获取HDFS元数据快照。

如前所述,NameNodeHadoop集群的单一故障点,而SNN的快照可以有助于减少停机的时间并降低数据丢失的风险。然而,NameNode的失效处理需要人工干预,即手动地重新配置集群,将SNN用作主要得NameNode

 

JobTracker是什么?

JobTracker守护进程是应用程序和Hadoop之间的纽带。

JobTracker做了些什么?

一旦提交代码到集群上,JobTracker就会确定执行计划,包括决定处理哪些文件、为不同的任务分配节点以及监控所有任务的运行。如果任务失败,JobTacker将自动重启任务,但所分配的节点可能会不同,同时受到预定义的重试次数限制。

 

一个Hadoop集群有几个JobTracker的守护进程?

每个Hadoop集群只有一个JobTracker守护进程,它通常运行在服务器集群的主节点上。

 

TaskTracker是什么?

与存储的守护进程一样,计算的守护进程也遵循主/从架构:JobTracker作为主节点,检测MapReduce作业的整个执行过程,同时,TaskTracker管理各个任务在每个从节点上的执行情况。

每个TaskTracker负责执行由JobTracker分配的单项任务。虽然每个从节点上仅有一个TaskTracker,但每个TaskTracker可以生产多个JVM(Java虚拟机)来并行地处理许多mapreduce任务。

TaskTracker的一个职责是持续不断地与JobTracker通信。如果JobTracker在指定得时间内没有收到来自TaskTracker"心跳",它会假定TaskTracker已经崩溃了,进而重新提交相应的任务到集群中的其他节点。

 

JobTracker是如何调用TaskTracker的?

JobTrackerTaskTracker的交互,当客户端调用JobTracker来启动一个数据处理作业时,JobTacker会将工作切分,并分配不同的mapreduce任务到集群中的每个TaskTracker上。

 

一个典型的Hadoop拓扑结构特点是?

在主节点上运行NameNodeJobTracker的守护进程,并使用独立的节点运行SNN以防主节点失效。在小型集群中,SNN也可以驻留在某一个从节点上,而在大型集群中,连NameNodeJobTracker都会分别驻留在两台机器上。每个从节点均驻留一个DataNodeTaskTracker,从而在存储数据的同一节点上执行任务。

转载于:https://my.oschina.net/u/814431/blog/352902

你可能感兴趣的文章
HDUPhysical Examination(贪心)
查看>>
HTML5 FileAPI
查看>>
使用tdcss.js轻松制作自己的style guide
查看>>
SecureCRTPortable.exe 如何上传文件
查看>>
C++中public、protected及private用法
查看>>
苹果公司的产品已用完后门与微软垄断,要检查起来,打架!
查看>>
顶级的JavaScript框架、库、工具及其使用
查看>>
AYUI -AYUI风格的 超美 百度网盘8.0
查看>>
简明 Python 教程
查看>>
用MPMoviePlayerController做在线音乐播放
查看>>
Java查找算法——二分查找
查看>>
如何构建微服务架构
查看>>
【前端笔记】彻底理解变量与函数的声明提升
查看>>
Android 反编译利器,jadx 的高级技巧
查看>>
二叉搜索树(递归实现)
查看>>
Spring Retry重试机制
查看>>
Android官方架构组件LiveData: 观察者模式领域二三事
查看>>
[Android组件化]组件化数据分享
查看>>
你必须知道的HTTP基本概念
查看>>
当下拉列表数据过大时,该如何应对?
查看>>