前言:知识这东西就是这样,必须要时不时的总结一下,不然等到面试的时候,面试官突然问你,哪怕你心中大概知道是怎么回事,但也不一定能够很好的表达出来。
一、Linux篇
这里不会讲基本的使用,只是会讲一下在面试过程以及在工作当中经常会操作到或者遇到高频的一些点。
1.内容检索:
grep命令结合管道操作符完成检索文件内容。
2.内容处理:
对文件内容进行统计分析,使用awk命令。
3.内容替换:
文档里内容进行一个批量的替换,使用sed。
Linux篇–高频常用命令
二、Java篇
大数据中很多框架Hadoop、Hive、Hbase、Elasticsearch、Storm、Spark、Flink等都支持java来开发的,所以说对于java基础的考察也是必不可少的。对于大数据这块所需要的java知识也不是非常多,但是开发的话javase是必须要掌握的。
下面这些虽然是属于java篇,但是与大数据框架的调优是息息相关的。
1.反射:
反射是一切框架的一个根源,如果没有反射那么所有框架就无从谈起。
Java篇–反射
2.注解:
在工作中,经常情况下注解和反射是要结合起来使用的。
Java篇–注解
Java篇–反射和注解综合使用
3.多线程:
线程的创建方式,线程的一个状态是先要掌握的。
4.并发:
线程里的并发,就是一些锁、线程池一类的东西。在很多公司的面试题里都会有生产者和消费者的案例,有的直接让写代码。
Java篇–多线程一
Java篇–多线程二
Java篇–多线程三
5.JVM:
了解classloader的机制、内存模型、垃圾回收。不要以为JVM只有在java中有,在spark、flink生产上面调优很多地方是需要配置JVM参数的调整才能使你的应用程序性能更好的执行。
Java篇–JVM一
Java篇–JVM二(内存结构)
Java篇–JVM三(垃圾回收GC)
三、大数据篇
当学习一个新框架的时候,如果想学好推荐的方法是官网加源码的学习方式。
1.分布式锁:
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。
大数据篇–分布式锁
2.HDFS:
3.小文件问题:
4.SQL on Hadoop:
一个东西能否使用SQL来描述,或者说最终能否提供给用户以SQL方式运行的是非常重要的。你试想一下Spark让用户去写Scala是很不现实的。
大数据篇–SQL on Hadoop