2024年大数据最全大数据方向学习进阶知识图谱_大数据技术知识图谱(2),2024年最新大数据开发语言基础教程

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

《2021年最新版大数据面试题全面开启更新》

《2021年最新版大数据面试题全面开启更新》

**总体描述:**大数据开发岗位技能树,学习和复习总纲。

**关键词:**面试 大数据 大纲

正所谓,无招胜有招。

愿读到这篇文章的技术人早日明白并且脱离技术本身,早登彼岸。

一切技术最终只是雕虫小技。

大纲

本系列主题是大数据开发面试指南,旨在为大家提供一个大数据学习的基本路线,完善数据开发的技术栈,以及我们面试一个大数据开发岗位的时候,哪些东西是重点考察的,这些公司更希望面试者具备哪些技能。

本文不会对某一个知识点进行详细的展开,后续会陆续出专题文章,希望读者能当成一个学习或者复习的大纲,用以查漏补缺。

语言基础篇

Java基础篇

整个大数据开发技术栈我们从实时性的角度来看,主要包含了离线计算和实时计算两大部分,而整个大数据生态中的框架绝大部分都是用 Java 开发或者兼容了 Java 的 API 调用,那么作为基于 JVM 的第一语言 Java 就是我们绕不过去的坎,Java 语言的基础也是我们阅读源码和进行代码调优的基础。

Java 基础主要包含以下部分:

  • 语言基础
  • 多线程
  • 并发包中常用的并发容器(J.U.C)

语言基础

  • Java 的面向对象
  • Java 语言的三大特征:封装、继承和多态
  • Java 语言数据类型
  • Java 的自动类型转换,强制类型转换
  • String 的不可变性,虚拟机的常量池,String.intern() 的底层原理
  • Java 语言中的关键字:final、static、transient、instanceof、volatile、synchronized的底层原理
  • Java 中常用的集合类的实现原理:ArrayList/LinkedList/Vector、SynchronizedList/Vector、HashMap/HashTable/ConcurrentHashMap 互相的区别以及底层实现原理
  • 动态代理的实现方式

  • CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor
  • 锁优化、锁消除、锁粗化、自旋锁、可重入锁、阻塞锁、死锁
  • 死锁的原因
  • 死锁的解决办法
  • CountDownLatch、CyclicBarrier 和 Semaphore 三个类的使用和原理

多线程

  • 并发和并行的区别

  • 线程与进程的区别

  • 线程的实现、线程的状态、优先级、线程调度、创建线程的多种方式、守护线程

  • 自己设计线程池、submit() 和 execute()、线程池原理

  • 为什么不允许使用 Executors 创建线程池

  • 死锁、死锁如何排查、线程安全和内存模型的关系

  • ThreadLocal 变量

  • Executor 创建线程池的几种方式:

    • newFixedThreadPool(int nThreads)
    • newCachedThreadPool()
    • newSingleThreadExecutor()
    • newScheduledThreadPool(int corePoolSize)
    • newSingleThreadExecutor()
  • ThreadPoolExecutor 创建线程池、拒绝策略

  • 线程池关闭的方式

并发容器(J.U.C)

  • JUC 包中 List 接口的实现类:CopyOnWriteArrayList
  • JUC 包中 Set 接口的实现类:CopyOnWriteArraySet、ConcurrentSkipListSet
  • JUC 包中 Map 接口的实现类:ConcurrentHashMap、ConcurrentSkipListMap
  • JUC包中Queue接口的实现类:ConcurrentLinkedQueue、ConcurrentLinkedDeque、ArrayBlockingQueue、LinkedBlockingQueue、LinkedBlockingDeque
Java 进阶篇

进阶篇部分是对 Java 基础篇的补充,这部分内容是我们熟读大数据框架的源码必备的技能,也是我们在面试高级职位的时候的面试重灾区。

JVM

JVM 内存结构

class 文件格式、运行时数据区:堆、栈、方法区、直接内存、运行时常量池

堆和栈区别

Java 中的对象一定在堆上分配吗?

Java 内存模型

计算机内存模型、缓存一致性、MESI 协议、可见性、原子性、顺序性、happens-before、内存屏障、synchronized、volatile、final、锁

垃圾回收

GC 算法:标记清除、引用计数、复制、标记压缩、分代回收、增量式回收、GC 参数、对象存活的判定、垃圾收集器(CMS、G1、ZGC、Epsilon)

JVM 参数及调优

-Xmx、-Xmn、-Xms、Xss、-XX:SurvivorRatio、-XX:PermSize、-XX:MaxPermSize、-XX:MaxTenuringThreshold

Java 对象模型

oop-klass、对象头

HotSpot

即时编译器、编译优化

虚拟机性能监控与故障处理工具

jps、jstack、jmap、jstat、jconsole、 jinfo、 jhat、javap、btrace、TProfiler、Arthas

类加载机制

classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw)

NIO

  • 用户空间以及内核空间
  • Linux 网络 I/O 模型:阻塞 I/O (Blocking I/O)、非阻塞 I/O (Non-Blocking I/O)、I/O 复用(I/O Multiplexing)、信号驱动的 I/O (Signal Driven I/O)、异步 I/O
  • 灵拷贝(ZeroCopy)
  • BIO 与 NIO 对比
  • 缓冲区 Buffer
  • 通道 Channel
  • 反应堆
  • 选择器
  • AIO

RPC

  • RPC 的原理编程模型
  • 常用的 RPC 框架:Thrift、Dubbo、SpringCloud
  • RPC 的应用场景和与消息队列的差别
  • RPC 核心技术点:服务暴露、远程代理对象、通信、序列化
Linux 基础
  • 了解 Linux 的常用命令
  • 远程登录
  • 上传下载
  • 系统目录
  • 文件和目录操作
  • Linux 下的权限体系
  • 压缩和打包
  • 用户和组
  • Shell 脚本的编写
  • 管道操作
分布式理论篇
  • 分布式中的一些基本概念:集群(Cluster)、负载均衡(Load Balancer)等
  • 分布式系统理论基础:一致性、2PC 和 3PC
  • 分布式系统理论基础:CAP
  • 分布式系统理论基础:时间、时钟和事件顺序
  • 分布式系统理论进阶:Paxos
  • 分布式系统理论进阶:Raft、Zab
  • 分布式系统理论进阶:选举、多数派和租约
  • 分布式锁的解决方案
  • 分布式事务的解决方案
  • 分布式 ID 生成器解决方案
大数据框架网络通信基石——Netty

Netty 是当前最流行的 NIO 框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,业界著名的开源组件只要涉及到网络通信,Netty 是最佳的选择。

关于 Netty 我们要掌握:

  • Netty 三层网络架构:Reactor 通信调度层、职责链 PipeLine、业务逻辑处理层
  • Netty 的线程调度模型
  • 序列化方式
  • 链路有效性检测
  • 流量整形
  • 优雅停机策略
  • Netty 对 SSL/TLS 的支持
  • Netty 的源码质量极高,推荐对部分的核心代码进行阅读:
  • Netty 的 Buffer
  • Netty 的 Reactor
  • Netty 的 Pipeline
  • Netty 的 Handler 综述
  • Netty 的 ChannelHandler
  • Netty 的 LoggingHandler
  • Netty 的 TimeoutHandler
  • Netty 的 CodecHandler
  • Netty 的 MessageToByteEncoder

离线计算

Hadoop 体系是我们学习大数据框架的基石,尤其是 MapReduce、HDFS、Yarn 三驾马车基本垫定了整个数据方向的发展道路。也是后面我们学习其他框架的基础,关于 Hadoop 本身我们应该掌握哪些呢?

MapReduce:

  • 掌握 MapReduce 的工作原理
  • 能用 MapReduce 手写代码实现简单的 WordCount 或者 TopN 算法
  • 掌握 MapReduce Combiner 和 Partitioner的作用
  • 熟悉 Hadoop 集群的搭建过程,并且能解决常见的错误
  • 熟悉 Hadoop 集群的扩容过程和常见的坑
  • 如何解决 MapReduce 的数据倾斜
  • Shuffle 原理和减少 Shuffle 的方法

HDFS:

  • 十分熟悉 HDFS 的架构图和读写流程
  • 十分熟悉 HDFS 的配置
  • 熟悉 DataNode 和 NameNode 的作用
  • NameNode 的 HA 搭建和配置,Fsimage 和 EditJournal 的作用的场景
  • HDFS 操作文件的常用命令
  • HDFS 的安全模式

Yarn:

  • Yarn 的产生背景和架构
  • Yarn 中的角色划分和各自的作用
  • Yarn 的配置和常用的资源调度策略
  • Yarn 进行一次任务资源调度的过程
OLAP 引擎 Hive

Hive 是一个数据仓库基础工具,在 Hadoop 中用来处理结构化数据。它架构在 Hadoop 之上,总归为大数据,并使得查询和分析方便。Hive 是应用最广泛的 OLAP 框架。Hive SQL 也是我们进行 SQL 开发用的最多的框架。

关于 Hive 你必须掌握的知识点如下:

  • HiveSQL 的原理:我们都知道 HiveSQL 会被翻译成 MapReduce 任务执行,那么一条 SQL 是如何翻译成 MapReduce 的?
  • Hive 和普通关系型数据库有什么区别?
  • Hive 支持哪些数据格式
  • Hive 在底层是如何存储 NULL 的
  • HiveSQL 支持的几种排序各代表什么意思(Sort By/Order By/Cluster By/Distrbute By)
  • Hive 的动态分区
  • HQL 和 SQL 有哪些常见的区别
  • Hive 中的内部表和外部表的区别
  • Hive 表进行关联查询如何解决长尾和数据倾斜问题
  • HiveSQL 的优化(系统参数调整、SQL 语句优化)
列式数据库 Hbase

我们在提到列式数据库这个概念的时候,第一反应就是 Hbase。

HBase 本质上是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了 Hadoop 的文件系统(HDFS)提供的容错能力。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

据。它利用了 Hadoop 的文件系统(HDFS)提供的容错能力。

[外链图片转存中…(img-SXkCiNbz-1715251988433)]
[外链图片转存中…(img-zpxrh5ly-1715251988433)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第一部分 Spark学习 ....................................................................................................................... 6 第1章 Spark介绍 ................................................................................................................... 7 1.1 Spark简介与发展 ...................................................................................................... 7 1.2 Spark特点 .................................................................................................................. 7 1.3 Spark与Hadoop集成 ................................................................................................ 7 1.4 Spark组件 .................................................................................................................. 8 第2章 Spark弹性分布数据集 ............................................................................................... 9 2.1 弹性分布式数据集 .................................................................................................... 9 2.2 MapReduce数据分享效率低..................................................................................... 9 2.3 MapReduce行迭代操作 ........................................................................................ 9 2.4 MapReduce行交互操作 ...................................................................................... 10 2.5 Spark RDD数据分享 ............................................................................................... 10 2.6 Spark RDD 迭代操作 .............................................................................................. 10 2.7 Spark RDD交互操作 ............................................................................................... 10 第3章 Spark安装 ................................................................................................................. 11 第4章 Spark CORE编程 ....................................................................................................... 13 4.1 Spark Shell ........................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值