5月21日第十四次早课Hadoop

1.hadoop是什么

广义就是hadoop生态圈,狭义就是单指hadoop

2.hadoop三大组件是什么?分别做什么

HDFS             存储

MapReduce   计算

YARN            资源和作业调度平台 计算组件都会on yarn

3.hdfs在部署时,要配置信任关系,请问root和hadoop用户部署时,区别是什么

root的权限最高,可以不用管,普通用户需要修改

非root权限 要记得chmod 600 authorized_keys

4.hdfs三个进程是什么

NN:名称节点

DN:数据节点

SNN: 第二名称节点

5.一个文件500M,请问多少个块

500/128=3.90625  所以需要4块

6.假如副本数为3,上题中的实际存储为多少

3*500 =1500M 

7.谈谈你们对hdfs读和写流程的理解 有什么不一样

读是inputStream

写是outputStream

读流程:

1、客户端发送请求,调用DistributedFileSystem API的open方法发送请求到Namenode,获得block的位置信息,因为真正的block是存在Datanode节点上的,而namenode里存放了block位置信息的元数据。

2、Namenode返回所有block的位置信息,并将这些信息返回给客户端。

3、客户端拿到block的位置信息后调用FSDataInputStream API的read方法并行的读取block信息,图中4和5流程是并发的,block默认有3个副本,所以每一个block只需要从一个副本读取就可以。

4、datanode返回给客户端。

写流程:

1、客户端发送请求,调用DistributedFileSystem API的create方法去请求namenode,并告诉namenode上传文件的文件名、文件大小、文件拥有者。

2、namenode根据以上信息算出文件需要切成多少块block,以及block要存放在哪个datanode上,并将这些信息返回给客户端。

3、客户端调用FSDataInputStream API的write方法首先将其中一个block写在datanode上,每一个block默认都有3个副本,并不是由客户端分别往3个datanode上写3份,而是由

     已经上传了block的datanode产生新的线程,由这个namenode按照放置副本规则往其它datanode写副本,这样的优势就是快。

4、写完后返回给客户端一个信息,然后客户端在将信息反馈给namenode。

5、需要注意的是上传文件的拥有者就是客户端上传文件的用户名,举个例子用windows客户端上传文件,那么这个文件的拥有者就是administrator,和linux上的系统用户名不是一样的。

8.nn是做什么的

NameNode: 文件系统的命名空间(面试题)

 1.文件名称

2.文件目录结构

3.文件的属性(权限 创建时间 副本数)

4.文件对应哪些数据块-->数据块对应哪些分布在哪些DN节点上 列表 

存储在内存上


9.dn是做什么的

DataNode: 存储数据块+ 数据块的校验和

     与NN通信:

1.每隔3秒发送1次心跳

2.每隔10次心跳发送一次blockReport

存储在磁盘上

10.snn是做什么的

SecondaryNameNode: 当HA时,SNN不存在了

        存储: 命令空间镜像文件fsimage + 编辑日志editlog

作用: 定期合并 fsimage +editlog 为新的fsimage,推送给NN,称为检查点 checkpoint

参数: dfs.namenode.checkpoint.period 3600s

11.谈谈副本放置策略,客户端假如为DN节点,那么第一个副本在哪

放当前dn节点

12.谈谈对jps命令的理解

jps就是把/tmp下对应用户的进程信息显示出来,并不代表实际的进程信息

13.谈谈对pid文件的理解

pid文件记录了进程的ID

14.shell脚本编写第一行是什么

#!/bin/bash 

15.怎样动态变量

    ``

16.if判断要注意什么

if判断里的条件开头和结尾都要空格

17.调试哪两种

在shell脚本第一行添加 -x

sh -x shellName 

18.root用户想要使用hadoop执行 date命令,请问命令和参数是什么

su - hadoop -c data

你可能感兴趣的:(5月21日第十四次早课Hadoop)