2018年大数据面试题总结

目前面试了多家大数据开发工程师,成长了很多,也知道了很多知识,下面和大家分享一下我遇到的面试题和答案。

1.kafka集群的规模,消费速度是多少。

答:一般中小型公司是10个节点,每秒20M左右。

2.hdfs上传文件的流程。

答:这里描述的 是一个256M的文件上传过程

① 由客户端 向 NameNode节点节点 发出请求

②NameNode 向Client返回可以可以存数据的 DataNode 这里遵循机架感应原则

③客户端 首先 根据返回的信息 先将 文件分块(Hadoop2.X版本 每一个block为 128M 而之前的版本为 64M

④然后通过那么Node返回的DataNode信息 直接发送给DataNode 并且是 流式写入  同时 会复制到其他两台机器

⑤dataNode 向 Client通信 表示已经传完 数据块 同时向NameNode报告 ⑥依照上面(④到⑤)的原理将 所有的数据块都上传结束 向 NameNode 报告 表明 已经传完所有的数据块 。

3.讲述一下mapreduce的流程(shuffle的sort,partitions,group)

首先是 Mapreduce经过SplitInput 输入分片 决定map的个数在用Record记录 key value。然后分为以下三个流程:

Map:

输入  key(long类型偏移量)  value(Text一行字符串)

输出  key value

Shuffle:、

合并(merge)map输出时先输出到环形内存,当内存使用率达到60%时开始溢出写入到文件,溢出文件都是小文件,所以就要合并他们,在这个构成中就会排序,根据key值比较排序

排序(sort)如果你自定义了key的数据类型要求你的类一定是WriteableCompartor的子类,不想继承WriteableCompartor,至少实现Writeable,这时你就必须在job上设置排序比较器job.setSortCmpartorClass(MyCompartor.class);而MyCompartor.class必须继承RawCompartor的类或子类

分区(partition)会根据map输出的结果分成几个文件为reduce准备,有几个reducetask就分成几个文件,在job上设置分区器job.setPartitionerClass(MyPartition.class)Myrtition.class要继承Partitioner这个类

分组(group)分区时会调用分组器,把同一分区中的相同key的数据对应的value制作成一个iterable,并且会在sort。在job上设置分组器。Job.setGroupCompartorClass(MyGroup.class)MyGroup.class必须继承RawCompartor的类跟子类

上面的结果储存到本地文件中,而不是hdfs上

上面只要有完成结果,reduce就开始复制上面的结果,通过http方式

Reduce

输入key时map输出时的key value是分组器分的iterable

输出 key value

输出结果保存在hdfs上而不是本地文件中

4.了解zookeeper吗?介绍一下它,它的选举机制和集群的搭建。

答:那当然是熟悉啦,ZooKeeper 是一个开源的分布式协调服务,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。我们公司使用的flume集群,Kafka集群等等,都离不开ZooKeeper呀。每个节点上我们都要搭建ZooKeeper服务。首先我们要在每台pc上配置zookeeper环境变量,在cd到zookeeper下的conf文件夹下在zoo_simjle.cfg文件中添加datadir路径,再到zookeeper下新建data文件夹,创建myid,在文件里添加上server的ip地址。在启动zkserver.sh start便ok了。

5.spark streming在实时处理时会发生什么故障,如何停止,解决

和Kafka整合时消息无序:

修改Kafka的ack参数,当ack=1时,master确认收到消息就算投递成功。ack=0时,不需要收到消息便算成功,高效不准确。sck=all,master和server都要受到消息才算成功,准确不高效。

StreamingContext.stop会把关联的SparkContext对象也停止,如果不想把SparkContext对象也停止的话可以把StremingContext.stop的可选参数stopSparkContext设为flase。一个SparkContext对象可以和多个streamingcontext对象关联。只要对前一个stremingcontext.stop(stopsparkcontext=false),然后再创建新的stremingcontext对象就可以了。

6.mysql,mongodb,rides的端口。

面试数据库介绍的再好,不知到默认端口,也证明你没有经验。mysql:3306,mongdb:27017,rides:6379。

7.说一下你对hadoop生态圈的认识。

没有固定答案,主要从hdfs底层存储,hbase数据库,hive数据仓库,flume收集,Kafka缓存,zookeeper分布式协调服务,spark大数据分析,sqoop数据互转来说。

8.yarn的理解:

YARN是Hadoop2.0版本引进的资源管理系统,直接从MR1演化而来。 
核心思想:将MR1中的JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现。

ResourceManager:负责整个集群的资源管理和调度 ApplicationMaster:负责应用程序相关事务,比如任务调度、任务监控和容错等。 YARN的出现,使得多个计算框架可以运行在同一个集群之中。 1. 每一个应用程序对应一个ApplicationMaster。 2. 目前可以支持多种计算框架运行在YARN上面,比如MapReduce、storm、Spark、Flink。

9.数据来源的方式:

1.webServer :用户访问我们的网站,对日志进行收集,记录在反向的日志文件里 tomcat下logs

2js代码嵌入前端页面(埋点):js的sdk会获取用户行为,document会得到元素调用function,通过ngix集群进行日志收集。

10.我们公司是做啥啥啥的,请你用大数据分析,请你想说就说啥。

这个是靠查你的思维,没法有答案。

11.聊聊你的项目。

这是60%的时间都在这,你一定要把自己的项目了解搞清楚,数据的来源,数据的收集,数据的分析,数据的储存,数据的展示。

主要解决了啥业务。遇到了啥问题,数据的格式,有哪些优化,等等等

祝大家都能拿到一份好offer。

原文地址:https://www.cnblogs.com/xiaodong520/p/8657925.html

时间: 2024-10-30 15:03:25

2018年大数据面试题总结的相关文章

如何制定一份可实施的2018年大数据学习计划?

我们习惯了"间歇性踌躇满志.持续性混吃等死", 那么2018年快过了一半了,又该做点什么呢? 其实,要想做出改变并非难事,你缺少的只是一个计划(去做).学习大数据分析更是如此,因为大数据是一门综合性的学科,复杂且具有一定系统性,所以大数据的学习更加需要有一个明确的目标和计划,然后按部就班的执行. 那么如何才能制定出一份可行性强的大数据学习计划呢? 我们可以从以下几个方面去制定. 一.目标 首先你需要制定一个明确的你想要实现的长远的目标.比如,半年内学习相关课程,初步掌握大数据基础知识:

制定一份可实施的2018年大数据学习计划?

如何制定一份可实施的2018年大数据学习计划? 我们习惯了"间歇性踌躇满志.持续性混吃等死", 那么又该做点什么呢? 其实,要想做出改变并非难事,你缺少的只是一个计划(去做).学习大数据分析更是如此,因为大数据是一门综合性的学科,复杂且具有一定系统性,所以大数据的学习更加需要有一个明确的目标和计划,然后按部就班的执行. 那么如何才能制定出一份可行性强的大数据学习计划呢? 我们可以从以下几个方面去制定. 大数据学习交流群:716581014 如何制定一份可实施的2018年大数据学习计划?

2018年大数据发展的7个方向

2016年发生了许多事情.谷歌的阿尔法算法在围棋比赛中击败了李世石,区块链实现了快速发展,全球各地的政府都在大举投资智慧城市.和往年一样,我将为你提供未来一年的大数据趋势,之前我提供了2014年.2015年和2016年的大数据趋势.2017年有望成为大数据里程碑的一年.大数据的炒作终于结束了,因而我们总算终于可以着手于大数据.这就是为什么我将2018年称为智能年.那么,2018年的哪些大数据趋势会对你的组织产生影响? 让我们来看看2018年大数据的七大趋势. 1支持区块链的智能合约:区块链2.0

117道有关大数据面试题解析,希望对你有所帮助

一 .简述如何安装配置apache 的一个开源的hadoop 使用root账户登陆 2.修改ip 3.修改host主机名 4.配置ssh 免密登陆 5.关闭防火墙 6.安装JDK 7.解压hadoop安装包 8.配置hadoop的核心配置文件 hadoop-env.sh? core-site.xml? mapred-site.xml yarn-site.xml hdfs-site.xml 9.配置hadoop 的环境变量 10 .格式化hadoop namenode-format 启动节点sta

2018年大数据的三大趋势和三大困境

一家公司的数字化改造应该从清晰的趋势和障碍出发,更好地规划出一条通往其所寻求业务成果的路线.考虑到这一点,以下是我们关注的三大数据趋势,以及在数字时代可能出现在企业和成功之间的三大困境. 三大趋势 1.真实的机器学习 2018年6月2日,由云豆数据主办的<大数据时代趋势论坛暨中国名优精品推介会>在山东济南银座颐庭大酒店如期举行,300多位企业家从全国各地齐聚济南,对大数据时代的来临.迎接大数据时代的机遇与变革.以及大数据为实体企业经济带来的发展进行探讨和交流. 我们坚信,机器学习.人工智能未来

117道有关大数据面试题的解析,希望对你有所帮助!

一 .简述如何安装配置apache 的一个开源的hadoop 使用root账户登陆 2.修改ip 3.修改host主机名 4.配置ssh 免密登陆 5.关闭防火墙 6.安装JDK 7.解压hadoop安装包 8.配置hadoop的核心配置文件 hadoop-env.sh? core-site.xml? mapred-site.xml yarn-site.xml hdfs-site.xml 9.配置hadoop 的环境变量 10 .格式化hadoop namenode-format 启动节点sta

2018年大数据学习路线图新鲜出炉:从此小白也能学懂编程

移动互联网的迅速崛起让数据变得更为多样.丰富.它的移动性,它的碎片化,它的私密性和随时性都刚好弥补了用户离开桌面电脑之后的数据,从而与原有的互联网数据一起很好滴勾勒出一个网民一天的生活,日常生活的数据化.现如今大数据已经上升到国家战略层面,企业对于大数据的关注和重视程度也在不断提升.今天小编就给大家分享一下2018年最新大数据学习路线图,希望能对广大大数据爱好者有所帮助. 第一阶段 Java语言基础: Java开发介绍.熟悉Eclipse开发工具.Java语言基础.Java流程控制.Java字符

2018年大数据的发展趋势,学习大数据有什么重要优势?

2018年已经过去一半多,大数据分析如今已不能再称之为新技术,大多数移动应用程序开发人员已经明白,他们需要挖掘他们的数据来积极获取日常的见解.许多大型应用程序开发企业已经意识到,要在市场上不断地发展和更新,必须采用大数据技术,科多大数据同样觉得如此,如今越来越离不开数据,大数据技术将提供最好的数据分析解决方案,而大数据人工智能也逐渐成为了各大企业重点研究方向之一,毕竟人工智能是未来科技发展的必然趋势.亚马逊,微软,甲骨文等大型跨国公司已经采用了大数据解决方案来拓展业务,希望为消费者提供最好的服务

大数据面试题分析

最近学习了hashtable的一点知识,发现可以用来解决大数据的一些问题.我们这里讲的大数据分析事实上并不是分布式和数据挖掘这些高深的概念,而是针对从从一个大文件或者一堆数据(内存放不下)中找出具有某种特点的数,这也是近年来各大公司经常考的问题. 面试题1:给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 解析:100G的文件给我们的感觉是太大,我们的电脑内存一般都为4G左右所以不可能一次性把这么多的信息都加载到内存,所以就要进行切分成10