大数据不是某个专业或一门编程语言,实际上它是一系列技术的组合运用。
有人通过下方的等式给出了大数据的定义。
大数据 = 编程技巧 + 数据结构和算法 + 分析能力 + 数据库技能 + 数学 + 机器学习 + NLP + OS + 密码学 + 并行编程
虽然这个等式看起来很长,需要学习的东西很多,但付出和回报是成正比的,至少和薪资是成正比的。
既然要学的知识很多,那么一个正确的学习顺序就非常关键了。
专业的学习路径,主要包含 7个模块:入门知识 → Java 基础 → Scala 基础 → Hadoop 技术模块 → Hadoop 项目实战 → Spark 技术模块 → 大数据项目实战。
具体说来:
模块一:学习入门知识
这一部分主要针对的是新手,在学习之前需要先掌握基本的数据库知识。MySQL 是一个 DBMS(数据库管理系统),是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。
MongoDB 是 IT 行业非常流行的一种非关系型数据库(NoSQL),其灵活的数据存储方式备受当前 IT 从业人员的青睐。而 Redis 是一个开源、支持网络、基于内存、键值对存储数据库。两者都非常有必要了解。
模块二:Java基础
Java 是目前使用最为广泛的编程语言,它具有的众多特性,特别适合作为大数据应用的开发语言。
Java 语言具有功能强大和简单易用两个特征,跨平台应用能力比 C、C++ 更易用,更容易上手。同时还具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。最重要的一点是 Hadoop 是用 Java 编写的。
模块三:Scala基础
Scala 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。由于 Scala 运行于 Java 平台(Java 虚拟机),并兼容现有的Java 程序,所以 Scala 可以和大数据相关的基于 JVM 的系统很好的集成。
模块四:Hadoop技术模块
Hadoop 是一款支持数据密集型分布式应用并以 Apache 2.0 许可协议发布的开源软件框架,它能搭建大型数据仓库,PB 级别数据的存储、处理、分析、统计等业务。编程语言你可以选,但 Hadoop 一定是大数据必学内容。
模块五:Hadoop项目实战
当然,学完理论就要进行动手实战了,Hadoop 项目实战可以帮助加深对内容的理解,并锻炼动手能力。
模块六:Spark技术模块
Spark 和 Hadoop 都是大数据框架。Hadoop 提供了 Spark 所没有的功能特性,比如分布式文件系统,而 Spark 为需要它的那些数据集提供了实时内存处理。所以学习 Spark 也非常必要。
模块七:大数据项目实战
最后阶段提供了大数据实战项目,这是对常用技能的系统运用,例如使用常用的机器学习进行建模、分析和运算,这是成为大数据工程师过程中的重要一步。