大数据开发工程师面试题锦集

1、一个网络商城1天大概产生多少G的日志?

10GB

2、1天大概有多少条日志记录(在不清洗的情况下)? 

1千万条

3、日访问量大概有多少个?

几十万个独立访客

4、注册数大概多少?不清楚几百万吧

5、我们的日志是不是除了apache的访问日志是不是还有其他的日志?

log4j日志

6、你们的服务器有多少台?

几十台

7、你们服务器的内存多大?

有的8G,有的16G

8、你们的服务器怎么分布的?(这里说地理位置分布,最好也从机架方面也谈谈,比如datanode服务器都放在同一个机架上,直接copy,速度快又节省网络传输)

9、你们的集群规模?

flume集群:6台

hadoop集群:17台

storm集群:3台

Spark集群:5台

hbase集群:  7台

kafka集群:5台

网安:2台

Mysql服务器:2台

其他:1台

 

10、你在项目中遇到了哪些难题,是怎么解决的?

某些任务执行时间过长,且失败率过高,检查日志后发现没有执行完就失败,原因出在hadoop的job的timeout过短(相对于集群的能力来说),设置长一点即可。

方案1:修改mapred-site.xml:

  
    mapred.task.timeout  
    600000可以改的更长!  

方案2:根据业务需要手动set值(JAVA代码):

conf.setLong("mapred.task.timeout", 900000L); 

 

11、谈谈数据倾斜,如何发生的,并给出优化方案。
原因:
(1)key分布不均匀
(2)业务数据本身的特性
(3)建表时考虑不周
(4)某些SQL语句本身就有数据倾斜

map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。

 

12、你们hbase的行键怎么设计的

UUID前6位_time(10)_(1000+nextInt(9000)) (防止出现读写热点,因为rowkey默认方式是顺序增长)

例如:4346a1_2018-07-11_1268

nextInt(1000)为[0,1000)的整数

 

你可能感兴趣的:(大数据)