hadoop面试题

一、不定项选择题(1-12题每题2分,13题3分,共27分)

  1. 下面那个程序负责HDFS数据存储(C)?
    A NameNode
    B Jobtracker
    C Datanode
    D secondaryNameNode
    E tasktracker

  2. 关于SecondaryNameNode哪项是正确的(C)?
    A 它是NameNode的热备。
    B 它对内存没有要求。
    C 它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间。
    D SecondaryNameNode应与NameNode部署到一个节点。

  3. Client端上传文件的时候下列哪项是正确(B)?
    A 数据经过NameNode传递给DataNode
    B Client端将文件切分为Block,依次上传。
    C Client只上传数据到一台DataNode,然后由NameNode负责Block复制
    D 当某个DataNode失败,客户端不会继续传给其它的DataNode

  4. 下面那些选项正确描述了HBase的特性(ABCD)?
    A 高可靠性
    B 高性能
    C 面向列
    D 可伸缩

  5. 以下描述错误的是(D)
    A HDFS是解决分布式存储问题的
    B MapReduce是解决计算问题的
    C HBase可以实时地随机访问超大规模的数据集
    D HBase是基于文档存储的非关系型数据库
    解析:基于键值对

  6. Hadoop是由何种语言编写的(C)
    A Scala
    B Erlang
    C Java
    D Python

  7. 以下哪个不是Hadoop运行的模式(B).
    A 单机版
    B 嵌入式
    C 伪分布式
    D 完全分布式

  8. Hadoop分布式文件系统(HDFS)具有(AC)的特性。
    A 适合数据批量处理
    B 数据处理能力极强
    C 最大化吞吐率
    D 允许计算向数据迁移
    E 适合多线程问题
    BD是MapReduce

  9. HDFS系统主要包括(AB)两类节点。
    A 元数据节点
    B 数据节点
    C 元节点
    D 子节点

  10. Hadoop Block Size 是否可以修改(B)
    A 不可以
    B 可以

  11. Zookeeper的角色有哪些?(ABD)
    A Leader
    B Follower
    C QuorumPeerMain
    D Observer

  12. 在开发分布式计算job的时候,可以去掉reduce阶段,这一说法是(A)的
    A 正确
    B 错误

  13. 写出以下组件的默认端口号,填写到对应的位置(每个组件只对应一个默认端口号)(版本为hadoop2.6.0-CDH5.14.2)
    a) HDFS Namenode UI: 50070
    b) ResourceManager UI: 8088
    c) fs.defaultFS: 9000或8020

二、简答题(共52分)

  1. MapReduce中数据倾斜问题产生原因及解决方案?(6分)
--原因:主要是key分配不均,其次机器配置可能不同
--解决方案:key打散添加随机值,具体字段有空值单独处理,加盐等处理
  1. 请讲述一下Hadoop Shuffle原理过程(越详细越好)(5分)
map缓冲区溢写前分区排序,然后溢写文件,对分区文件合并
reduce 到map端拉取对应分区的数据,再次合并处理

详细见链接:mapreduce过程解析

  1. 简述一下hdfs写文件和读文件流程(6分)
    详细见链接:hdfs读写流程
  2. 为什么hdfs不适合存小文件?(4分)
每个块会占用元数据空间,存储大量小文件使得namenode内存空间占用较多
  1. hadoop中的combine的作用?(3分)
在map端局部聚合,相当于本地的reduce,需要满足交换律和结合律,减少网络传输压力
  1. 说一下对hadoop的一些理解(提示:可以从Hadoop的概念、组件、作用方面回答) (5分)
概念:是一个开源分布式系统架构
组件:hdfs-分布式存储,mapreduce-分布式计算框架,yarn-分布式资源管理,commen-支持所有其他模块的公共工具程序
  1. 简述一下Hive的调优方法(8分)
    详细见链接:hive调优
  2. 分片和分区的区别(2分)
分片:逻辑划分 根据文件大小等因素划分,一个map task 有一个分片
分区:和reduce个数有关,根据键的hash分区
  1. 简述一下Yarn 的Job提交流程(6分)
    详细见链接:分布式资源管理yarn

  2. Hive的内部表和外部表的概念(4分)

内部表:又称管理表,hive自己管理数据,hdfs中表现为所属库的文件夹,删除表会删除数据
外部表:数据存储在指定的hdfs路径,删除表只会删除元数据,不会删除数据
  1. 如何避免HBase行键的热点问题(3分)
字符串反转,加盐,hash

三、编程题(每题7分,共21分)

  1. 利用MapReduce实现word count
    见链接:MapReduce实现词频统计

  2. 已有test表中shop_id,item_id,num三列, 使用HiveSQL计算得到a,b列(温馨提示: 按照shop_id分组, a为num值/每组num的和, b为a的组内排序)

shop_iditem_idnumab
Aa100.372
Ab120.441
Ba80.51
Ac50.193
Bc80.51
Cb911
With  t1 as(
Select * ,sum(num) over(partition by shop_id) as s ,rank() over(partition by shop_id order by num desc ) as r from test)
Select t1.shop_id ,t1.item_id,t1.num,t1.num/s as a,t1.r as b
From t1; 
  1. 使用hive计算num列的sum值
itemnumsum
A1,2,3,4
B2,5,1
Select item,num,sum(c)
From test2 
Lateral view explode(split(num,,)) tmp as c
group by item,num;
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值