首页 > 编程知识 正文

大数据开发工程师面试问题,大数据开发笔试题

时间:2023-05-06 14:36:25 阅读:158251 作者:1604

以前采访毕业生的时候,有个朋友提出了意见,编辑想分享面试的晾衣架。 于是编辑没有期待。 今天给大家带来了大神级的经。 希望你能帮助即将毕业或者正在找工作的伙伴们。 祝你早日找到心仪的工作。

这里也推荐我自己做的大数据学习交流qq裙。 458345782。 裙子里都在学习大数据的开发。 如果你正在学习大数据,编辑欢迎你加入。 大家都是软件开发党,不定期共享晾衣架。 包括自己整理的2018最新大数据高级资料和高级开发教程,欢迎想进入高级中和和大数据的伙伴

MapReduce

1 .在不指定语言的情况下编写word count MapReduce。 最近刚学习scala,有scala版本的WordCount,正好学习使用了:

补充:关于java版本,虾皮博客的文章做了非常仔细的说明:

Hadoop集群(第6期) _WordCount运用详情

33558 www.cn blogs.com/Xia 520 pi/archive/2012/05/16/2504205.html

2 .在上述编写的程序中, map(_,1 ) )的输出结果是什么? 我用flatMap扁平化了,但是. map ) ) _,1 ) )对于每个出现单词,都用1的形式来表现。 此时还没有合并。

3 .可以用SQL语句实现上述MapReduce吗? 是否必须以基于字段值的频率按相反顺序排序,并以维——的频率形式显示结果?

我:我根据某个字段——决定使用group By。 频繁地次要地用count进行汇总。 反过来说,desc是必不可少的。

补)框架是装在里面的:

4 .给你一个荒唐的100万个数字的文件,你怎么排序?

我:先分割成几个小的再排列。 (构想是从希尔排序出发的) ) )。

补充:内部排序算法:希尔排序

Spark

Spark程序编写的一般步骤是什么? 我:初始化、资源、数据源、并行化、rdd转换、操作操作人员可以打印输出结果,也可以保存在合适的数据存储介质中

补记:具体请参照下图。

2. Spark有哪两种运算符? 我:变换运算符和操作运算符。

3. Spark提交你的jar包时使用的指令是什么? 我: submit。

面试官: spark-submit?

我:嗯,spark-submit。

4. Spark有哪些聚合类运算符? 应该尽量避免什么类型的运算符? 我: aggeragate

面试官:你还在吗?

我不记得了。

面试官:还有你写的那个groupByKey

增补:

在我们的开发过程中,可以避免的东西尽量不使用reduceByKey、join、distinct、repartition等进行shuffle的运算符,而使用map类的非shuffle运算符。 这样,在没有shuffle操作或shuffle操作较少的Spark工作中,可以大幅减少性能开销。

5 .你理解的Spark的shuffle流程? 我: spark shuffle实现了类似混洗的功能,广泛依赖于将同一个Key分发到同一个Reducer进行处理。

追加:详细探索Spark的shuffle实现

3358 blog.csdn.net/Johnny _ lee/article/details/22619585

如何从Kafka检索数据? 我: topic

补充:分布式消息系统: Kafka

关于Spark的数据倾斜问题你有什么好的方案吗? 我:我可以分析基数大、数据倾斜的维度,并对其进行适当的分割。

补充: Spark性能优化指南:高级篇

编程

1 .如果我有两个list,我如何用Python语言取出两个list中的相同元素? 我: list(set ) list1).intersection (set ) list2) ),用set的intersection进行交叉的函数实现相同元素的提取。

给出了用于在Python中快速获取元素的数据结构,其时间复杂性及其缺陷是什么?

我:因为之前也做过leetcode的主题,所以稍微加热了一下数据结构。 那时,脑海里给人一种数组容易查找,队列和堆栈容易插入删除的印象,所以听到很早就得到了果断的数组,吓了我一跳。

面试官: dict (词典)。

我:好厉害! 呃!

 


面试官:那它的时间复杂度你晓得嘛? 
我:不是特别了解,O(1),常数时间复杂度? 


面试官:嗯,那你知道它的缺陷吗? 
我:(中午吃撑了,TradeOff哈)不晓得 


面试官:空间复杂度较高哈 


补: 反思了一下,之所以说错,可能和以前学习算法时,起承转合的过度,并未将栈、队列和map,或者dict直接比较,而是从数组切换到队列和栈,所以就和之前的那个PUT和POST差不多,训练逻辑正确,确实数组查询记录方便,但训练广度有些多样性不够。 



算法备忘录——基础数据结构与复杂度 
常用数据结构和算法操作效率的对比总结

 

3. 做几道OJ的题目(英文的),说一说这个问题的要求和注意点,以及可以获得正确结果的你的思路?

 

恢复IP地址

 

 

Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example Given “25525511135”, return [ “255.255.11.135”, “255.255.111.35” ] Order does not matter.

 

我:思考了一会儿,没想出来,只能想出个不通用的思路。 
面试官:给你个提示,尝试用树这个数据结构。 


补:此处埋一个坑,学完树的数据结构再回来解决。

快乐数

 

 

Write an algorithm to determine if a number is happy. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers. Example 19 is a happy number 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1

 

我:思路是模拟过程法,即按照它验证一个数是否是快乐数的方式进行模拟,当然也有些取巧的方式,如果某个中间结果曾出现过,妥妥滴死循环嘛,即刻跳出。 


面试官:思路是对的 
我:我觉得这会TLE,肯定有取巧的方法(这道题目之前好像接触过) 


补:回去搜了一下,发现之前一直求助的一个大神的博客通过模拟过程用Python实现的: 
Happy Number (之前的怀疑有更巧方法在于时常保持偷懒的思维也是必要的)

 

4. 你常用的IDE有哪些?

我:Java:Eclipse;Python:PyCharm;Scala:IntelliJ IDEA;Shell:VIM

 

5. 你了解设计模式吗?

我:不了解,但以后回去买本O’Really的《设计模式》 
补:封面如下:

 

 

6. 什么是Restful API?

我:由于对Restful的了解只停留在使用层面,给我的感觉像是一种资源的提交获取,GET获取,POST/DELETE/PUT都可以看作是一种提交操作 


补:

【专业定义】:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

 

RESTful百度百科

 

  Devops

 

1. 数据库读写分离的目的是什么?

我:①减轻负载;②权限控制 


补:读写分离的作用 
看了上面的文章,减轻负载是首要目的,至于权限控制,更像是一种实现方式,不像目的。

 

2. ZooKeeper是什么?非大数据领域,我们可以用ZooKeeper来做些什么?

 

我:ZooKeeper是分布式协调组件,非大数据领域,可以用ZooKeeper来做HA或者存储数据,比如配置信息啥的。(Znode) 
补:ZooKeeper 典型应用场景一览

在这里我还是要推荐下我自己建的大数据学习交流qq裙:458345782, 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。