大数据开发面试总结

上海合合实习面试

一面(电话died)

1、熟悉那些java的list集合

hashmap和hashtable
TreeSet和HashSet

2、ArrayList和LinkedList的区别?

ArrayList是基于动态数组的数据结构,而LinkedList是基于链表的数据结构

  1. 对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针
  2. 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据

3、JVM的内存

4、类的加载过程

5、python的闭包、魔术方法、new、高阶方法

6、java的list集合

7、java的string为什么是不可变的?

string类中的三个方法value、offset、count都是private,并且没有提供setvalue、setoffset和setcount等公共方法来修改这些值。
此外,value,offset和count这三个变量都是final的, 也就是说在String类内部,一旦这三个值初始化了, 也不能被改变。

8、java的回收器G1

9、有没有调试过spark的源码

10、静态代码块和静态方法哪个先执行

  • 静态代码块是在项目启动的时候就初始化了
  • 静态方法是在创建对象的时候执行

对象的初始化顺序:

父类静态的内容->子类的静态内容->父类的非静态代码块->父类的构造方法->子类非静态代码块->子类的构造方法
大致顺序:静态代码块->父类非静态代码块和构造方法->子类非静态代码块和构造方法
注:子类的构造方法,不管这个构造方法带不带参数,默认的它都先去寻找父类不带参数的构造方法。如果父类没有不带参数的构造方法,那么子类必须用supper关键字来调用父类带参数的构造方法

11、静态方法能否调用非静态方法

不能,因为静态方法可以在没有创建实例时使用,而申明为非静态的成员变量是一个对象属性,它只有在对象存在时引用,因此如果在对象未创建实例时我们在静态方法中调用了非静态成员方法,自然是不行的

11、方法重载和方法重写

https://blog.csdn.net/geekmubai/article/details/81975990

12、设计模式

13、hive的窗口函数

14、hadoop运行时,会有哪些进程

  1. NameNode:hadoop中的主服务器,管理文件系统名称空间和对集群中存储文件的方法,保存有metastore
  2. secondaryNameNode:帮助NN合并fsimage和edits
  3. DataNode:负责管理连接到节点的存储
  4. ResourceManager:负责调度DataNode上的工作
  5. NodeManager:执行任务
  6. DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
  7. JournalNode 高可用情况下存放namenode的editlog文件.

滴滴实习

1、自我介绍

2、四种java的线程池

3、自定义线程池有哪些参数

4、怎样判断是垃圾?引用计数法的循环问题?

https://blog.csdn.net/faker____/article/details/83061673

6、HashMap了解吗?结构

7、synchronize底层实现

8、String a = new String(“as”)和String a = “as”

String a = “as"是在字符串常量池中建立"as”;String a = new String(“as”)是在堆中建立
举例:
String s1 = “hello”;
String s2 = “hello”;
String s3 = s1;
String s4 = new String(“hello”);
String s5 = new String(“hello”);
那么:
s1 == s2; true
s1 == s3;true
s1 == s4;false
s1 == s5;false
s4 == s4;false

s1.equals(s2);true
s1.equals(s3);true
s1.equals(s4);true
在这里插入图片描述

用这du种方式的时候java首先在内存中寻找"aaa"字符串zhi,如果有,就把aaa的地址给它dao
如果没有则创建
String a = new String(“aaa”);
是不管内存中有没有"aaa"
都开辟一块新内存保存它
可以用以下方法验证下
String a = “aaa”;
String b = “aaa”;
String c = new String(“aaa”);
System.out.println(ab);
System.out.println(a
c);
结果应该是:
true
false
https://www.cnblogs.com/aspirant/p/9193112.html

8、树的前序、中序、后序

9、java是怎样避免hash冲突的?

9、图的存储方式

10、归并排序

11、spark的运行流程

12、有哪些shuffle算子

13、reducebykey和groupbykey的区别

14、写SQL

在这里插入图片描述变成
在这里插入图片描述

SELECT NAME,
       MAX(CASE course WHEN "数学" THEN grade ELSE 0 END)  math_course ,
       MAX(CASE course WHEN "语文" THEN grade ELSE 0 END)  chinese_course
       FROM tb GROUP BY NAME

星环科技面试

1、设计模式中的单例模式

海康威视

1、spark的YARN-CLIENT和YARN-CLUSTER的区别

(1)client的driver是运行在client客户端;cluster的driver是运行在App Master

(2)client中连接断了,任务就挂了;cluster断开,任务不受影响
解释:SparkContext初始化不同,导致了Driver所在位置不同,YARN-CLUSTER的driver是在集群的某一台NM上,但是YARN-CLIENT就是在driver所在的机器上。

回答: 在大数据开发面试中,关于MySQL的问题可能涉及以下几个方面: 1. MySQL与Hive的区别:MySQL是一种传统的关系型数据库,而Hive是基于Hadoop的大数据数据仓库。它们的查询语言不同,数据存储位置不同,数据格式不同,数据更新方式不同,索引和延迟性也存在差异。 2. MySQL的索引:MySQL支持索引,通过索引可以提高查询数据的速度。索引可以根据某个列或多个列的值进行排序和搜索,从而加快查询的效率。 3. MySQL的执行原理:MySQL底层使用的是执行器,通过执行器来执行SQL语句。执行器负责解析SQL语句,生成执行计划,并执行查询操作,最后返回结果。 4. MySQL的数据规模:相对于大数据组件来说,MySQL通常存储的数据量较小,主要用于存储一些少量的业务数据。 5. MySQL的备份和恢复:MySQL提供了多种备份和恢复的方式,例如物理备份和逻辑备份。物理备份是指直接备份数据库文件,逻辑备份是指通过导出SQL语句来备份数据。 请注意,以上回答仅供参考,具体问题的答案可能会根据面试官的要求和具体情况而有所不同。 #### 引用[.reference_title] - *1* *2* [大数据开发常见面试问题总结](https://blog.csdn.net/m0_38010471/article/details/85700200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [大数据开发工程师--面试宝典](https://blog.csdn.net/weixin_40928946/article/details/123017065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值