大数据java面试题总结

之前大数据开发面试整理的一些资料,时间长忘了上传了,现在上传上来,提供给需要的人帮助。可参考性的面试技术题,不全但是肯定会有用。

一:java(多线程):

1.hashmap的底层实现原理,扩容,初始容量;hashmap与concurrentHashMap的区别;与hashTable的区别;

https://blog.csdn.net/justloveyou_/article/details/72783008

2.hashset的底层实现;

3.ArrayList与linklist的使用场景及原理;初始容量10;扩容机制;set等;

http://www.cnblogs.com/xiezie/p/5511840.html

4.多线程的具体实现;volitile关键字的作用;与syonchronized的区别;lock的区别;

https://blog.csdn.net/u011974987/article/details/51027795

5.java内存模型jmm;

6.java分布式锁的实现;MySQL及Redis,zookeeper等实现;

http://www.cnblogs.com/PurpleDream/p/5559352.html

7.线程池构造类方法的五个参数的具体意义;

this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
 Executors.defaultThreadFactory(), handler);

8.Java concurrent包下面主要类使用说明;

9.Java读写锁以及java多线程的锁;

https://blog.csdn.net/gaugamela/article/details/78656485    
https://blog.csdn.net/chenchaofuck1/article/details/51660119

10.java常用设计模式精通及手写;

二:hadoop体系(HBASE):

1.HDFS的数据读取流程;https://blog.csdn.net/qq_20641565/article/details/53328279

hdfs的数据备份;hadoop的高可用HA保证;

2.MapReduce的原理;shuffle过程;

   https://blog.csdn.net/u014374284/article/details/49205885
   优化;大小表的拼接mapreduce实现;reduce如何获取map数据;mapreduce个数确定;

3.HBASE的架构;二级索引的设计理念;表设计根据场景;rowkey设计(及二级索引的rowkey设计);master的选举;

   高可用HA保证;LSM-TREE原理;布隆过滤器bloom-filter;为什么会有误差;
   HBASE的mvcc多版本并发控制;zookeeper存储;HBASE数据读取流程;HBASE集群版本;
   HBASE预分区实现;https://blog.csdn.net/Nougats/article/details/72723172
   hbase的客户端与服务端的配置优化及性能优化;
   hbase二级索引修改的源码的类及方法;
   hbase的数据更新原子操作实现原理;
   HBASE二级索引实现细节;   

4.Zookeeper的架构;zab协议;选举制度;二阶段与三阶段提交协议;分布式锁的实现;

5.yarn的整体架构;资源分配等;

6.kafka数据读取;数据丢失与数据重复消费解决办法;kafka的分区个数;kafka备份机制;kafka的最少一次等等;kafka数据格式;

https://blog.csdn.net/ychenfeng/article/details/74980531

7.flume的数据丢失解决;channel的选型;数据源采集方法;flume技术细节

8.hive的开发使用原理、问题解决;数据倾斜及优化;

三:jvm

1.java类加载机制;每个步骤执行那些操作;jvm运行时数据区域及应用;

2.gc回收:几种gc回收机制;gc过程详解(g1,cms详解);各自的使用场景;常见gc优化案例及实际场景优化;常用命令说明;排查gc的方法及过程;

3.java内存模型介绍;

4.排查jvm相关问题的命令及操作步骤;

http://www.hollischuang.com/archives/1561

四:MySQL

1.MySQL常见问题:存储引擎区别;行转列等问题;悲观锁与乐观锁及使用场景;

2.MySQL的mvcc原理;

五:算法

1.排序:冒泡;快速(递归与非递归的实现);插入等

2.查找:二分查找的实现;

3.树:层次遍历等(队列的存储);

4.栈的应用场景(匹配符号等);

5.开发中用的比较多的数据结构;

6.跳台阶问题

https://hacpai.com/article/1470144369409?p=1&m=0

7.《剑指offer》刷题;

六:数据仓库(hive)

1.数据仓库技术;

2.hive优化;

https://blog.csdn.net/MrLevo520/article/details/76339075

3.hql语句;

七:流式处理技术(spark/flink架构原理)

1.spark-streaming

2.spark-sql

3.spark_MLLib

八:ETL数据处理(ELK与kettle)

1.具体数据流程项目开发实战

九:linux☞shell开发

你可能感兴趣的:(大数据java面试题总结)