整理的最全大数据学习之路「大神必修课」

前言:

一、背景介绍

二、大数据介绍

正文:

一、大数据相关的工作介绍

二、大数据工程师的技能要求

三、大数据学习规划

四、持续学习资源推荐(书籍,博客,网站)

五、项目案例分析(批处理+实时处理)

前言

一、背景介绍

本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。

二、大数据介绍

对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群:868847735   欢迎进阶中和进想深入大数据的小伙伴加入。

大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

针对以上主要的4个特征我们需要考虑以下问题:

数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。

数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。

由于数据增长速度快,数据存储就必须可以水平扩展。

数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?

对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;

普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;

但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。

而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。

为了提高工作效率,加快运速度,出现了一些辅助工具:

Ozzie,azkaban:定时任务调度的工具。

Hue,Zepplin:图形化任务执行管理,结果查看工具。

Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。

Python语言:编写一些脚本时会用到。

Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。

正文

一、大数据相关工作介绍

大数据方向的工作目前主要分为三个主要方向:

大数据工程师

数据分析师

大数据科学家

其他(数据挖掘等)

二、大数据工程师的技能要求

附上大数据工程师技能图:

2018年年末整理的最全大数据学习之路「大神必修课」

必须掌握的技能11条

Java高级(虚拟机、并发)

Linux 基本操作

Hadoop(HDFS+MapReduce+Yarn )

HBase(JavaAPI操作+Phoenix )

Hive(Hql基本操作和原理理解)

Kafka

Storm/JStorm

Scala

Python

Spark (Core+sparksql+Spark streaming )

辅助小工具(Sqoop/Flume/Oozie/Hue等)

高阶技能6条

机器学习算法以及mahout库加MLlib

R语言

Lambda 架构

Kappa架构

Kylin

Alluxio

三、学习路径

假设每天可以抽出3个小时的有效学习时间,加上周末每天保证10个小时的有效学习时间;

3个月会有(21*3+4*2*10)*3=423小时的学习时间。

第一阶段(基础阶段)

1)Linux学习(跟鸟哥学就ok了)—–20小时

Linux操作系统介绍与安装。

Linux常用命令。

Linux常用软件安装。

Linux网络。

防火墙。

Shell编程等。

官网:https://www.centos.org/download/

中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

2)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)—30小时

掌握多线程。

掌握并发包下的队列。

了解JMS。

掌握JVM技术。

掌握反射和动态代理。

官网:https://www.java.com/zh_CN/

中文社区:http://www.java-cn.com/index.html

3)Zookeeper学习(可以参照这篇博客进行学习:http://www.cnblogs.com/wuxl360/p/5817471.html)

Zookeeper分布式协调服务介绍。

Zookeeper集群的安装部署。

Zookeeper数据结构、命令。

Zookeeper的原理以及选举机制。

官网:http://zookeeper.apache.org/

中文社区:http://www.aboutyun.com/forum-149-1.html

第二阶段(攻坚阶段)

4)Hadoop (《Hadoop 权威指南》)—80小时

HDFS

HDFS的概念和特性。

HDFS的shell操作。

HDFS的工作机制。

HDFS的Java应用开发。

MapReduce

运行WordCount示例程序。

了解MapReduce内部的运行机制。

MapReduce程序运行流程解析。

MapTask并发数的决定机制。

MapReduce中的combiner组件应用。

MapReduce中的序列化框架及应用。

MapReduce中的排序。

MapReduce中的自定义分区实现。

MapReduce的shuffle机制。

MapReduce利用数据压缩进行优化。

MapReduce程序与YARN之间的关系。

MapReduce参数优化。

MapReduce的Java应用开发

5)Hive(《Hive开发指南》)–20小时

Hive 基本概念

Hive 应用场景。

Hive 与hadoop的关系。

Hive 与传统数据库对比。

Hive 的数据存储机制。

Hive 基本操作

Hive 中的DDL操作。

在Hive 中如何实现高效的JOIN查询。

Hive 的内置函数应用。

Hive shell的高级使用方式。

Hive 常用参数配置。

Hive 自定义函数和Transform的使用技巧。

Hive UDF/UDAF开发实例。

Hive 执行过程分析及优化策略

6)HBase(《HBase权威指南》)—20小时

hbase简介。

habse安装。

hbase数据模型。

hbase命令。

hbase开发。

hbase原理。

7)Scala(《快学Scala》)–20小时

Scala概述。

Scala编译器安装。

Scala基础。

数组、映射、元组、集合。

类、对象、继承、特质。

模式匹配和样例类。

了解Scala Actor并发编程。

理解Akka。

理解Scala高阶函数。

理解Scala隐式转换。

8)Spark (《Spark 权威指南》)—60小时

2018年年末整理的最全大数据学习之路「大神必修课」

Spark core

Spark概述。

Spark集群安装。

执行第一个Spark案例程序(求PI)。

RDD

2018年年末整理的最全大数据学习之路「大神必修课」

RDD概述。

创建RDD。

RDD编程API(Transformation 和 Action Operations)。

RDD的依赖关系

RDD的缓存

DAG(有向无环图)

Spark SQL and DataFrame/DataSet

2018年年末整理的最全大数据学习之路「大神必修课」

Spark SQL概述。

DataFrames。

DataFrame常用操作。

编写Spark SQL查询程序。

Spark Streaming

2018年年末整理的最全大数据学习之路「大神必修课」

2018年年末整理的最全大数据学习之路「大神必修课」

park Streaming概述。

理解DStream。

DStream相关操作(Transformations 和 Output Operations)。

Structured Streaming

其他(MLlib and GraphX )

这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。

9)Python

10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小demo —30小时

可以自己用VMware搭建4台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64位,16G内存,完全可以运行起来

第三阶段(辅助工具工学习阶段)

11)Sqoop(CSDN,51CTO ,以及官网)—20小时

2018年年末整理的最全大数据学习之路「大神必修课」

数据导出概念介绍

Sqoop基础知识

Sqoop原理及配置说明

Sqoop数据导入实战

Sqoop数据导出实战、

Sqoop批量作业操作

12)Flume—20小时

2018年年末整理的最全大数据学习之路「大神必修课」

FLUME日志采集框架介绍。

FLUME工作机制。

FLUME核心组件。

FLUME参数配置说明。

FLUME采集nginx日志案例(案例一定要实践一下)

13)Oozie–20小时

2018年年末整理的最全大数据学习之路「大神必修课」

任务调度系统概念介绍。

常用任务调度工具比较。

Oozie介绍。

Oozie核心概念。

Oozie的配置说明。

Oozie实现mapreduce/hive等任务调度实战案例。

4)Hue–20小时

四阶段(不断学习阶段)

每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。

备注

1)如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。如果看书效率不高就很网课,相反的话就自己看书。

2)企业目前更倾向于使用Spark进行微批处理,Storm只有在对时效性要求极高的情况下,才会使用,所以可以做了解。重点学习Spark Streaming。

3)快速学习的能力、解决问题的能力、沟通能力**真的很重要。

4)要善于使用StackOverFlow和Google(遇到解决不了的问题,先Google,如果Google找不到解决方能就去StackOverFlow提问】

猜你喜欢

转载自blog.csdn.net/qq_41842579/article/details/84975141