31个Hadoop面试经典问题

Q1. 说出在Hadoop中最长见的Input Formats ,默认的是哪个?
在Hadoop中定义的Input Formats 最常见的3个是:
– TextInputFormat
- KeyValueInputFormat
- SequenceFileInputFormat
TextInputFormat is the Hadoop default.
Q2. 类TextInputFormat 和 KeyValueInputFormat 有何不同?
TextInputFormat: 读取输入文件的行并且提供行偏移量作为Mapper函数的key值, 以及行内容作为value值.

KeyValueInputFormat: 读取文本文件并且把各行简析为Key,Value pairs. 在遇到第一个Tab之前的所有内容会作为Mapper的key, 读入行剩余所有内容作为Mapper的value.
Q3. Hadoop中的InputSplit 是什么 ?
当Hadoop的job运行时会将输入文件分割为块(chunk)并且将每个块分配给一个mapper来处理. 这被称之为InputSplit.

Q4. Hadoop 框架中是如何调用文件分割功能的?
Hadoop 框架通过执行用户定义的Input format class (like FileInputFormat) 中getInputSplit()方法来被调用.

Q5. 有如下情形: In M/R 系统, - HDFS block 大小设置为 64 MB
- Input format is FileInputFormat
–如果有3 files of size 64K, 65Mb and 127Mb
Hadoop 框架将会产生多少输入分割快(input split)?

Hadoop 将会做如下分割, 总共分割为5 块:
- 1 split for 64K 文件
- 2 splits for 65MB 文件
- 2 splits for 127MB 文件

Q6. RecordReader 在 Hadoop 有什么作用?
InputSplit 确定读取一片文件内容, 但是未描述如何读取它. RecordReader class 真正从源文件加载数据并且转换为Mapper适合读取得(key, value) 对. RecordReader 实例是由Input Format定义好.

Q7. 在Map阶段完成后,Hadoop 系统将会做Partitioning, Shuffle and sort”. 请问这个阶段的主要目的?

Partitioning: 是一个决定哪个reducer实例接收哪个中间的keys和values的过程. 每个mapper必须决定它的所有输出(key, value) 对是由哪个reducer 来接收. 并且有必要保证对于任何相同值的key(不论哪个mapper生成), 目的partition 必须一致..

Shuffle: 在第一个map tasks完成后, 当前节点可能仍然需要或者在执行更多的map任务. 但是它们同样已经开始将来自map 任务的输出,转换为Reducer需要的输入.这个移动map输出给reducer的过程,被称之为shuffling.

Sort: 每个reduce task负责减少与分配来的中间key值的value关联的value(也就是通过interate计算value list),在单独的一个节点,中间key的集合在交给相应reducer之前, Hadoop会自动排序.

Q9. Combiner是什么?
Combiner 是一个‘mini-reduce’ 过程, 它只操作mapper生成的数据.Combiner 接收在某个特定节点的Mapper 产出的数据. Combiner 的输出会替换Mapper的输出继续送到Reducer.Combiner的作用做初步的数据合并或塞选, 以减少数据网络传输量.

Q10. JobTracker是?

JobTracker 是在Hadoop 集群中运行MapReduce 任务的服务.

Q11. Job Tracker的典型作用是?

以下是JobTracker的典型任务:

  • 接收来自客户端的任务请求.
  • 与NameNode交互并判定源数据位置.
  • 定位数据节点或者临近位置, TaskTracker 节点可用的slot.
  • 提交work 来选择TaskTracker 节点,通过接收来自Task tracker心跳信号(heartbeat signals).监控 monitors 每个task进度.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值