【面试题】大数据开发岗位
某公司面试题:
1、阐述数据库的三大范式?
2、Linux 自带的常用命令举例至少20个?
3、Spark 有哪些聚合类的算子,我们应该尽量避免什么类型的算子?
4、Hive 和 HBase 的区别?
5、你了解设计模式吗?写出你知道的设计模式。
6、常见的GC算法有哪些?
7、kafka 的数据存在内存还是磁盘?
8、什么是shuffle?写出你知道的Spark Shuffle 相关参数配置。
9、有一个10G的文件要存入HDFS,描述一下存储过程。HDFS默认块大小128MB.
10、Kafka 选举策略。
11、Hive 内部表和外部表的区别?应该如何选择使用哪种表呢?
12、内存泄露和内存溢出有什么区别?
13、用Java代码写一个你所知道的排序算法。
14、写出wordcount并排序,linux、java(非mr)、hive、spark、Flink,以以上五种语言中任选两种进行书写。
15、Flink 计算单位是什么?
16、Flink 窗口类型有哪些?你都用过哪些窗口?
17、假设现在有一张Hive 表,如下所示:
元数据格式为:
字段:
col1 string
col2 string
表中有两个字段,字段类型都为String,现在需要将数据拆分专为多列。
数据格式如下:
col1 | col2 |
---|---|
a,b,c,d | 2:00,3:00,4:00,5:00 |
f,b,c,d | 1:10,2:20,3:30,4:40 |
col1 | col2 |
---|---|
a | 2:00 |
b | 3:00 |
c | 4:00 |
d | 5:00 |
- 假设现在有一张表,如下所示:
按第一列分组,同组内按第二列排序,并根据第三行取同组前一行与当前一行的均值作为第四列。
数据格式如下:
col 1 | col2 | col3 |
---|---|---|
2014 | A | 3 |
2014 | C | 1 |
2014 | B | 2 |
2015 | A | 4 |
2015 | C | 3 |
=>
col1 | col2 | col3 | col4 |
---|---|---|---|
2014 | A | 3 | 3 |
2014 | B | 2 | 2.5 |
2014 | C | 1 | 1.5 |
2015 | A | 4 | 4 |
2015 | C | 3 | 3.5 |
19、假设现有一张Hive表,如下所示:
col1 是有序的,按照col2 分块计数,每当col2发生变化,就重新开始计数,计数的结果当做col3返回。
数据格式如下:
col1 | col2 |
---|---|
2014 | 1 |
2015 | 1 |
2017 | 0 |
2018 | 0 |
2019 | 1 |
2020 | 1 |
2021 | 1 |
2022 | 0 |
2023 | 0 |
col1 | col2 | col3 |
---|---|---|
2014 | 1 | 1 |
2015 | 1 | 2 |
2017 | 0 | 1 |
2018 | 0 | 2 |
2019 | 1 | 1 |
2020 | 1 | 2 |
2021 | 1 | 3 |
2022 | 0 | 1 |
2023 | 0 | 2 |
参考答案: