大讲台 Hadoop 面试过关必备

来源:互联网 发布:下载彩票分析软件 编辑:程序博客网 时间:2024/05/17 07:13
大讲台 Hadoop  面试过关必备
一、HBase  相关面试内容
1. 简述一下 HBase 数据库架构组成部分。
2. 怎么实现 hbase 的预分区?
3. Hbase 设计表的时候 rowkey 和分区考虑哪个?还是都考虑?
4. Hbase 过滤器实现原则
5. 介绍一下 hbase 过滤器
6. 如何提高 HBase 客户端的读写性能?请举例说明。
7. 基于 HadoopHA 集群进行 MapReduce 开发时, Configuration 如何设置
hbase.zookeeper,quorum 属性的值?
8. hive 跟 hbase 的区别是?
9. HBase 接收数据,如果短时间导入数量过多的话就会被锁,该怎么办?
10. 描述 HBase 搭建过程
11. hbase 写数据的原理是什么?
12. hbase 宕机如何处理?
13. 如果让你设计,你觉得一个分布式文件系统应该如何设计,考虑哪方面内容;
每天百亿数据入 hbase,如何保证数据的存储正确和在规定的时间里全部录入完毕,
不残留数据。
14. 请问下,HBase 直接将时间戳作为行健,在写入单个 region 时候会发生热点问题,为什

15. Hbase 中的 metastore 用来做什么的?
16. hbase 怎么预分区?
17. hbase 怎么给 web 前台提供接口来访问(HTABLE 可以提供对 HTABLE 的访问,但
是怎么查询同一条记录的多个版本数据)?
18. .htable API 有没有线程安全问题,在程序中是单例还是多例?
19. hbase 的并发问题?
20. 我们的 hbase 大概在公司业务中(主要是网上商城)大概都几个表,几个表簇,大
概都存什么样的数据?
21. hive 跟 hbase 的区别是?
22. 怎样将 mysql 的数据导入到 hbase 中?
23. 怎么知道 hbase 表里哪些做索引?哪些没做索引?
24. 简述 HBase 的瓶颈
25. HBase 如果只向一个 RegionServer 写入数据,有什么优点?
二、HDFS  相关面试内容
1、 请写出以下执行命令
1) 如何杀死一个 job
2) 删除 hdfs 上的/tmp/xxx 目录
3) 加入一个新的存储节点和删除一个计算节点,需要刷新集群状态命令
2、 简述一下 hdfs 的数据压缩算法,工作中用的是那种算法,为什么?
3、 Datanode 在什么情况下不会备份?
4、 三个 datanode,当有一个 datanode 出现错误会怎样?
5、 hdfs 原理,以及各个模块的职责?
6、 哪个进程通常与 namenode 在一个节点启动?并做分析
7、 hdfs 的数据压缩算法
8、 hdfs 得体系结构?
9、 HDFS,replica 如何定位
10、 HDFS 存储的机制?
11、哪个程序通常与 namenode 在一个节点启动?并做分析
12、 datanode 首次加入 cluster 的时候,如果 log 报告不兼容文件版本,那需要 namenode
执行格式化操作,这样处理的原因是?
13、 hdfs 的 client 端,复制到第三个副本时宕机, hdfs 怎么恢复保证下次写第三副本?block
2
块信息是先写 dataNode 还是先写 nameNode?
三、Hive  相关面试内容
1. Hive 的 join 有几种方式,怎么实现 join 的?
2. hive 内部表和外部表的区别?
3. hive 表关联要注意什么,是任意两张表都可以关联吗?
4. hive 是如何实现分区的?
5. hive 支持 not in 吗?
6. Hive 有哪些方式保存元数据,各有哪些优缺点。
7. hive 如何优化
8. Hbase 内部是什么机制?
9. hive 底层与数据库交互原理
10. hive 如何权限控制?
11. hive 能像关系数据库那样,建多个库吗?
12. Hive 元数据保存的方法有哪些,各有什么特点?
13. hive 中的压缩格式 RCFile、 TextFile、 SequenceFile 各有什么区别?
14. hive 的两张表关联,使用 mapreduce 是怎么写的?
15. hive 相对于 Oracle 来说有那些优点?
16. Hive 的 sort by 和 order by 的区别
四、MapReduce  相关面试内容
1. 简述 MapReduce 架构组成。
答:1)简述一下 MapReduce1 的基本架构 2)描述下一代 MapReduce2 与第一代
MapReduce(MRv1)在编程接口、数据处理引擎(MapTask 和 ReduceTask)是完全一
样 的,可认为 MRv2 重用了 MRv1 的这些模块,不同的是资源管理和作业管理系统,MRv1
中资源管理和作业管理均是由 JobTracker 实现的,集两个功能于一身,而在 MRv2 中,将
这两部分分开了,其中,作业管理由 ApplicationMaster 实现,而资源管理由新增系统 YARN
完成, 由于 YARN 具有通用性,因此 YARN 也可以作为其他计算框架的资源管理系统,不
仅限于 MapReduce,也是其他计算框架,比如 Spark、 Storm 等, 通常而言,我们一般
将运行在 YARN 上的计算框架称为“X on YARN”,比如“MapReduce On YARN”, "Spark On
YARN",“Storm On YARN”等,
2. 有不同的数据库,比如 oracle、mysql 等,它们存储着不同格式的数据,如果想对不同来源
的数据进行清洗和分析,请写出一个设计方案。
答:对于相同数据而不同格式
1)使用 MultipleInputs 加载不同路径的输入文件
2)为每个路径自定义 Mapper,解析不同路径的数据
3. 什么是分布式缓存?
答:可以参考课程【MapReduce 中的 Join 算法】,说说你实际应用中的理解就可以
4. 怎么控制 map 和 reduce 的数量,数量越多越好吗?为什么?
答:
5. 有 1T 的文本文件,放在 HDFS 上,怎么实现排序,每个节点的内存只有 1G,考虑到性能?
6. 怎么用 hadoop 实现索引?
7. mapReduce 数据清洗的具体过程?
答:自由发挥
8. 用的什么版本的 hadoop?
答:
9. 简要描述如何安装配置 hadoop 集群,简单描述即可,无需列出完整步骤,能列出完整步骤
更好。
答:
10. 请列出正常工作的 hadoop 集群中,hadoop 分别需要启动哪些进程,它们的作用分别是什
么,尽可能写的全面些。
答:
11. 请列出你所知道的 hadoop 调度器,并简要说明其工作方法。
3
12. 请列举你以前的工作中所使用过的开发 map/reduce 的语言。
13. 你认为 Java ,Streaming,pipe 方式开发 map/reduce 各有哪些优缺点。
14. 请简述 Hadoop 如何实现二次排序。
15. 请简述 MapReduce 中 combiner,partition 的作用。
某个目录下有两个文件 a.txt 和 b.txt,文件格式为(ip,username)
a.txt
192.168.1.1 zhangsan
192.168.1.1 lisi
192.168.1.2 wangwu
192.168.1.3 zhaoliu
b.txt
192.168.1.4 xiaoqi
192.168.1.1 wangwu
每个文件至少有 100 万行,请使用 Linux 命令完成如下工作:
1) 两个文件各自的 ip 数以及总 ip 数
2) 出现在 b.txt 而没有出现在 a.txt 的 ip
3) 每个 username 出现的次数以及每个 username 对应的 ip 数
16. 用 mapreduce 怎么处理数据倾斜问题?
17. Hadoop 框架中怎么来优化?
18. 我们在开发分布式计算 job 任务的时候,是否可以去掉 reduce()阶段
19. 描述一下 hadoop 中,有哪些地方使用了缓存机制,作用分别是什么
20. 使用 mapreduce 来实现下面实例
实例:现在有 10 个文件夹,每个文件夹都有 1000000 个 url.现在让你找出
top1000000url。
21. hadoop1 和 hadoop2 的区别?
22. 谈谈数据倾斜,如何发生的,并给出优化方案
23. mapreduce 基本执行过程
24. MapReduce 出现单点负载多大,怎么负载平衡?
25. MapReduce 怎么实现 Top10?
26. HadoopHA 集群中,各个服务的启动和关闭的顺序?
27. 在 hadoop 开发过程中使用过哪些算法?其应用场景是什么?
28. MapReduce 程序如何发布?如果 MapReduce 中涉及到了第三方的 jar 包,该如何
处理?
29. 为什么会产生 yarn,它解决了什么问题,有什么优势?
30. 假设 hadoop 一个 job 产生 100 个 task,并且其中的一个 task 失败了,hadoop
会怎样处理?
31. MapReduce 中排序发生在哪几个阶段?这些排序是否可以避免?为什么?
32. 如何使用 MapReduce 实现两个表 join,可以考虑一下几种情况:(1)一个表大,
一个表小(可放到内存中);(2)两个表都是大表?
33. mapreduce 的调度模式
34. combine 出现在那个过程?
35. MapReduce 优化
36. 用 mapreduce 实现 sql 语句 select count(x) from a group by b?
37. 用 mapreduce 如何实现两张表连接,有哪些方法?
38. 知道 MapReduce 大致流程,map, shuffle, reduce
39. hadoop 运行的原理?
40. mapreduce 的原理?
41. hadoop 中 Combiner 的作用?
42. mapreduce 作业,不使用 reduce 来输出,用什么能代替 reduce 的功能
43. hadoop 集群运行过程中启动那些线程,各自的作用是什么?
44. 日志的固定格式:
a,b,c,d
a,a,f,e
4
b,b,d,f
使用一种语言编写 mapreduce 任务,统计每一列最后字母的个数。
45. hadoop 的调度器有哪些,工作原理。
46. mapreduce 的 join 方法有哪些?
47. 如何实现 mapreduce 的二次排序。
48. MR 数据倾斜原因和解决方案;
49. 列举几个配置文件优化?
50. RPC 原理?
51. MapReduce 出现单点负载多大,怎么负载平衡?(可以用 Partitioner)
52. Hadoop 体系结构(HDFS 与 MapReduce 的体系结构)、 Hadoop 相比传统数据存
储方式(比如 mysql)的优势?
53. hadoop 推测执行时如何实现的?
五、Sqoop  相关面试内容
1、 sqoop 在导入数据到 mysql 中,如何让数据不重复导入?如果存在数据问题 sqoop
如何处理?
六、Zookeeper  相关面试内容
1. 写出你对 zookeeper 的理解
2. 描述 zookeeper 搭建过程
七、Java  相关面试内容
1. 什么是队列?
2. List 与 Set 的区别?
3. 数据库的三大范式?
4. java 基础类:
1)继承:写的一段代码,让写出结果;
2)引用对象和值对象;
5. java 实现非递归二分法算法。
6. jvm 优化
7. Java 写一个冒泡程序
8. 多线程
9. 集合 HashTable 和 HashMap 区别
10. java 如何实现高并发?
11. HashMap、 TreeMap 区别,以及 TreeMap 原理
八、Linux  相关面试内容
1. 请 随 意 使 用 各 种 类 型 的 脚 本 语 言 实 现 : 批 量 将 指 定 目 录 下 的 所 有 文 件 中 的
$HADOOP_HOME$替换成/home/ocetl/app/hadoop
2. 假设有 10 台主机,H1 到 H10,在开启 SSH 互信的情况下,编写一个或多个脚本实
现在所有的远程主机上执行脚本的功能,例如:runRemoteCmd.sh "ls -l",期望结果:
H1:
XXXXXXXX
XXXXXXXX
XXXXXXXX
H2:
XXXXXXXX
XXXXXXXX
XXXXXXXX
H3:
...
3. linux 基础:
1)find 用法
2)给出一个文本:比如 http://aaa.com
http://bbb.com
http://bbb.com
5
http://bbb.com
http://ccc.com
http://ccc.com
让写 shell 统计,最后输出结果:aaa 1
Ccc 2
Bbb 3
要求结果还要排序
4. 用 linux 实现下列要求:
ip username
a.txt
210.121.123.12 zhangsan
34.23.56.78 lisi
11.56.56.72 wanger
.....
b.txt
58.23.53.132 liuqi
34.23.56.78 liba
.....
a.txt,b.txt 中至少 100 万行。
1)a.txt,b.txt 中各自的 ip 个数,ip 的总个数。
2)a.txt 中存在的 ip 而 b.txt 中不存在的 ip。
3)每个 username 出现的总个数,每个 username 对应的 ip 个数。
5. shell 如何判断文件是否存在,如果不存在该如何处理?
6. 在线安装 ssh 的命令以及文件解压的命令?
7. 把公钥都追加到授权文件的命令?该命令是否在 root 用户下执行?
原创粉丝点击