0
点赞
收藏
分享

微信扫一扫

大数据面经 字节跳动 (整理)

小亦同学321 2022-03-25 阅读 219



文章目录

  • ​​①人家的面经​​
  • ​​试着答了一下​​
  • ​​② 字节(data数据中台)实习一面​​


①人家的面经

作者:杨超越救救孩子啊

早上九点的面试,投的南京的岗位

一面:

一面面试官人很nice,遇到不会的也会安慰我说没关系,

上来先自我介绍,

说下项目,

说说对hadoop的理解,都有哪些组件,分别是干什么的

还了解大数据其他组件嘛?这里我说了下kafka,然后巴拉巴拉,,,

kafka在什么地方需要用到zookeeper

了解HBase吗?

说下spark中的transform和action

为什么spark要把操作分为transform和action

spark中有了RDD,为什么还要有Dataframe和DataSet?

了解函数式编程吗?说下c/c++和scala这种函数式编程语言的区别

Java中抽象类和接口的区别

都有抽象类了为什么还要有接口

了解GC吗?说说

然后写一道编程题,给个字符串,只有(){}[],看看是否是匹配的,

用个栈直接解决了,问下优化,如果遇到右括号,在查看栈顶元素的时候如果不匹配直接返回false

还有什么要问我的吗?

还聊了下他们的团队工作内容,主要对Spark的源码进行修改,还有其他等等

大概是这些内容了。

二面:

二面面试官很严肃的感觉,不像一面面试官那样,比较轻松

上来就聊下项目

项目中kafka怎么使用的

了不了解nginx

给一个日志文件,有用户ID,时间戳,url,用mapreduce如何给出每天每个站点的访问任务

在这个过程可能会出现什么问题?我这里答了会出现数据倾斜,然后问如何解决

数据库都有哪些引擎

数据库的锁了解哪些,说说

应用层协议有哪些

什么场景用TCP,什么场景用UDP

HTTP状态码都有哪些,具体说一下

HTTP长连接和短连接

url和uri的区别

还问了http请求头的一些字段内容

还是上面那个日志,不过现在所有的数据是在数据库中,写条sql语句查询近一个月每天每个站点的访问人数。

有什么要问我的吗

二面很多没答上来,感觉凉了,没想到给我过了,,我现在还在怀疑人家是不是搞错了。。

三面:

三面面试官人也挺好,听声音是个大叔啊哈

首先还是自我介绍

说下项目

平时开发环境是windos还是linux

开发使用什么语言比较多

线程和进程的区别

hashmap的实现

hashmap的loadfactory是干嘛的

hashmap的扩容

为什么每次扩容都是翻倍,增加1.5倍不行吗

扩容的时候为啥不多扩一点,比如4倍

来了道算法题,两个三十六进制字符串的相加

一条直线可以把一个平面分成2个平面,两条直线最多分成4个,问n条直线最多分成几个面

有什么要问我的吗

试着答了一下


1.说说对hadoop的理解,都有哪些组件,分别是干什么的


Hadoop是大数据的组件,由HDFS,MapReduce和Yarn组成,HDFS主要负责数据的存储,MapReduce是作为计算引擎,负责计算,Yarn负责资源调度


2.还了解大数据其他组件嘛?这里我说了下kafka,然后巴拉巴拉,,,


Kafka是一个基于订阅发布模式的高性能、高吞吐的实时消息队列系统,用于实时架构中,实现将实时数据采集的数据进行实时存储,供于SparkStreaming或者Flink等工具实现实时数据消费处理


3.kafka在什么地方需要用到zookeeper


三种情况:

需要用到存储元数据和交换集群信息

解决分布式一致性问题

需要要消费者知道现在那些生产者(对于消费者而言,kafka就是生产者)是可用的。


4.了解HBase吗?


Hbase是一个基于分布式内存和HDFS的按列存储的NoSQL数据库,适合于需要实时的对大量数据进行快速、随机读写访问的场景


5.说下spark中的transform和action


1,transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD

2,action是得到一个值,或者一个结果(直接将RDD cache到内存中)


6.为什么spark要把操作分为transform和action


因为所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。这样有利于减少内存消耗,提高了执行效率


7.spark中有了RDD,为什么还要有Dataframe和DataSet?


RDD叫做弹性分布式数据集

与RDD类似,DataFrame是一个分布式数据容器,但是DataFrame不是类型安全的。

DataSet是DataFrame API的一个扩展,是Spark最新的数据抽象,结合了RDD和DataFrame的优点


8.了解函数式编程吗?说下c/c++和scala这种函数式编程语言的区别


scala便是函数式编程的一种,函数式编程语法比起面向对象语言更加简洁优化,


9.Java中抽象类和接口的区别


1.接口只能包含抽象方法,抽象类可以包含普通方法。

2.接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。

3.接口不包含构造方法,抽象类里可以包含构造方法。


10.都有抽象类了为什么还要有接口


抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。


11.了解GC吗?说说


GC:垃圾回收,使用 GC 可以进行垃圾空间释放操作。

GC 是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘 记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动 监测对象是否超过作用域从而达到自动回收内存的目的。

然后写一道编程题,给个字符串,只有(){}[],看看是否是匹配的,

用个栈直接解决了,问下优化,如果遇到右括号,在查看栈顶元素的时候如果不匹配直接返回false

还有什么要问我的吗?

② 字节(data数据中台)实习一面

自我介绍

项目(两个项目都问了)

MR中数据倾斜问题怎么解决

MR 过程中有几次排序过程

sql:公交车人数最高的时间段

算法:二叉树层次遍历

一个男孩,一个女孩的概率问题

瓶盖换水问题

维度建模步骤



举报

相关推荐

0 条评论