聊一聊大数据学习路线
Posted 公众号程序员学长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊一聊大数据学习路线相关的知识,希望对你有一定的参考价值。
大家好,我是程序员学长。
距离上次更文已经相隔一个多月了,大家不会把我给忘了吧,哈哈~~
由于最近一直在忙家里装修的事情,所以就一直没精力去更新文章,好在基本已经搞得差不多了,也可以回归了,等彻底搞定了,给大家分享出来。
金三银四马上就要到了,去年更新的高频算法系列基本已经更新完事了,一共有100多道面试高频题,每道题都有详细的解析。
如果需要这份pdf,大家可以关注公众号【程序员学长】,回复666,可得。
最近有小伙伴问我,到底该如何学习大数据呢?有什么推荐的书籍吗?
这里特地给大家整理了一份学习大数据的路线图,并且把自己觉得不错的书也给大家整理出来了,跟着学长走,学习大数据不迷路。
整体大纲如下所示:
一、javaSE基础核心
大数据中的大部分组件都是用java语言开发的,并且在日常的开发中大部分也是使用java语言进行开发的,所以java是学习大数据的基础。
1、java 基础语法
java基础语法推荐大家看 《java核心技术》,分为卷I和卷II。
2、Java多线程
学完基础之后,推荐大家学习一下java多线程相关的知识,这里推荐《java并发编程的艺术》。
3、java 虚拟机
java虚拟机部分推荐大家看周志明老师的《深入理解java虚拟机》,作为最畅销的jvm相关的书籍,质量可想而知。建议大家多读几遍。
4、Mysql
搞大数据的都习惯调侃自己是SQL Boy,所以说Sql是必须掌握的。在大数据存储组件中,包含很多分布式数据库,都需要编写一定的 SQL 代码,而这些都是以 SQL 语法为基础的。
这里推荐《MySQL技术内幕InnoDB存储引擎》。
二、必备工具
1、IDEA
IDEA 全称 IntelliJ IDEA,是 Java 编程语言开发的集成环境。目前在业界被公认为最好的 Java 开发工具。
其官网地址是:https://www.jetbrains.com/idea/
大家可以在本地安装一下,体会一下使用该工具进行java开发。
2、Maven
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
大家可以去菜鸟教程进行学习。
https://www.runoob.com/maven/maven-tutorial.html
3、Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
大家可以去菜鸟教程上学习。
https://www.runoob.com/git/git-tutorial.html
4、Linux
在企业中,大数据组件都是部署在linux上的,所以我们需要学会常用的linux命令。
这里推荐《鸟哥的Linux私房菜》。
三、Hadoop生态体系
1、Hadoop
Hadoop 是分布式系统的基础架构。Hadoop 框架包括 HDFS 和 MapReduce。其中HDFS 提供了海量数据的存储,MapReduce为海量数据提供了计算。
这里推荐《Hadoop权威指南》和《Hadoop技术内幕》系列。
2、Yarn
Yarn 是一个通用资源管理器,可为上层应用提供统一的资源管理和调度。
这里推荐《hadoop技术内幕》系列中,关于yarn的部分。
3、Hbase
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable”。HBase在Hadoop之上提供了类似于Bigtable的能力。
这里推荐《Hbase权威指南》这本书。
4、Hive
Hive 是基于 Hadoop 的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。
Hive也是我们在日常工作中用到最多的组件。这里推荐《Hive编程指南》这本书。
5、kafka
Kafka是由Apache软件基金会开发的一个开源流处理平台,是一种高吞吐量的分布式发布订阅消息系统。
这里推荐《深入理解Kafka(核心设计与实践原理)》这本书。
6、Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
这里推荐《ZooKeeper:分布式过程协同技术详解》这本书。
三、Spark生态体系
1、Scala基础语法
Spark是采用Scala进行开发的,我们在日常开发Spark、FLink程序时,都会或多或少的用到Scala开发语言,这里推荐去菜鸟教程上去学习就可以。
https://www.runoob.com/scala/scala-tutorial.html
2、Spark
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark 是 UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是-Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark是目前企业中使用最多的流式计算框架,这里推荐《Spark内核设计的艺术:架构设计与实现》
四、FLink生态体系
1、FLink
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink是一个以流为核心的分布式计算引擎。具备流批一体,高吞吐、低延迟,容错能力,大规模复杂计算等特点。
这里推荐《Flink内核原理与实现》和《基于Apache Flink的流处理》。
2、Druid
Druid 作为一款开源的实时大数据分析软件,最近几年快速风靡全球互联网公司,特别是对于海量数据和实时性要求高的场景,包括广告数据分析、用户行为分析、数据统计分析、运维监控分析等,在腾讯、阿里、优酷、小米等公司都有大量成功应用的案例。
这里推荐《Druid实时大数据分析原理与实践》这本书。
以上就是我结合个人经验,总结出来的学习大数据的路线图,真的是非常不容易。
重磅消息来了,以上提到的数据,学长都给你们准备好了电子版,还不快来领取。
关注公众号,回复:学习路线,就可以得到全套的大数据学习资料,快来学起来吧。
跟着学长走,进入大厂不迷路~
以上是关于聊一聊大数据学习路线的主要内容,如果未能解决你的问题,请参考以下文章