小暖男石头哥|58大数据岗位相关面试题汇总

58面试题
小暖男石头哥|58大数据岗位相关面试题汇总学长11)笔试部分(基础题)
(1)请用图形的方式表示出Java运行时数据区
(2)以上哪些数据区在空间不足的情况下会抛出异常?
(3)Java工程出现内存泄露如何排查?请写出你知道的排查工具以及方法
(4)以下代码的输出结果是什么?
String str1=new StringBuilder("58").append("ganji").toString();System.out.println(str1.intern == str1);String str2=new StringBuilder("ja").append("va").toString();System.out.println(str2.intern == str2);(5)在Scala中有一种函数其参数可以为参数 , 这样的函数称为高阶函数 , 请参照scala中常见map函数实现一个名为mymap的高阶函数 , mymap接收两个参数值 , 第一个函数(x:Int)=>3*x , 第二个为Int型数据 。 在mymap函数体内将第一个参数作用于第二个参数 。
2)笔试部分(算法)
(1)给定两个只含有0和1字符的字符串 , 实现二进制加法 。 如:
String str1 = "101"String str2 = "11"实现binarySum(String s1,String s2),使得输入以上字符时返回字符串"1000" 。
(2)给定一个整型数组array(没有重复元素) , 再给出一个目标值target , 数组array中有两个元素的加和等于target , 要求返回这两个元素的下标 。 如array = {1,2,4,6,3} target = 8 , 则返回[1,3] 。
3)笔试部分(大数据相关)
(1)现有一张Hive表 , 表里面有两个字段uuid和ts , 分隔符为\001分别表示用户唯一标识和用户来访的时间戳 。
有如下需求
(a)要求计算每个用户的最后一次来访时间 , 用MapReduce实现(写完整的代码)
(b)你所写的代码有没有优化的空间?如果有 , 请写出优化方法 。
(2)用Spark实现WordCount 。
(3)Spark-Streaming+Kafka实现实时计算这种方案中通过什么方式保证数据的准确性?
(4)分别列举Hadoop和Spark中的文件缓存方式 。
(5)HDFS的一致性是指什么?有几种语义?
(6)基于Yarn的推测执行是怎么实现的?描述其大致算法 。
QUESTION NO:1publicclass Test1{public static void changeStr(String str){str="welcome";}public static void main(String[] args)(String str="1234";changeStr(str);System. out. println(str);}}输出结果:
QUESTION NO:2public class Test2{static boolean foo(char c){System out print(c);return true;}public static void main(String[] argv){int i=0;for(foo('A');foo('B') foo('C')){i++;foo('D');输出结果:
学长21、一面(学长面)
1)技术部分
(1)HashMap如何遍历 。 (这个忘了 , 百度了一下是用EntrySet)
(2)SparkStreaming窗口操作的3个时段设定分别是什么 , 问到倍数这块(第二轮也问到了)
2)项目部分
(1)讲了一下推荐项目怎么回事
(2)因为是招数仓这块的 , 所以三轮数仓都问了(第二轮的数仓问题比较偏 , 我写到第二轮总结里)
3)算法部分
(1)快排或冒泡排序 , 我讲的是快排
4)情景部分
(1)设定了一个情景 , 手写SQL , 比较简单吧
2、二面
1)技术部分
(1)flatMap和map的区别
(2)A表joinB表 , 用MR是如何处理的(这个真没看过 , 百度了之后才知道的)
(3)Yarn的资源调度
(4)Hbase有put方法 , 那如何批量put数据进hbase里 , 用什么方法(这个也没答上 , 面试的时候想不起来了)
(5)NameNode的HA , 一台挂掉之后 , 另一台会丢失数据吗 , 挂掉之前有一部分日志为更新(这个我答的是edits会保存下来 , 和之前的镜像一起加载 , 所以不会丢)