一、大数据相关的工作介绍
二、大数据工程师的技能要求
三、大数据学习规划
大数据介绍
大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel 文件、文本文件等)、数据量大(最少也是 TB 级别的、甚至可能是 PB 级别)、数据增长速度快等。
在这里还是要推荐下我自己建的大数据学习交流群:529867072,群里都是学大数据开发的,如果你正在学习大数据,小编欢迎你加入, 大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。
针对以上主要的 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 等:通过对存储的数据进行预处理,加快运算速度的工具。
以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。
正文
一、大数据相关工作介绍
大数据方向的工作目前主要分为三个主要方向:
大数据工程师
数据分析师
大数据科学家
其他(数据挖掘等)
二、大数据工程师的技能要求
附上大数据工程师技能图:
必须掌握的技能 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 个月会有(213+4210)3=423 小时的学习时间。
第一阶段(基础阶段)
1)Linux 学习(跟鸟哥学就 ok 了)—–20 小时
Linux 操作系统介绍与安装。
Linux 常用命令。
Linux 常用软件安装。
Linux 网络。
防火墙。
Shell 编程等。
2)Java 高级学习(《深入理解 Java 虚拟机》、《Java 高并发实战》)—30 小时
掌握多线程。
掌握并发包下的队列。
了解 JMS。
掌握 JVM 技术。
掌握反射和动态代理。
3)Zookeeper 学习
Zookeeper 分布式协调服务介绍。
Zookeeper 集群的安装部署。
Zookeeper 数据结构、命令。
Zookeeper 的原理以及选举机制。
第二阶段(攻坚阶段)
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 小时
enter image description here
Spark core
Spark 概述。
Spark 集群安装。
执行第一个 Spark 案例程序(求 PI)。
RDD
enter image description here
RDD 概述。
创建 RDD。
RDD 编程 API(Transformation 和 Action Operations)。
RDD 的依赖关系
RDD 的缓存
DAG(有向无环图)
Spark SQL and DataFrame/DataSet
enter image description here
Spark SQL 概述。
DataFrames。
DataFrame 常用操作。
编写 Spark SQL 查询程序。
Spark Streaming
enter image description here
enter image description here
park Streaming 概述。
理解 DStream。
DStream 相关操作(Transformations 和 Output Operations)。
Structured Streaming
其他(MLlib and GraphX)
这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。
9)Python
10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小 demo —30 小时
可以自己用 VMware 搭建 4 台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64 位,16G 内存,完全可以运行起来)
大数据的未来前景可期,入行的人也非常的多,而如何快速的完成转型,如何快速的进入大数据领域,就需要转型者、小白去进行深刻的思考。
对于小白学习大数据需要注意的点有很多,但无论如何,既然你选择了进入大数据行业,那么便只顾风雨兼程。正所谓不忘初心、方得始终,学习大数据你最需要的还是一颗持之以恒的心。