hadoop面试题

发布时间 : 星期三 文章hadoop面试题更新完毕开始阅读

84. hbase 怎么给 web 前台提供接口来访问(HTABLE 可以提供对 HBase的访问,但是怎么查询同一条记录的多个版本数据)?

答:使用HTable来提供对HBase的访问,可以使用时间戳来记录一条数据的多个版本。 85. .htable API 有没有线程安全问题,在程序中是单例还是多例?

86. 你们的数据是用什么导入到数据库的?导入到什么数据库? 处理之前的导入:通过 hadoop 命令导入到 hdfs 文件系统

处理完成之后的导出:利用 hive 处理完成之后的数据,通过 sqoop 导出到 mysql 数据库 中,以供报表层使用。

87. 你们业务数据量多大?有多少行数据?(面试了三家,都问这个问题)

开发时使用的是部分数据,不是全量数据,有将近一亿行(8、9 千万,具体不详,一般开 发中也没人会特别关心这个问题)

88. 你们处理数据是直接读数据库的数据还是读文本数据? 将日志数据导入到 hdfs 之后进行处理

89. 你们写 hive 的 hql 语句,大概有多少条? 不清楚,我自己写的时候也没有做过统计

90. 你们提交的 job 任务大概有多少个?这些 job 执行完大概用多少时间?(面试了三家,都问这个问题)

没统计过,加上测试的,会与很多

91. hive 跟 hbase 的区别是?

答:hive说白了就是一个简化的mapreduce,使用hive来写sql语句,然后 92. 你在项目中主要的工作任务是? 利用 hive 分析数据

93. 你在项目中遇到了哪些难题,是怎么解决的?

某些任务执行时间过长,且失败率过高,检查日志后发现没有执行完就失败,原因出在 hadoop 的 job 的 timeout 过短(相对于集群的能力来说),设置长一点即可

94. reduce 后输出的数据量有多大?

95. 一个网络商城 1 天大概产生多少 G 的日志? 4tb

96. 大概有多少条日志记录(在不清洗的情况下)? 7-8 百万条

97. 日访问量大概有多少个?百万

98. 注册数大概多少?不清楚 几十万吧

99. 我们的日志是不是除了 apache 的访问日志是不是还有其他的日志?关注信息

100. 假设我们有其他的日志是不是可以对这个日志有其他的业务分析?这些业务分析都有 什么?

101. job 的运行流程(提交一个 job 的流程)?

102Hadoop 生态圈中各种框架的运用场景?

103. hive 中的压缩格式 RCFile、TextFile、SequenceFile 各有什么区别? 以上 3 种格式一样大的文件哪个占用空间大小..等等

104假如:Flume 收集到的数据很多个小文件,我需要写 MR 处理时将这些文件合并 (是在 MR 中进行优化,不让一个小文件一个 MapReduce) 他们公司主要做的是中国电信的流量计费为主,专门写 MR。

105. 解释“hadoop”和“hadoop 生态系统”两个概念

106. 说明 Hadoop 2.0 的基本构成。

107. 相比于 HDFS1.0, HDFS 2.0 最主要的改进在哪几方面?

108. 试使用“步骤 1,步骤 2,步骤 3?..”说明 YARN 中运行应用程序的基本流程。

109. MapReduce 2.0”与“YARN”是否等同,尝试解释说明

110. MapReduce 2.0 中,MRAppMaster 主要作用是什么,MRAppMaster 如何实现任务 容错的?

111. 为什么会产生 yarn,它解决了什么问题,有什么优势?

112. 集群多少台,数据量多大,吞吐量是多大,每天处理多少 G 的数据?

113. 自动化运维了解过吗,你们是否是自动化运维管理?

114. 数据备份,你们是多少份,如果数据超过存储容量,你们怎么处理?

115. 怎么提升多个 JOB 同时执行带来的压力,如何优化,说说思路?

116. 你们用 HBASE 存储什么数据?

117. 你们的 hive 处理数据能达到的指标是多少?

118.hadoop中RecorderReader的作用是什么???

1、 在hadoop中定义的主要公用InputFormat中,哪个是默认值? FileInputFormat 2、 两个类TextInputFormat和KeyValueInputFormat的区别是什么? 答:TextInputFormat主要是用来格式化输入的文本文件的,KeyValueInputFormat则主要是用来指定输入输出的key,value类型的

3、 在一个运行的hadoop任务中,什么是InputSplit? InputSplit是InputFormat中的一个方法,主要是用来切割输入文件的,将输入文件切分成多个小文件, 然后每个小文件对应一个map任务

4、 Hadoop框架中文件拆分是怎么调用的? InputFormat --> TextInputFormat --> RecordReader --> LineRecordReader --> LineReader

5、 参考下列M/R系统的场景:hdfs块大小为64MB,输入类为FileInputFormat,有3个文件的大小分别为64KB, 65MB, 127MB

Hadoop框架会把这些文件拆分为多少块? 5块

6、 hadoop中RecordReader的作用是什么? RecorderReader是一个接口,主要是用来读取文件的输入键值对的,我们也可以自定义输入的key,value对的读取规则

7、 Map阶段结束后,Hadoop框架会处理:Partitioning, Shuffle和Sort,在这个阶段都发生了什么? Partition是对输出的key,value进行分区,可以自定义分区,按照业务需求,将map的输出归分到多个不同的文件中 将map的输出作为输入传给reducer 称为shuffle sort是排序的过程,将map的输出,作为reduce的输入之前,我们可以自定义排序,按照key来对map的输出进行排序

8、 如果没有定义partitioner,那数据在被送达reducer前是如何被分区的? hadoop有一个默认的分区类,HashPartioer类,通过对输入的k2去hash值来确认map输出的k2,v2送到哪一个reduce中去执行。

9、 什么是combiner?

combiner就是规约操作,通过对map输出的数量进行规约,可以减少reduce的数量,提高执行效率 combiner的输入输出类型必须和mapper的输出以及reducer的输入类型一致

10、分别举例什么情况要使用 combiner,什么情况不使用? 求平均数的时候就不需要用combiner,因为不会减少reduce执行数量。在其他的时候,可以依据情况,使用combiner, 来减少map的输出数量,减少拷贝到reduce的文件,从而减轻reduce的压力,节省网络开销,提升执行效率

11、Hadoop中job和tasks之间的区别是什么? 首先通过jobTracker接收到了用户的操作请求之后,就会产生job任务,job然后将任务分配给tasks分配给多个机器去并行的 执行,通过将job任务分解为多个tasks任务并行的执行,提高了执行的效率。

12、hadoop中通过拆分任务到多个节点运行来实现并行计算,但某些节点运行较慢会拖慢整个任务的运行,hadoop采用全程机制应对这个情况? 对于那些较慢的tasks任务,hadoop 13、流API中的什么特性带来可以使map/reduce任务可以以不同语言(如perl, ruby, awk等)实现的灵活性?

14、有可能使hadoop任务输出到多个目录中吗?如果可以,怎么做? 可以,hadoop

15、如何为一个hadoop任务设置mappers的数量? 1 map的数量

map的数量通常是由hadoop集群的DFS块大小确定的,也就是输入文件的总块数,正常的map数量的并行规模大致是每一个Node是10~100个,对于CPU消耗较小的作业可以设置Map数量为300个左右,但是由于hadoop的没一个任务在初始化时需要一定的时间,因此比较合理的情况是每个map执行的时间至少超过1分钟。具体的数据分片是这样的,InputFormat在默认情况下会根据hadoop集群的DFS块大小进行分片,每一个分片会由一个map任务来进行处理,当然用户还是可以通过参数mapred.min.split.size参数在作业提交客户端进行自定义设置。还有一个重要参数就是mapred.map.tasks,这个参数设置的map数量仅仅是一个提示,只有当InputFormat 决定了map任务的个数比mapred.map.tasks值小时才起作用。同样,Map任务的个数也能通过使用JobConf 的conf.setNumMapTasks(int num)方法来手动地设置。这个方法能够用来增加map任务的个数,但是不能设定任务的个数小于

联系合同范文客服:xxxxx#qq.com(#替换为@)