ebay-数据仓库面试
优质
小牛编辑
133浏览
2023-12-01
- 英文自我介绍和项目介绍
Good Afternoon, my name is Wang Longjiang,graduated from Anhui University. I have been working in the Institute of Aerospace Information, Chinese Academy of Sciences for two years. Focus on big data storage、calculation and data warehouse. Best at Linux and Java. In my space time,I would like to write blog and run,writing makes me master my knowledge well,running makes relaxed and persistent.
1.用英语介绍下数据仓库和数据集市的区别 ``` (1) Data warehouse is enterprise-level and data mart is department-level. It usually has fewer data, fewer subject areas.The first project,Development of data warehouse , involves Hive, MapReduce. The second project,Development of Streaming Data Computing Platform. The third project,Social Network Information Search Platform The forth project,Development of Streaming Data Computing Platform. (1) Cluster building. Responsible for the construction and maintenance of Hadoop, Yarn, and Hive clusters. (2) Development.Using MapReduce programming model and HiveQL. (3) Performance monitoring. Telegraf, InfluxDB and Grafana are used to monitor and diagnose performance bottlenecks of hardware systems. (4) Testing And tuning. By adjusting map and reduce number, using data compression and testing different data compression algorithms, reasonable partition avoids shuffle and data skew, and reduces query latency.
(2) Data warehouse provides data to various data marts, and data marts of several departments form a data warehouse.
(3) Data structure in data warehouse adopts standardized mode, and data structure in data mart adopts star mode.
2.讲下 linux 免密登陆
3.介绍下spark执行流程
4.spl 开窗函数
5.shell 脚本读取文件
6.项目中最自豪的事情
7.数据库中count(*) 和count(1) 在什么情况下数据不一致
* [整理测试count(1)、count(*)以及count(列)的区别](https://blog.csdn.net/Abysscarry/article/details/80768249)
8.最有压力的事情
9.shell 脚本替换文件内容
10.数据倾斜调优
# 一、Spark
1、stage spark-stage 到理解,什么情况下会产生 stage
shuffle
spark-sql
怎么让业务人员使用 spark,spark 封装到项目
spark 实现 topN
# 二、Hive
* hive 遇到数据跑不出来的情况
* hive 的优化
* hive 当接到需求时怎么建表
# 三、HDFS
* 怎么将数据导入 HDFS
* 怎么将 mysql oracle 中的数据导入 hdfs
* 你了解的数据导入导出工具(sqoop datax),不用这些数据怎么从 mysql 中导出数据
* 使用 hdfs dfs -put 上传文件需要跟什么参数
* 源数据如果有问题数据应该怎么处理(换行符、分隔符、空格)
* hdfs 的压缩格式
|压缩格式|优点|缺点|
|------|------|------|
|Gzip|压缩率高,速度快。Hadoop支持与直接处理文本一样。|不支持split,当文件压缩在128m内,都可以用gzip|
|Izo| 优点压缩速度快 合理的压缩率;支持split,是最流行的压缩格式。支持native库。|比gzip压缩率低,hadoop本身不支持,需要安装;在应用中对lzo格式文件需要处理如 指定inputformat为lzo格式。|
|Snappy|高速压缩率合理支持本地库。|不支持split,hadoop不支持 要安装linux没有对应命令;当MR输出数据较大,作为到reduce数据压缩格式 |
|Bzip2| 支持split,很高的压缩率,比gzip高,hadoop支持但不支持native,linux自带命令使用方便。|压缩解压速度慢|
* hdfs 的存储格式(textfile parquet orc),它们的优势和原理。
* [hdfs 文件存储格式](https://my.oschina.net/u/2969788/blog/2875351)
|格式|优势|
|------|------|
|SequenceFile|
|MapFile|
|textfile|行存储|
|parquet|列存储,支持嵌套|
|orc 列存储|列存储,不支持嵌套|
# 四、sqoop
* 当 sqoop 迁移 TB 级别的数据会遇到什么样的影响
[Sqoop学习笔记——关系数据库与hdfs间数据迁移](https://blog.csdn.net/lsxy117/article/details/47256967)
# 五、项目
* 请描述项目的数据流向
* 为什么存储 hbase 的时候不去除换行符
* 实时项目的核心
* 为什么不用 spark 直接替代 hive
# 参考资料
* [4种常用压缩格式在Hadoop中的应用](http://www.raincent.com/content-10-1631-1.html)
* []()
英语
* 英语回答为什么找新机会
I need to be more professional in the area of big data, so I need a bigger platform such as ebay and better people .
* 未来职业规划
In the next two years, I hope to become an expert in some area of big data, such as data warehouse direction.
hive
* hive 建表数据格式(Parquet、ORCFile)以及优势。
* 一张表包含 城市、姓名、纳税额字段。查询每个城市的总纳税额。
* 一张表包含 城市、姓名、纳税额字段。查询每个城市的纳税额前五的人。
数据仓库
* ODS 解释。
[数据仓库ODS、DW和DM概念区分](https://blog.csdn.net/zhu592665411/article/details/80836770)
* 维度表和事实表。
Spark
* 是否阅读过 Spark 源码。
* 如何解决 Spark 遇到的 OOM 问题。
GC
* 介绍 JVM 区域。
* 分代垃圾回收的优势
Linux
* 文件字符串批量替换。
* 批量查找一批文件中哪些含指定字符串。
* 定位操作系统卡的原因。
* Session 和 Cookie 的概念
* Cookies:是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。
* Session:存在服务器的一种用来存放用户数据的类HashTable结构。HashTable和 Session ID
* 联系:
* 区别:Cookies 以文本格式存储在浏览器上,存储量有限;而会话存储在服务端,可以无限量存储多个变量并且比cookie更安全。
[理解Cookie和Session的区别及使用](https://blog.csdn.net/liyifan687/article/details/80077928)
* 描述栈和队列的区别
* Java 中 sleep 方法和 wait 方法的区别
* 什么是 WeakHashMap
[浅谈WeakHashMap](http://www.importnew.com/23182.html)
* 功能上类似 HashMap,将数据。。。
* 和 HashMap 的区别,WeakHashMap 中的元素弱引用,即如果元素不在其他地方被引用,就可能被垃圾回收器回收。
* a==b 和 a.equals(b) 有什么区别
* 对于基本类型,a==b 可以等同于 。
* 对于引用类型,==表示地址相同,equals 表示值相等。
select X.a,X.b,Y.c from X join Y on X.a=Y.a;
* Table X contain 5 Million records,Table Y contain 10 Million records.
* Query has been running for 5 hours,根据日志看数据倾斜.
Shell
* awk
cat input.dat|awk -F ',' '{print $3;}'|awk -F '/' '{print $5;}'>>file_name_list.txt
```
cat input.dat |head -n 3|tail -n 2
# 先取前 3行,再取后 2 行
sed "s/DW/DM/g" input.dat >> temp.dat
public static void main(String[] args) throws IOException {
/*
BufferedReader bf=new BufferedReader(new InputStreamReader(new FileInputStream("/Users/dreamaker/data/input.dat")));
BufferedWriter bw=new BufferedWriter(new FileWriter("/Users/dreamaker/data/file_name_list.txt"));
while (bf.read()!=-1){
bw.write(bf.readLine().split(",")[2].split("/")[4]);
bw.newLine();
}
bw.flush();*/
/*
BufferedReader bf=new BufferedReader(new InputStreamReader(new FileInputStream("/Users/dreamaker/data/input.dat")));
BufferedWriter bw=new BufferedWriter(new FileWriter("/Users/dreamaker/data/temp.dat"));
while (bf.read()!=-1){
bw.write(bf.readLine().replace("DW","DM"));
bw.newLine();
}
bw.flush();*/
BufferedReader bf=new BufferedReader(new InputStreamReader(new FileInputStream("/Users/dreamaker/data/input.dat")));
BufferedWriter bw=new BufferedWriter(new FileWriter("/Users/dreamaker/data/temp.dat"));
while (bf.read()!=-1){
bw.write(bf.readLine().replace(" ","_"));
bw.newLine();
}
bw.flush();
}