hadoop面试题(3)

2018-12-04 16:52

程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!

HashMap和HashTable:Hashtable的方法是同步的,而HashMap的方法不是,Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。HashMap是一个线程不同步的,那么就意味着执行效率高,HashTable是一个线程同步的就意味着执行效率低,但是HashMap也可以将线程进行同步,这就意味着,我们以后再使用中,尽量使用HashMap这个类。

67. 文件大小默认为 64M,改为 128M 有啥影响?

答:更改文件的block块大小,需要根据我们的实际生产中来更改block的大小,如果block定义的太小,大的文件都会被切分成太多的小文件,减慢用户上传效率,如果block定义的太大,那么太多的小文件可能都会存到一个block块中,虽然不浪费硬盘资源,可是还是会增加namenode的管理内存压力。

68. NameNode 与 SecondaryNameNode 的区别与联系?

答:secondaryNameNode更像是Namenode的一个冷备份,当namenode宕机之后,可以从SecondaryNamenode上面恢复部分数据。 69. RPC 原理?

答:1.调用客户端句柄;执行传送参数 2.调用本地系统内核发送网络消息 3. 消息传送到远程主机

4. 服务器句柄得到消息并取得参数 5. 执行远程过程

6. 执行的过程将结果返回服务器句柄

7. 服务器句柄返回结果,调用远程系统内核 8. 消息传回本地主机

9. 客户句柄由内核接收消息 10. 客户接收句柄返回的数据

70. 对 Hadoop 有没有调优经验,没有什么使用心得?(调优从参数调优讲起) dfs.block.size Mapredure: io.sort.mb

io.sort.spill.percent mapred.local.dir

mapred.map.tasks & mapred.tasktracker.map.tasks.maximum mapred.reduce.tasks & mapred.tasktracker.reduce.tasks.maximum mapred.reduce.max.attempts mapred.reduce.parallel.copies

mapreduce.reduce.shuffle.maxfetchfailures

mapred.child.java.opts

mapred.reduce.tasks.speculative.execution

mapred.compress.map.output & mapred.map.output.compression.codec mapred.reduce.slowstart.completed.maps

71. .MapReduce 出现单点负载多大,怎么负载平衡?(可以用 Partitioner) 答:可以用partioner进行分区操作,将大数据分成多个小数据进行逐一处理。 72以你的实际经验,说下怎样预防全表扫描 答:

1.应尽量避免在where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫 3.描应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行 全表扫描

4.in 和 not in,用具体的字段列表代替,不要返回用不到的任何字段。in 也要慎用,否则会导致全表扫描 5.避免使用模糊查询

6.任何地方都不要使用select * from t

73. zookeeper 优点,用在什么场合 答:

74.Hive中的 metastore 用来做什么的?

答:metastore是一套映射工具,将sql语句转换成对应的job任务去进行执行。

75.把公钥都追加到授权文件的命令?该命令是否在 root 用户下执行? 答:不是。

76. HadoopHA 集群中各个服务的启动和关闭的顺序? 答:

77. 在 hadoop 开发过程中使用过哪些算法?其应用场景是什么? 答:排序分组。

78. 在实际工作中使用过哪些集群的运维工具,请分别阐述期作用。 答:ZooKeeper,以及shell

79. 一台机器如何应对那么多的请求访问,高并发到底怎么实现,一个请求怎么产生的, 在服务端怎么处理的,最后怎么返回给用户的,整个的环节操作系统是怎么控制的?

80. java 是传值还是传址? 答:引用传递。

81. 问:你们的服务器有多少台?

82. 问:你们服务器的内存多大?

83. hbase 怎么预分区?

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?


hadoop面试题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2022年中国可控硅整流器行业市场调研与投资战略咨询报告(目

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: