Hadoop面试题分享

1. 下面哪个程序负责 HDFS 数据存储。

答: DataNode

2. HDfS 中的 block 默认保存几份?

答:3份

3. 哪个程序通常与 NameNode 在一个节点启动?

答:Jobtracker

分析:

hadoop 的集群是基于 master/slave 模式,namenode 和 jobtracker 属于 master,datanode 和 tasktracker 属于 slave,master 只有一个,而 slave 有多个 SecondaryNameNode 内存需求和 NameNode 在一个数量级上,所以通常 secondary NameNode(运行在单独的物理机器上)和 NameNode 运行在不同的机器上。

JobTracker 和 TaskTracker JobTracker 对应于 NameNode TaskTracker 对应于 DataNode DataNode 和 NameNode 是针对数据存放来而言的 JobTracker 和 TaskTracker 是对于 MapReduce 执行而言的 mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索: jobclient,JobTracker 与 TaskTracker。

1、JobClient 会在用户端通过 JobClient 类将应用已经配置参数打包成 jar 文件存储到 hdfs, 并把路径提交到 Jobtracker,然后由 JobTracker 创建每一个 Task(即 MapTask 和 ReduceTask) 并将它们分发到各个 TaskTracker 服务中去执行

2、JobTracker 是一个 master 服务,软件启动之后 JobTracker 接收 Job,负责调度 Job 的每一 个子任务 task 运行于 TaskTracker 上, 并监控它们,如果发现有失败的 task 就重新运行它。一般情况应该把 JobTracker 部署在单独 的机器上。

3、TaskTracker 是运行在多个节点上的 slaver 服务。TaskTracker 主动与 JobTracker 通信,接 收作业,并负责直接执行每一个任务。 TaskTracker 都需要运行在 HDFS 的 DataNode 上

4.Hadoop 作者

答:Doug cutting

5. HDFS 默认 Block Size

答:64MB

6. 下列哪项通常是集群的最主要瓶颈

答:磁盘

7. 关于 SecondaryNameNode 哪项是正确的?

它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

8. 下列哪项可以作为集群的管理?

Puppet 、Pdsh 、Zookeeper

什么是 Zookeeper,Zookeeper 的作用是什么?

9. 配置机架感知如果一个机架出问题,不会影响数据读写 b)写入数据的时候会写到不同机架的 DataNode 中 c)MapReduce 会根据机架获取离自己比较近的网络数据

10. Client 端上传文件的时候下列哪项正确

Client 端将文件切分为 Block,依次上传

分析: Client 向 NameNode 发起文件写入的请求。 NameNode 根据文件大小和文件块配置情况,返回给 Client 它所管理部分 DataNode 的信息。 Client 将文件划分为多个 Block,根据 DataNode 的地址信息,按顺序写入到每一个 DataNode 块中。 具体查看 HDFS 体系结构简介及优缺点

11. 下列哪个是 Hadoop 运行的模式

单机版 、伪分布式 、分布式 答案

12. Cloudera 提供哪几种安装 CDH 的方法

Cloudera manager、Tarball 、Yum 、Rpm

14. Block Size 是不可以修改的。(错误 )

它是可以被修改的 Hadoop 的基础配置文件是 hadoop-default.xml,默认建立一个 Job 的时候会建立 Job 的 Config,Config 首先读入 hadoop-default.xml 的配置,然后再读入 hadoop-site.xml 的配置(这 个文件初始的时候配置为空),hadoop-site.xml 中主要配置需要覆盖的 hadoop-default.xml 的 系统级配置。具体配置可以参考下

16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )

分析: SecondaryNameNode 是帮助恢复,而不是替代,如何恢复,可以查看 hadoop 根据 SecondaryNameNode 恢复 Namenode

17. Cloudera CDH 是需要付费使用的。(错误 )

32.Hadoop 环境变量中的 HADOOP_HEAPSIZE用于设置所有Hadoop 守护线程的内存。它默 认是200GB。

答:(错误)

hadoop为各个守护进程(namenode, secondarynamenode.jobtracker,datanode,tasktracker) 统一分配的内存在 hadoop-env.sh 中设置,参数为HADOOP_HEAPSIZE,默认为100OM。

33.DataNode 首次加入cluster的时候,如果 log中报告不兼容文件版本,那需要NameNode 执行"Hadoop namenode-format"操作格式化磁盘。

答:(错误)

分析: 首先明白介绍,什么ClusterID ClusterlD 添加了一个新的标识符ClusterID用于标识集群中所有的节点。当格式化一个Namenode,需 要提供这个标识符或者自动生成。这个ID可以被用来格式化加入集群的其他Namenode。

发表评论

后才能评论