java转大数据的学习路线
一、大数据相关的工作介绍
二、大数据工程师的技能要求
三、大数据学习规划
大数据介绍
针对以上主要的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内存,完全可以运行起来)
大数据的未来前景可期,入行的人也非常的多,而如何快速的完成转型,如何快速的进入大数据领域,就需要转型者、小白去进行深刻的思考。
对于小白学习大数据需要注意的点有很多,但无论如何,既然你选择了进入大数据行业,那么便只顾风雨兼程。正所谓不忘初心、方得始终,学习大数据你最需要的还是一颗持之以恒的心。
在这里还是要推荐下我自己建的大数据学习交流群:529867072,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。