前提说一下,大数据是个很笼统的和模糊的概念。凡是动不动说大数据的,都是半吊子
替换高清大图
请点击此处输入图片描述
对于Java程序员,大数据的主流平台hadoop是基于Java开发的,所以Java程序员往大数据开发方向转行从语言环境上更为顺畅,另外很多基于大数据的应用框架也是Java的,所以在很多大数据项目里掌握Java语言是有一定优势的。
当然,hadoop核心价值在于提供了分布式文件系统和分布式计算引擎,对于大部分公司而言,并不需要对这个引擎进行修改。这时候除了熟悉编程,你通常还需要学习数据处理和数据挖掘的一些知识。尤其是往数据挖掘工程师方向发展,则你需要掌握更多的算法相关的知识。
对于数据挖掘工程师而言,虽然也需要掌握编程工具,但大部分情况下是把hadoop当做平台和工具,借助这个平台和工具提供的接口使用各种脚本语言进行数据处理和数据挖掘。因此,如果你是往数据挖掘工程方向发展,那么,熟练掌握分布式编程语言如scala、spark-mllib等可能更为重要。
Java程序员转大数据工程师的学习路线图:
第一步:分布式计算框架
掌握hadoop和spark分布式计算框架,了解文件系统、消息队列和Nosql数据库,学习相关组件如hadoop、MR、spark、hive、hbase、redies、kafka等;
第二步:算法和工具
学习了解各种数据挖掘算法,如分类、聚类、关联规则、回归、决策树、神经网络等,熟练掌握一门数据挖掘编程工具:Python或者Scala。目前主流平台和框架已经提供了算法库,如hadoop上的Mahout和spark上的Mllib,你也可以从学习这些接口和脚本语言开始学习这些算法。
第三步:数学
补充数学知识:高数、概率论和线代
第四步:项目实践
1)开源项目:tensorflow:Google的开源库,已经有40000多个star,非常惊人,支持移动设备;
2)参加数据竞赛
3)通过企业实习获取项目经验
如果你仅仅是做大数据开发和运维,则可以跳过第二步和第三步,如果你是侧重于应用已有算法进行数据挖掘,那么第三步也可以先跳过。
讲一个真实案例
小明目前是一名大数据工程师,项目数据50T,日均数据增长20G左右。
他是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。
背景介绍完毕,开始正式一本正经回答问题:
一.大数据方向工作介绍
二.大数据工程师的技能要求
三.大数据学习路径
四.学习资源推荐(书籍、博客、网站)
一.大数据方向工作介绍
大数据方向的工作目前分为三个主要方向:
01.大数据工程师
02.数据分析师
03.大数据科学家
04.其他(数据挖掘本质算是机器学习,不过和数据相关,也可以理解为大数据的一个方向吧)
二.大数据工程师的技能要求
附上二份比较权威的大数据工程师技能图(图侵删)
请点击此处输入图片描述
<img data-rawheight="1058" src="https://pic2.zhimg.com/50/v2-4ab509dd652081d2963cf9cf2a571665_hd.jpg" data-rawwidth="720" class="origin_image zh-lightbox-thumb" width="720" data-original="https://pic2.zhimg.com/v2-4ab509dd652081d2963cf9cf2a571665_r.jpg">
请点击此处输入图片描述
总结如下:
必须技能10条:
01.Java高级(虚拟机、并发)
02.Linux 基本操作
03.Hadoop(此处为侠义概念单指HDFS+MapReduce+Yarn )
04.HBase(JavaAPI操作+Phoenix )
05.Hive(Hql基本操作和原理理解)
06.Kafka
07.Storm
08.Scala需要
09.Python
10.Spark (Core+sparksql+Spark streaming )
11.一些小工具(Sqoop等)
高阶技能6条:
11.机器学习算法以及mahout库加MLlib
12.R语言
13.Lambda 架构
14.Kappa架构
15.Kylin
16.Aluxio
三.学习路径
由于小编是从Java开发通过大概3个月的自学转到大数据开发的。所以我主要分享一下自己的学习路劲。
第一阶段:
01.Linux学习(跟鸟哥学就ok了)
02.Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)
第二阶段:
03.Hadoop (董西成的书)
04.HBase(《HBase权威指南》)
05.Hive(《Hive开发指南》)
06.Scala(《快学Scala》)
07.Spark (《Spark 快速大数据分析》)
08.Python (跟着廖雪峰的博客学习就ok了)
第三阶段:
对应技能需求,到网上多搜集一些资料就ok了,我把最重要的事情(要学什么告诉你了),
剩下的就是你去搜集对应的资料学习就ok了
当然如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。这个完全根据自己情况决定。如果看书效率不高就很网课,相反的话就自己看书。
四.学习资源推荐:
01.Apache 官网
02.Stackoverflow
04.github
03.Cloudra官网
04.Databrick官网
05.过往的记忆(技术博客)
06.CSDN,51CTO
07.至于书籍当当一搜会有很多,其实内容都差不多。
最后但却很重要一点:要多关注技术动向,持续学习。
请点击此处输入图片描述
领取专属 10元无门槛券
私享最新 技术干货