文章目录:
一:学习路线
1.基础阶段
Linux | 基本命令、用户管理、权限管理、网络管理、SSH、VI、Shell编程 | |
编程语言 | Java | JavaSE、JavaEE、SSM框架、分布式机构、组件、JVM、JUC、JavaWeb |
Python | 函数、面向对象、异常、模块与包、网络编程、 多进程、多线程、闭包、装饰器、迭代器 数据分析、数据挖掘 机器学习、深度学习 | |
Scala | 综合了面向对象和函数式编程概念的静态类型的编程语言 它运行在 Java 虚拟机上,可以与所有的 Java 类库无缝协作 著名的 Kafka 就是采用 Scala 语言进行开发的 | |
R | 用于统计分析、图形展示和报告的编程语言 | |
其他编程语言 | C、C++、GO、PHP | |
数据库 | 关系型 | MySQL、SQL Server、Kudu、Oracle、DB2、PostgreSQL |
非关系型 | MangoDB、Redis、Hbase、ElasticSearch、Hive | |
PL语言 (Procedural Language) | 称过程化结构查询语言,它是一种建立在普通SQL语言之上的编程语言 | |
计算机基础 | 数据结构、计算机网络、操作系统、计算机组成原理 | |
前端 | 框架 | React:由Facebook开发的JavaScript库,用于构建用户界面 Vue:渐进式JavaScript框架,以数据驱动和组件化著称 Angular:由Google维护的开源Web应用框架 |
数据可视化库/工具 | D3.js:基于Web标准的JavaScript库,用于在网页上创建复杂的数据可视化效果 ECharts:由百度开发的,提供了丰富的图表类型和便捷的配置项,能够实现复杂的数据可视化需求 Highcharts:数据可视化库,提供了多种图表类型和交互功能,适用于各种类型的数据展示 | |
数学扩展 | 高数、线性代数、离散熟悉、概率统计 |
2.进阶阶段(框架)
Hadoop框架 [数据仓库开发] | Zookeeper 分布式服务框架 | 架构原理、存储模型、ZK集群搭建、选举机制 |
CDH发行版 | 架构、组件构建、CM实操 | |
Hadoop HDFS组件 | 分布式文件系统,用于大数据的存储 | |
Hadoop MapReduce组件 | 编程模型和计算方法,用于大数据的并行处理 | |
Hadoop Yarn组件 | 资源管理和作业调度框架 提高资源利用率和应用的运行效率 | |
Hive框架 [数据仓库开发] | Client(客户端)组件 | 用户接口,包含CLI(命令行界面)、JDBC/ODBC接口以及WEBUI(基于浏览器的用户界面) 用户通过这些接口与Hive进行交互,提交查询或执行其他操作 |
Thrift Server组件 | 提供JDBC/ODBC接入的能力,支持可扩展且跨语言的服务开发Hive集成了Thrift服务,使得不同编程语言能够调用Hive的接口,从而实现与Hive的交互 | |
Metastore组件 (元数据服务) | 存储Hive的元数据,包括表名、表所属的数据库、表的拥有者、列/分区字段、表的类型、表的数据所在目录等 Metastore是Hive架构中非常关键的一部分,它管理着Hive中所有的元数据信息 | |
Driver组件 (驱动器) | 负责将用户编写的HQL(Hive查询语言)语句进行解析、编译优化,并生成执行计划 Driver会调用底层的MapReduce或Spark等计算框架来执行这些计划,最终返回查询结果给用户 | |
Spark框架 [内存 用户画像] | Spark Core组件 | 基础组件,提供任务调度、内存管理、容错处理等功能 |
Spark SQL组件 | 用于结构化数据处理的模块,支持SQL查询能力 | |
Spark Streaming组件 | 支持处理来自多种数据源的实时数据流 | |
MLlib组件 | 分布式机器学习库,包含一系列常用的机器学习算法 | |
GraphX组件 | 用于图计算的API,提供分布式图计算的操作和算法 | |
Kafka框架 [内存 用户画像] | Producer组件 | 负责数据生产的组件,将数据写入Kafka的主题中 |
Consumer组件 | 负责数据消费的组件,从Kafka的主题中读取数据 | |
Broker组件 | Kafka的核心组件,负责数据的存储、复制和分发 | |
Zookeeper组件 | 用于集群状态管理和协同操作的工具 负责Broker的协调、状态监控和元数据管理 | |
Flink框架 [流处理流计算] | DataStream API组件 | 用于处理实时数据流的核心组件 |
DataSet API组件 | 用于批处理任务,支持对静态数据集合的处理 | |
CEP组件 | 用于复杂事件处理的组件 支持从实时数据流中提取和处理复杂事件序列 | |
Table API和SQL组件 | 提供高级数据处理接口,支持SQL语法进行数据查询和分析 | |
Storm框架 [流处理流计算] | Topology组件 | 定义任务执行逻辑的核心组件 由Spouts(数据源)和Bolts(处理逻辑)组成 |
Nimbus组件 | 主节点,负责任务的分配和监控 | |
Supervisor组件 | 工作节点,负责执行具体的任务 | |
HBase框架 | HMaster组件 (主节点) | 负责集群的管理和调度,包括RegionServer的元数据管理、Region的分配和负载均衡、客户端请求的路由等功能 |
RegionServer组件 (数据节点) | 负责存储和管理数据:包括Store的管理、数据的读写操作、客户端请求的处理等功能 RegionServer是HBase集群中处理数据的主要节点 | |
Region组件 (数据分区单元) | 包括一组Store,是HBase数据存储的基本单位 Region负责数据的存储和管理、数据的自动复制和备份等功能 | |
Store组件 (存储单元) | 包括一组MemStore和一个或多个HFile 是存储数据的物理单元,负责数据的写入和刷新、数据的读取和合并等功能 | |
MemStore组件 (内存缓存) | 负责存储数据写入的临时缓存,当MemStore达到一定大小时,会触发刷新操作,将数据写入到HFile中 | |
HFile组件 (存储文件) | 负责存储数据写入的持久化文件,是HBase中数据的最终存储形式 HFile支持数据的读取和合并、数据的压缩和编码等功能 | |
Cassandra框架 | Cluster组件 (集群) | 由多个节点组成,每个节点运行Cassandra的实例 Cassandra集群通过Gossip协议进行节点间的通信和状态同步 |
Node组件 (节点) | 集群中的单个Cassandra实例,负责存储和处理数据。节点可以是物理机或虚拟机 | |
Rack组件 (机架) | 一组节点的集合,通常位于同一个物理位置(如数据中心的一个机房内) | |
DataCenter组件 (数据中心) | 一组Racks的集合,通常位于同一个地理位置或网络区域 | |
Partitioner组件 (分区器) | 决定数据如何在集群内被分发。 Cassandra提供了多种分区器,如Murmur3Partitioner、RandomPartitioner和ByteOrderedPartitioner等,用于将数据均匀地分布在集群中 | |
Virtual Nodes组件 (虚拟节点) | Cassandra使用虚拟节点来提高集群的灵活性和可扩展性 每个虚拟节点对应一个token值,决定了节点在环中的位置以及节点应当承担的一段连续的数据hash值的范围 | |
Flume框架 | Agent组件 | Agent是Flume数据传输的基本单元,它以独立的JVM进程运行,负责将数据从源头(Source)收集并传输到目的地(Sink) |
Source组件 | Source是Flume的输入组件,负责从各种数据源(如日志文件、网络端口、消息队列等)接收数据,并将其转换为Flume事件(Event),然后发送到Channel中 | |
Channel组件 | Channel是Flume中的缓冲区,位于Source和Sink之间,用于临时存储来自Source的数据 它允许Source和Sink以不同的速率运行,从而确保数据的可靠传输Channel可以是内存中的队列(如Memory Channel),也可以是磁盘上的文件(如File Channel) | |
Sink组件 | Sink是Flume的输出组件,负责从Channel中读取数据,并将其写入到外部存储系统(如HDFS、数据库、消息队列等)或发送到另一个Flume Agent Sink组件通过事务机制确保数据的完整性和一致性 | |
Scala框架 | Play Framework组件 | Play Framework集成了路由定义、控制器、视图模板、模型等多种组件,为开发者提供了构建高性能、可扩展Web应用程序的全面解决方案 |
Finatra组件 | Finatra构建在Twitter的Finagle和TwitterServer之上,提供了HTTP服务器、路由、过滤器等组件,以及强大的JSON支持,专注于构建快速、可测试的服务 | |
Scalatra组件 | Scalatra是一个轻量级Web框架,其组件设计简洁,主要包括路由系统、中间件支持和模板引擎,使开发者能够以较少的代码实现高效的Web应用开发 |
3.提升阶段(分流程)
数据来访 | 数据访问权限与安全 | 学习如何设置数据访问权限,确保数据的安全性和隐私性 | |
数据接口与API | 了解如何通过API接口访问数据,以及数据交换的标准和协议 | ||
数据挖掘 | 数学基础 | 包括概率论、统计学、线性代数等,这些是进行数据挖掘的基础 | |
机器学习算法 | 学习分类、聚类、关联规则挖掘等算法,以及常用的机器学习库,如scikit-learn Kettle工具:提供了图形化的设计界面,用户可以通过拖拽和连接不同的组件来构建数据转换流程 | ||
编程语言 | Python、Scala、R、Java | ||
数据采集 | 数据采集技术 | 爬虫技术、Flume日志收集、流式数据采集、传感器数据采集 | |
数据格式 与标准 | 数据格式(如CSV、JSON、XML) 数据标准(如HL7、ISO 8583)的解析与转换 | ||
数据清洗 | Cannal | Mysql数据同步 | |
Sqoop | ETL工具:于数据处理的通用工具,它通过抽取(Extract)、转换(Transform)和加载(Load)三个步骤 | ||
数据分析 | BI工具 | 主要用于数据分析、数据可视化、决策支持和业务监控 SmartBI、Informatica、帆软、Cognos | |
R语言 | 是一种用于统计分析、图形展示和报告的编程语言 | ||
Pandas工具 | 基于Python的NumPy 的一种工具,为解决数据分析任务而创建的 | ||
Sklearn工具 | 开源的Python机器学习库工具,用于数据挖掘和数据分析 | ||
其他分析工具 | Excel、SPSS社会科学统计软件包、SAS统计分析软件系统等 | ||
可视化工具 | Tableau工具、Power BIg可视化工具 | ||
数据加工 | 去重、去噪、填充缺失值、格式转换、单位转换、数据连接、数据聚合、数据融合等操作 | ||
DataWorks | 集数据开发、数据集成、数据治理、数据服务等功能于一体的数据中台建设工具 | ||
数据处理框架 | MapReduce、HiveQL、SparkSQL | ||
数据建模 | Matlab | 用于数据分析、无线通信、深度学习、图像处理与计算机视觉、 信号处理、量化金融与风险管理、机器人,控制系统等领域 | |
数据存储 | 数据库 | 关系型:MySQL、SQL Server、Kudu、Oracle、DB2、PostgreSQL 非关系型:MangoDB、Redis、Hbase、ElasticSearch、Hive | |
HDFS | 分布式文件系统 | ||
Cassandra | 一套开源分布式NoSQL数据库存储系统 | ||
Kudu | 列数据库,同时支持OLAP | ||
数据传输 | 传输工具 | Flume、Sqoop、DataX、SeaTunnel、FlinkCDC、Cancel、Maxwell | |
网络通信协议 | 学习TCP/IP、HTTP等网络通信协议,以及数据在网络中的传输机制 | ||
数据交换标准 | 了解XML、JSON等数据交换标准,以及如何使用这些标准进行数据传输 | ||
数据推荐 | 推荐系统算法 | 学习协同过滤、基于内容的推荐、混合推荐等算法,推荐系统的评估与优化方法 | |
用户行为分析 | 了解用户行为数据的收集、处理和分析方法,以便为推荐系统提供输入 | ||
离线分析 | MapReduce | 离线计算框架,是一种编程模型,用于大规模数据集(大于1TB)的并行运算 | |
Hive工具 | 数据仓库工具,用来进行数据提取、转化、加载 | ||
Spark | Scala函数式编程语言 Spark SQL高性能数仓工具 Spark MLLib机器学习 | ||
多维分析 | Kylin | 离线多维分析引擎 | |
实时计算 | Spark streming | 实时批处理框架 | |
Storm | 事时流处理框架 | ||
Flink | 实时流处理框架 | ||
云数据仓库 | MaxCompute | 是一种快速、完全托管的TB/PB级数据仓库解决方案 | |
云组件 | 阿里云、腾讯云、华为云 |
二:大数据就业方向
数据工程与运维 | 大数据运维工程师 大数据实施工程师 ETL工程师 数据仓库建模工程师 数据咨询师 数据服务工程师 数据安全工程师 数据管理工程师 数据管理评估师 |
数据分析与挖掘 | 数据挖掘工程师 数据可视化开发工程师 离线计算工程师 SQL开发工程师 数据采集工程师 数据标注工程师 大数据处理工程师 |
开发 | Spark开发工程师 Scala开发工程师 Kafka开发工程师 Flink开发工程师 Hadoop开发工程师 Hive开发工程师 Doris开发工程师 大数据平台开发工程师 大数据应用系统开发工程师 |
内核 | 数据仓库内核开发工程师 Hdfs文件内核开发工程师 Spark内核开发工程师 Flink内核开发工程师 |
高级 | 大数据高级工程师 大数据算法工程师 数据架构工程师 |