7

【秋招面试】字节面试准备(一面准备)

 2 years ago
source link: https://blog.csdn.net/xianyu120/article/details/119081824
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【秋招面试】字节面试准备(一面准备)

专栏收录该内容
8 篇文章 5 订阅

大家好,我是程序员Manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

事情是这样的:

在这里插入图片描述
期末考后,我在实习僧试着投了投字节的实习岗,没想到收到了校招的面试邀请
在这里插入图片描述

实际上算法这块我还是个菜狗
没办法机会难得,不知道下次能不能这么走运
只能硬着头皮上了……
在这里插入图片描述

以下是我做的一些面试准备:

面试官你好,我是面试咱们公司大数据开发岗位的xxx,就读于上海大学的数据科学与大数据专业,2022年毕业,在校期间做过2个大型数仓项目,其中教育数仓项目通过大数据处理分析技术,为企业发展提供切实可行的中观指导意见。除了学习之外,我也喜欢写写博客,复盘所学的知识,输出自己的成长经历。十分感谢贵公司提供的这次面试机会,期望有幸能够加入贵公司,成为大家的工作伙伴。

教育数仓项目介绍

项目背景:受互联网+概念,疫情影响,在线教育,K12教育等发展火热,越来越多的平台机构涌现。但是由于信息的共享利用不充分,导致企业多年积累了大量数据,而因为信息孤岛的问题,一直没有对这些数据进一步挖掘分析,因此也不能给企业的管理决策层提供有效的数据支撑。
项目价值:我们做的这个教育大数据分析平台项目,将大数据技术应用于教育行业,用擅长分析的OLAP系统为企业经营提供数据支撑。
实现思路:建立企业的数据仓库,把分散的业务数据预处理,其次根据业务需求从海量的用户行为数据挖掘分析,定制出多维的数据集合,形成数据集市,供各个场景主题使用,最后用BI工具,进行前端展示。
技术架构:mysql,sqoop,基于CM的Hive,Oozie和FineBi。由于OLTP系统中数据大多存储在mysql,所以我们最终选择Sqoop作为导入导出工具,抽取数据到数仓,并使用基于CM管理的Hive进行数据清洗+分析,然后sqoop导出到mysql,最后用FineBI展示OLAP的数据分析结果。
三大痛点:一是数据量太大问题,传统数据库无法满足;二是系统多,数据分散问题,无法解决数据孤岛问题;三是,统计工作量太大,分析难度高问题,无法及时为企业提供数据参考。

物流数仓项目介绍

项目背景:本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。
业务规模:经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达 上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。
项目价值:公司需要基于大数据技术构建数据中心,从而挖掘出隐藏在数据背后的信息价值,为企业提供有益的帮助,带来更大的利润和商机。
项目细节:
物流环节:大数据项目主要围绕订单、运输、仓储、搬运装卸、包装以及流通加工等物流环节中 涉及的数据、信息等。
指导方向:通过大数据分析可以提高运输以及配送效率、减少物流成本、更有效地满足客户 服务要求,实现快速、高效、经济的物流,并针对数据分析结果,提出具有中观指导意义的解决方案。
应用案例:针对物流行业的特性,大数据应用主要体现在车货匹配、运输路线优化、库存预测、设备修理预测、供应链协同管理等方面。

人家的面经

作者:杨超越救救孩子啊
链接:https://www.nowcoder.com/discuss/170799
来源:牛客网

早上九点的面试,投的南京的岗位
一面:
一面面试官人很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
还有什么要问我的吗?

我的想法是约到面试,才能从实战中提升自己,
这次约上字节的面试是我没想到的,
时间有些仓促,很多东西没准备好,估计一面就得挂了
在这里插入图片描述
也仅作为一次正式面试前的练习,
熟悉熟悉面试流程,同时锻炼锻炼自己。
在这里插入图片描述


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK