面试问题

守給你的承諾、 提交于 2019-11-27 01:23:32

358、你们的集群规模?

开发集群:10台(8台可用)8核cpu

359、你们的数据是用什么导入到数据库的?导入到什么数据库?

处理之前的导入:通过hadoop命令导入到hdfs文件系统

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

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

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

361、你们处理数据是直接读数据库的数据还是读文本数据?

将日志数据导入到hdfs之后进行处理

362、你们写hive的hql语句,大概有多少条?

不清楚,我自己写的时候也没有做过统计

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

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

364、hive跟hbase的区别是?

365、你在项目中主要的工作任务是?

利用hive分析数据

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

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

367、你自己写过udf函数么?写了哪些?

这个我没有写过

368、你的项目提交到job的时候数据量有多大?(面试了三家,都问这个问题)

不清楚是要问什么

369、reduce后输出的数据量有多大?

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

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

372、日访问量大概有多少个?百万

373、注册数大概多少?不清楚  几十万吧

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

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

 

三十、面试总结

397、Hadoop体系结构(HDFS与MapReduce的体系结构)、Hadoop相比传统数据存储方式(比如mysql)的优势?

398、Hadoop集群的搭建步骤、Hadoop集群搭建过程中碰到了哪些常见问题(比如datanode没有起来)、Hadoop集群管理(如何动态增加和卸载节点、safe mode是什么、常用的命令kill等)?

399、HDFS的namenode与secondarynamenode的工作原理(重点是日志拉取和合并过程)、hadoop 1.x的HDFS的HA方案(namenode挂掉的情况如何处理、datanode挂掉的情况如何处理)?

400、HDFS的常用shell命令有哪些?分别对应哪些Client Java API?:显示文件列表、创建目录、文件上传与下载、文件内容查看、删除文件

401、HDFS的文件上传与下载底层工作原理(或HDFS部分源码分析):FileSystem的create()和open()方法源码分析?

402、MapReduce计算模型、MapReduce基础知识点(MapReduce新旧API的使用、在linux命令行运行MapReduce程序、自定义Hadoop数据类型)?

403、MapReduce执行流程:“天龙八步”,计数器、自定义分区、自定义排序、自定义分组、如何对value进行排序:次排序+自定义分组、归约?

404、MapReduce的shuffle工作原理、MapReduce工作原理(MapReduce源码、InputStream源码、waitForCompletion()源码)、jobtracker如何创建map任务和reduce任务是面试的重点。

405、MapReduce进阶知识:Hadoop的几种文件格式、常见输入输出格式化类、多输入多输出机制、MapReduce的常见算法(各种join原理和优缺点、次排序和总排序)?

406、MapReduce性能优化(shuffle调优、压缩算法、更换调度器、设置InputSplit大小减少map任务数量、map和reduce的slot如何设置、数据倾斜原理和如何解决)?

407、HBase的体系结构和搭建步骤、shell命令与Java API、HBase作为MapReduce的输入输出源、高级Java API、工作原理(重点是combine和split原理)、行键设计原则、性能优化?

408、Hive的工作原理、两种元数据存放方式、几种表之间的区别、数据导入的几种方式、几种文件格式、UDF函数、性能调优(重点是join的时候如何放置大小表)?

409、Zookeeper、Flume、Pig、Sqoop的基本概念和使用方式,ZooKeeper被问到过其如何维护高可用(如果某个节点挂掉了它的处理机制)?

410、Hadoop2:体系结构、HDFS HA、YARN?

##########################################################################

关系型数据库和非关系型数据库的区别?

提示:

关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

对数据库高并发读写、高可扩展性和高可用性的需求,对海量数据的高效率存储和访问的需求,存储的结构不一样,非关系数据库是列式存储,在存储结构上更加自由。

412、hive的两张表关联,使用mapreduce是怎么写的?

提示:打标记笛卡尔乘积

413、hive相对于Oracle来说有那些优点?

提示:

hive是数据仓库,oracle是数据库,hive能够存储海量数据,hive还有更重要的作用就是数据分析,最主要的是免费。

414、现在我们要对Oracle和HBase中的某些表进行更新,你是怎么操作?

提示:

disable '表名'

     alter '表明', NAME => '列名', VERSIONS =>3

    enable '表名'

415、HBase接收数据,如果短时间导入数量过多的话就会被锁,该怎么办? 集群数16台 ,高可用性的环境。

参考:

通 过调用HTable.setAutoFlush(false)方法可以将HTable写客户端的自动flush关闭,这样可以批量写入数据到HBase, 而不是有一条put就执行一次更新,只有当put填满客户端写缓存时,才实际向HBase服务端发起写请求。默认情况下auto flush是开启的。

416、说说你们做的hadoop项目流程?

417、你们公司的服务器架构是怎么样的(分别说下web跟hadoop)?

418、假如有1000W用户同时访问同一个页面,怎么处理?

提示:优化代码、静态化页面、增加缓存机制、数据库集群、库表散列。。。

419、怎样将mysql的数据导入到hbase中? 不能使用sqoop,速度太慢了

提示:

A、一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。

B、 hbase里面有这样一个hfileoutputformat类,他的实现可以将数据转换成hfile格式,通过new 一个这个类,进行相关配置,这样会在hdfs下面产生一个文件,这个时候利用hbase提供的jruby的loadtable.rb脚本就可以进行批量导 入。

420、在hadoop组中你主要负责那部分?

     提示:负责编写mapreduce程序,各个部分都要参加

421、怎么知道hbase表里哪些做索引?哪些没做索引?

  提示:

有且仅有一个:rowkey,所以hbase的快速查找建立在rowkey的基础的,而不能像一般的关系型数据库那样建立多个索引来达到多条件查找的效果。

422、hdfs的原理以及各个模块的职责

423、mapreduce的工作原理

424、map方法是如何调用reduce方法的

425、fsimage和edit的区别?

   提示:fsimage:是存储元数据的镜像文件,而edit只是保存的操作日志。

426、hadoop1和hadoop2的区别?

提示:

(1) hdfs的namenode和mapreduce的jobtracker都是单点。

(2) namenode所在的服务器的内存不够用时,那么集群就不能工作了。

(3)mapreduce集群的资源利用率比较低。

    单NN的架构使得HDFS在集群扩展性和性能上都有潜在的问题,在集群规模变大后,NN成为了性能的瓶颈。Hadoop 2.0里的HDFS Federation就是为了解决这两个问题而开发的。扩大NN容量,共享DN数据,且方便客户端访问。

427、hdfs中的block默认报错几份?

提示:3份

428、哪个程序通常与nn在一个节点启动?并做分析

提示:jobtrack,将两者放在一起,减少网络访问,IO访问的时间,提高了效率。

429、列举几个配置文件优化?

430、写出你对zookeeper的理解

提示:大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)。目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器。

ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用。

431、datanode首次加入cluster的时候,如果log报告不兼容文件版本,那需要namenode执行格式化操作,这样处理的原因是?

提示:

这样处理是不合理的,因为那么namenode格式化操作,是对文件系统进行格式化,namenode格式化时清空dfs/name下空两个目录下的所有文件,之后,会在目录dfs.name.dir下创建文件。

        文本不兼容,有可能时namenode 与 datanode 的 数据里的namespaceID、clusterID不一致,找到两个ID位置,修改为一样即可解决。

432、谈谈数据倾斜,如何发生的,并给出优化方案。

原因:

(1)key分布不均匀

(2)业务数据本身的特性

(3)建表时考虑不周

(4)某些SQL语句本身就有数据倾斜

map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。

优化:参数调节;

433、介绍一下HBase过滤器

434、mapreduce基本执行过程

435、谈谈hadoop1和hadoop2的区别

436、谈谈HBase集群安装注意事项?

########################################################

需 要注意的地方是 ZooKeeper的配置。这与 hbase-env.sh 文件相关,文件中 HBASE_MANAGES_ZK 环境变量用来设置是使用hbase默认自带的 Zookeeper还是使用独立的ZooKeeper。HBASE_MANAGES_ZK=false时使用独立的,为true时使用默认自带的。

某个节点的HRegionServer启动失败,这是由于这3个节点的系统时间不一致相差超过集群的检查时间30s。

397、Hadoop体系结构(HDFS与MapReduce的体系结构)、Hadoop相比传统数据存储方式(比如mysql)的优势?

398、Hadoop集群的搭建步骤、Hadoop集群搭建过程中碰到了哪些常见问题(比如datanode没有起来)、Hadoop集群管理(如何动态增加和卸载节点、safe mode是什么、常用的命令kill等)?

399、HDFS的namenode与secondarynamenode的工作原理(重点是日志拉取和合并过程)、hadoop 1.x的HDFS的HA方案(namenode挂掉的情况如何处理、datanode挂掉的情况如何处理)?

400、HDFS的常用shell命令有哪些?分别对应哪些Client Java API?:显示文件列表、创建目录、文件上传与下载、文件内容查看、删除文件

401、HDFS的文件上传与下载底层工作原理(或HDFS部分源码分析):FileSystem的create()和open()方法源码分析?

402、MapReduce计算模型、MapReduce基础知识点(MapReduce新旧API的使用、在linux命令行运行MapReduce程序、自定义Hadoop数据类型)?

403、MapReduce执行流程:“天龙八步”,计数器、自定义分区、自定义排序、自定义分组、如何对value进行排序:次排序+自定义分组、归约?

404、MapReduce的shuffle工作原理、MapReduce工作原理(MapReduce源码、InputStream源码、waitForCompletion()源码)、jobtracker如何创建map任务和reduce任务是面试的重点。

405、MapReduce进阶知识:Hadoop的几种文件格式、常见输入输出格式化类、多输入多输出机制、MapReduce的常见算法(各种join原理和优缺点、次排序和总排序)?

406、MapReduce性能优化(shuffle调优、压缩算法、更换调度器、设置InputSplit大小减少map任务数量、map和reduce的slot如何设置、数据倾斜原理和如何解决)?

407、HBase的体系结构和搭建步骤、shell命令与Java API、HBase作为MapReduce的输入输出源、高级Java API、工作原理(重点是combine和split原理)、行键设计原则、性能优化?

408、Hive的工作原理、两种元数据存放方式、几种表之间的区别、数据导入的几种方式、几种文件格式、UDF函数、性能调优(重点是join的时候如何放置大小表)?

409、Zookeeper、Flume、Pig、Sqoop的基本概念和使用方式,ZooKeeper被问到过其如何维护高可用(如果某个节点挂掉了它的处理机制)?

410、Hadoop2:体系结构、HDFS HA、YARN?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!