您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

大数据学习

语言基础篇

Java基础篇

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

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

语言基础

多线程

并发包中常用的并发容器

语言基础

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

newCachedThreadPool()

newSingleThreadExecutor()

newScheduledThreadPool

newSingleThreadExecutor()

ThreadPoolExecutor 创建线程池、拒绝策略

线程池关闭的方式

并发容器

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 参数、对象存活的判定、垃圾收集器

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、类加载过程、双亲委派、模块化

NIO

用户空间以及内核空间

Linux 网络 I/O 模型:阻塞 I/O 、非阻塞 I/O 、I/O 复用

BIO 与 NIO 对比

缓冲区 Buffer

通道 Channel

反应堆

选择器

AIO

RPC

RPC 的原理编程模型

常用的 RPC 框架:Thrift、Dubbo、SpringCloud

RPC 的应用场景和与消息队列的差别

RPC 核心技术点:服务暴露、远程代理对象、通信、序列化

Linux 基础

了解 Linux 的常用命令

远程登录

上传下载

系统目录

文件和目录操作

Linux 下的权限体系

压缩和打包

用户和组

Shell 脚本的编写

管道操作

分布式理论篇

分布式中的一些基本概念:集群、负载均衡等

分布式系统理论基础:一致性、2PC 和 3PC

分布式系统理论基础:CAP

分布式系统理论基础:时间、时钟和事件顺序

分布式系统理论进阶:Paxos

分布式系统理论进阶:Raft、Zab

分布式系统理论进阶:选举、多数派和租约

分布式锁的解决方案

分布式事务的解决方案

大数据框架网络通信基石——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 支持的几种排序各代表什么意思

Hive 的动态分区

HQL 和 SQL 有哪些常见的区别

Hive 中的内部表和外部表的区别

Hive 表进行关联查询如何解决长尾和数据倾斜问题

HiveSQL 的优化

列式数据库 Hbase

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

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

它是 Hadoop 的生态系统,提供对数据的随机实时读/写访问,是 Hadoop 文件系统的一部分。

我们可以直接或通过 HBase 的存储 HDFS 数据。使用 HBase 在 HDFS 读取消费/随机访问数据。HBase 在 Hadoop 的文件系统之上,并提供了读写访问。

HBase 是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个 HBase:表是行的集合、行是列族的集合、列族是列的集合、列是键值对的集合。

关于 Hbase 你需要掌握:

Hbase 的架构和原理

Hbase 的读写流程

Hbase 有没有并发问题?Hbase 如何实现自己的 MVVC 的?

Hbase 中几个重要的概念:HMaster、RegionServer、WAL 机制、MemStore

Hbase 在进行表设计过程中如何进行列族和 RowKey 的设计

Hbase 的数据热点问题发现和解决办法

提高 Hbase 的读写性能的通用做法

HBase 中 RowFilter 和 BloomFilter 的原理

Hbase API 中常见的比较器

Hbase 的预分区

Hbase 的 Compaction

Hbase 集群中 HRegionServer 宕机如何解决

实时计算篇

分布式消息队列 Kafka

Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的、多副本的的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 Hadoop 的批处理系统、低延迟的实时系统、Spark 流式处理引擎,Nginx 日志、访问日志,消息服务等等,用 Scala 语言编写,Linkedin 于 2010 年贡献给了 Apache 基金会并成为顶级开源项目。

Kafka 或者类似 Kafka 各个公司自己造的消息&x27;已经是大数据领域消息中间件的事实标准。目前 Kafka 已经更新到了 2.x 版本,支持了类似 KafkaSQL 等功能,Kafka 不满足单纯的消息中间件,也正朝着平台化的方向演进。

关于 Kafka 我们需要掌握:

Kafka 的特性和使用场景

Kafka 中的一些概念:Leader、Broker、Producer、Consumer、Topic、Group、Offset、Partition、ISR

Kafka 的整体架构

Kafka 选举策略

Kafka 读取和写入消息过程中都发生了什么

Kakfa 如何进行数据同步

Kafka 实现分区消息顺序性的原理

消费者和消费组的关系

消费 Kafka 消息的 Best Practice是怎样的

Kafka 如何保证消息投递的可靠性和幂等性

Kafka 消息的事务性是如何实现的

如何管理 Kafka 消息的 Offset

Kafka 的文件存储机制

Kafka 是如何支持 Exactly-once 语义的

通常 Kafka 还会要求和 RocketMQ 等消息中间件进行比较

Spark

Spark 是专门为大数据处理设计的通用计算引擎,是一个实现快速通用的集群计算平台。它是由加州大学伯克利分校 AMP 实验室开发的通用内存并行计算框架,用来构建大型的、低延迟的数据分析应用程序。它扩展了广泛使用的 MapReduce 计算模型。高效的支撑更多计算模式,包括交互式查询和流处理。Spark 的一个主要特点是能够在内存中进行计算,即使依赖磁盘进行复杂的运算,Spark 依然比 MapReduce 更加高效。

Spark 生态包含了:Spark Core、Spark Streaming、Spark SQL、Structured Streming 和机器学习相关的库等。

学习 Spark 我们应该掌握:

Spark Core:

Spark的集群搭建和集群架构

Spark Cluster 和 Client 模式的区别

Spark 的弹性分布式数据集 RDD

Spark DAG

掌握 Spark RDD 编程的算子 API

RDD 的依赖关系,什么是宽依赖和窄依赖

RDD 的血缘机制

Spark 核心的运算机制

Spark 的任务调度和资源调度

Spark 的 CheckPoint 和容错

Spark 的通信机制

Spark Shuffle 原理和过程

Spark Streaming:

原理剖析和运行机制

Spark Dstream 及其 API 操作

Spark Streaming 消费 Kafka 的两种方式

Spark 消费 Kafka 消息的 Offset 处理

数据倾斜的处理方案

Spark Streaming 的算子调优

并行度和广播变量


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进