Hadoop整理

Hadoop
Q1:现在有1T 文件,以数字、行进行存储,其中有两行文本是相同的,请找出这两行;

  1. 划分文件: 根据内存对 hashcode 来取模,(根据内存限制大致划分n个文件,hashcode%n),得到的余数作为文件的名字,文件的内容是行的内容;
  2. 对文件内容进行遍历,相同的两行数据都在同一个文件中;

Q2:给整个数值文件做一个正序的全排序;

采用两部排序的方式:
思路一

  1. 每次拿出一部分小数据来排序,这些排序好的小文件的特点是内部有序,但是区间无序。
  2. 最后再采用归并算法来对数据进行合并;

思路二

  1. 预先给每个文件设定一个存储范围,遍历数值文件,把每个数分别存放在这些文件中。存放完后,这些文件的特点是区间有序,但是内部无序;
  2. 对这些文件分别进行排序,再将其合并;

Q3:集群的作用是什么?

对文件做切割,并在每个文件上做并行计算。

Q4:数据迁移的作用是什么?

迁移的目的是让两个相同行放在同一个服务器上,通过移动程序来对不同服务器上的数据做运算。

Q5:什么情况下内存会与磁盘发生交换?

sql 语句把磁盘中的表数据加到内存中,在内存中修改完后,再写回到表中,这是一次交互。内存与磁盘交互的必要性体现在:假定内存中的数据加载过多,已经满了,溢写到磁盘之上,腾出数据来在内存中存新的数据。如果溢写的数据写到磁盘之后,客户端有需求需要来查询这些数据,需要不断的让内存和磁盘进行交互。

Q6:为什么NameNode要做元数据持久化?

NameNode是基于内存存储,主节点只维护元数据信息,不会和磁盘发生交换。为了快速处理,所有处理都在内存中完成。但因为内存容易掉电丢失,所以需要做一个持久化操作。(把内存当中的元数据信息以文件的形式永久的保存在磁盘之上)

Q7:序列化和反序列化解释;

序列化就是把文件对象转化为二进制的字节码文件,转化的好处就是兼容性,为跨平台跨节点跨文件使用。反序列化就是把 fsimage 的二进制变为文件。

Q8:Hadoop集群的启动过程。

Hadoop 集群启动时,会先去读 fsimage 文件,同时会产生 edits log 文件 (都为空)。edits 和 fsimage 会做一个合并的工作,合并成一个新的 fsimage, 这个 fsimage 无论启动多少次,都不会消失,而 editslog 会不断的进行增长,当 editslog 太大时,利用 fsimage 的文件恢复快的性能,以它做基础作为恢复,就会产生一个重新合并的工作;

Q9:Hadoop 恢复时以 fsimage 为基础,将 fsimage 和 edits 做合并工作,怎么来做合并?

引入SecondaryNameNode(SNN)来负责合并;(Hadoop1.0 )

Q10:NameNode作用?
NameNode 的作用是维护存放在集群中块文件的元数据信息。 从节点用来维护管理自己的块的信息,每个从节点之上都会有 datanode 的角色,而每个 datanode 只负责维护管理放在自己节点之上的块文件。

Q11:主从架构?
主从架构:主节点管理文件的元数据信息 MetaData,从节点负责执行处理具体的文件数据,即一个个的块文件。主节点的每一个角色用来维护元数据信息的完整性,从节点的角色用来维护本节点的资源信息,及具体执行放在本节点之上的数据块的运算模式。

Q11:HDFS读写流程?

  1. 首先写流程解决的是:把数据切成块,再上传到不同的节点之上的过程怎么完成。读流程解决的是从节点中不同的服务器读取不同块信息的过程怎么完成。
  2. 写流程:
    2-1 client 通过分布式文件系统对象创建一个输出流(往磁盘文件中写),在写的时候创建一个路径,依据路径指向的位置,来和namenode交互;
    2-2 client按照128M切分文件,切分完文件后,client请求namenode第一个block上传的位置,每个block块有三个副本,3个副本分发到不同节点上;
    2-3 client只和第一个节点来联系,先向第一个dn1上传第一个block,dn1接收完后,向dn2传输,进行管道的流式传输,当所有block块上传完之后,客户端向namenode响应已经传输完成;
  3. 读流程:
    3-1 client 请求NameNode获取一部分Block副本位置列表;
    3-2 线性和DataNode获取block,最终合并为一个文件;
    3-3 在block副本列表中按距离就近选取;
    3-4 通过md5来验证数据完整性;

Q12:format阶段产生什么?
format 阶段产生:fsiimage, 镜像文件,当前集群 id。

Q13:主从节点的配置信息分别在哪个文件中体现?

  1. core-site.xml 规定主角色进程的配置信息:NameNode;
  2. hdfs-site.xml: 配置从节点的配置信息,副本数;
  3. slaves 规定的是从节点的配置信息;

Q14:分布式架构计算向数据移动的必要性?
然数据是庞大的,将数据输入给程序不划算,那么就反其道而行之,将程序分发到数据所在的地方进行计算,也就是所谓的移动计算比移动数据更划算。

Q15:NameNode持久化

1.hodoop写文件流程?
2.hdfs了解多少?读写流程,架构?
3.写流程中备份三,其中一个写失败了怎么弄的?
4.hdfs HA(过程,启动流程)?
5.hadoop的优化?
6.hadoop1和hadoop2的区别?
7.hadoop有哪些组件?
8.hadoop 数据倾斜问题?
9.HDFS 存储的什么类型?
10.Hadoop1.x 和2.x 的差别?
11.说说你hadoop 中都每个配置文件都配置了什么吧?
12.Hadoop集群的优化?
13.hdfs的实现?
14.hdfs文件创建–工作流程?
15.hdfs异步读?-------------参考博客:http://blog.csdn.net/androidlushangderen/article/details/52452215
16.hdfs api 源码 解答:文件创建工作流程?
17.hdfs api新特性?---------不知道
18.hadoop中一个job提交到resourcemanager之后,resourcemanager会生成一个什么样的容器来放这个job?
19.hadoop集群中的某个block不能copy数据到其他节点,怎么办?如果并发量大了,
有多个block不能copy数据,怎么办?-------不知道
20.Zookeeper怎么实现Hadoop的高可用?--------不熟悉
21.Hadoop体系?
22.MR的过程?

猜你喜欢

转载自blog.csdn.net/qq_29027865/article/details/111546904