Hadoop面试知识点

一.Hadoop

1.Hadoop 主要有以下几个优点

(1)高扩展性:Hadoop支持集群节点的动态增加,方便集群的扩展 ,可以根据需要扩展到上千节点
(2)高容错性:Hadoop能够自动保存数据的多个副本,当有集群数据丢失时,能自动实现数据备份。
(3)高效性:Hadoop可以充分地利用网络、磁盘I/O资源和备份数据实现文件的快速读写。
(4)高可靠性:正在执行的子任务由于某种原因挂掉的话,Hadoop可以自动让其他节点继续执行该子任务,不影响整个任务的执行
(5)低成本:Hadoop集群不用部署在专用服务器上,只需部署在通用的计算机中即可;而且Hadoop生态系统绝大部分都是开源的,用户很容易拿来开发使用

二.HDFS

1.HDFS架构

一个HDFS集群是由一个NameNode(Master)节点和若干个DataNode(Slave)节点组成。
(1)NameNode节点作为主服务器,管理整个文件系统的命名空间和客户端对文件的访问操作,比如打开、关闭、重命名文件或目录等,同时它也负责数据块到具体DataNode的映射
(2)SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息,周期性保存 NameNode的元数据(包括 fsimage和edits)
(3)DataNode管理存储的数据,处理客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建、删除和复制工作

2.Block

(1)HDFS中采用了数据块作为数据读写单位
(2)HDFS数据块的默认大小是128MB,之所以设置这么大,目的是为了减少寻址开销
(3)数据块只是 HDFS 文件分割的单位,并不是数据存储单位。 比如文件为200MB,它会被分成两个数据块,一个数据块为128MB,另一个数据块为72MB而不128MB

3.HDFS的特点

(1)优点
(1)高容错性
* 上传的数据自动保存多个副本 它是通过增加副本的数量来增加它的容错性的。
* 如果某一个副本丢失,HDFS 机制会复制其他机器上的副本, 而我们不必关注它的实现。
(2)适合大数据的处理。
* 能够处理 GB,TB甚至 PB 级别的数据
* 能够处理百万规模的数据, 非常的大。
(3)流式文件写入
* 一次写入,多次读取。文件一旦写入,不能修改,只能增加
* 这样可以保证数据一致性
(4)可构建在廉价机器上。
* 通过多副本提高可靠性。
* 提供了容错和恢复机制
(2)劣势
(1)低延时数据访问
* 它适合高吞吐率的场景,就是在某一时间内写入大量的数据,但是它在低延时的情况下是不行的,比如毫秒级以内读取数据,这样它是很难做到的
(2)小文件的存储
* 存放大量小文件的话,它会占用 NameNode的大量内存在存储文件、目录和块信息上。这样是不可取的,因为 NameNode 的内存总是有限的。
* 小文件存储的寻道时间会超过文件的读取时间,这违背了 HDFS 的设计初衷。
(3)并发写入,文件随机修改
* 一个文件只能一个线程写,不能多个线程同时写
* 仅支持文件的追加,不支持文件的随机修改
(4)不支持超强的事务。
* 没有像关系型数据库那样,对事务具有强有力的支持。

4.HDFS的读写数据流程

读:
(1).客户端向 NameNode 发起 RPC 调用,请求读取文件数据
(2).NameNode检查文件是否存在,如果存在则获取文件的元信息(block id及对应的DataNode列表)
(3).客户端收到元信息后选取一个网络距离最近的DataNode,依次请求读取每个数据块,客户端首先要校验文件是否损坏,如果损坏,客户端会选取另外的DataNode请求。
(4).DataNode与客户端建立Socket连接,传输对应的数据块,客户端收到数据缓存到本地,之后写入文件。
(5).依次传输剩下的数据块,直到整个文件合并完成

写:
(1).客户端根namenode通信请求上传文件,namenode检查目标文件和目录是否已存在,判断是否上传,并向客户端返回检查结果
(3).客户端得到上传文件的允许后读取客户端配置,向NameNode请求上传第一个数据块,
(4).Namenode会根据客户端配置来查询DataNode信息,返回3个datanode服务器ABC
(5).client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完成,逐级返回客户端
(6).client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答
(7).当一个block传输完成之后,client再次请求namenode上传第二个block的服务器

5.fsimage和edits

(1)fsimage和edits是NameNode 中两个很重要的文件
(2)fsimage镜像文件包含了整个HDFS文件系统的所有目录、文件的 indoe 信息和数据块到文件的映射
(3)edits 文件主要是在 NameNode 经启动的情况下对 HDFS 进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到 dits 文件中
(4)NameNode数据是保存在内存中的,由 DataNode 其汇报每个节点所保存的相关信息

三.MapReduce

1.MapReduce

MapReduce是一个简单易用的并行计算模型,它将运行于大规模集群上的复杂的并行计算过程高度地抽象为两个函数Map和Reduce。

四.Yarn

1.Yarn

(1).Yarn主要负责集群的资源管理和调度,它不仅可以支持 MapReduce 计算,还支持Hive,HBase,Pig,Spark等应用,这样就可以方便地使用Yarn从系统层面对集群进行统一管理。
(2).Yarn采用 Master-Slave结构,其中ResourceManager为Master, ResourceManager负责整个系统的资源管理和分配,
(3).NodeManager为Slave, NodeManager负责每个 DataNode 上的资源和任务管理

2.Yarn基本框架与组件

(1).Yarn主要由ResourceManager,NodeManager,Container和ApplicationMaster组件组成
(2).ResourceManager
* ResourceManager是Yarn集群的主控节点,负责协调和管理整个集群(所有NodeManager)的资源,响应用户提交的不同类型应用程序的解析,调度和监控等工作。
* 它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationsManager, ASM)
(3).NodeManager 
* NodeManager是Yarn集群从节点,它是Yarn集群当中资源的提供者,也是真正执行应用程序的容器(Container)的提供者 
* NodeManager负责接收ResourceManager的资源分配请求,监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向集群资源调度器ResourceManager汇报Container 的使用信息 通过与ResourceManager配合,负责整个Hadoop集群中的资源分配工作
(3).ApplicationMaster 
* 主要负责向ResourceManager申请执行任务的资源容器,运行任务,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。

3.Yarn工作流程

(1)客户端通 ResourceManager向ApplicationsManager提交应用,将JAR包文件等上传到HDFS的指定目录,并请求一个ApplicationMaster实例
(2).ApplicationsManager生成一个Application ID,ResourceManager将请求转发给调度器,调度器分配一个Container ,然后ResourceManager在这个 Container中启动ApplicationMaster实例,并交由NodeManager对ApplicationMaster实例进行管理
(3)ApplicationMaster向ResourceManager进行注册,注册之后客户端就可以通过查询ResourceManager获得 ApplicationMaster的详细信息
(4)ApplicationMaster通过计算任务数和数据本地性等信息向ResourceManager申请Container,并由ApplicationMaster负责将Container启动。
(5)应用程序的代码在启动的Container中运行,NodeManager把运行的进度、状态等信息发送给 ApplicationMaster
(6)重复步骤(4)(5)直至应用程序运行结束。 ApplicationMaster向ResourceManager取消注册然后关闭,所有用到的Container也归还给系统。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270