学习大数据没有零基础入门,首先你要成为一名普通的工程师
在技术论坛中或知乎上,看到近几万的朋友都在疑惑,学习java应该选择什么发展方向,这个咱们在之前的文章中有提到过,java发展在领域上有三个选择方向:
javaee,主要应用于企业级应用开发;安卓开发方向;嵌入式应用开发方向。在此建议大家选择javaee方向,因为应用非常广泛,岗位设置也比较多。
java的职业发展规划之路我们也曾在(一文阐述java从初级到高级的学习之路——白老师分享篇(2)
)详细列举,这里就不一一列举了。
但我们从来没有讨论过学习java,难道这辈子就只能做java后端开发吗?只能在这条路上奋斗到底吗?难道中途没有其他的选择吗?
偶然认识的一个朋友,最开始是从事java后端开发的,后来他在业余时间自学成功转入大数据行业,现在是一名大数据工程师,待遇也比之前好更多。前提是他是一名java后端开发。
大数据是我们如今比较火的一个发展方向,但是很多培训机构有提到几个月速成的,小编觉得不是特别靠谱。
原因有以下:
大数据是一个新生行业,还不太成熟。
java发展了将近20年,也没有说几个月速成的,最多也就是带你入门,让你对java的知识结构体系有一个清晰的认知,在后期的工作实践期间成长的速度更快。
大数据的起点要高,并不是所谓的零基础就可以入门的。
我们接下来讲述的有关大数据的学习是有条件限制的,首先你需要是一名普通的工程师,如果你是java工程师的话更好,但如果你是小白的话,那就只能成为一名工程师的后再来学习大数据吧。
一、认识大数据
大数据本质其实也是数据,不过也包括了些新的特征:
数据来源广;
数据格式多样化(结构化数据、非结构化数据、excel文件等);
数据量大(最少也是tb级别的、甚至可能是pb级别);
数据增长速度快。
而针对以上新的特征需要考虑很多问题:
例如,数据来源广,该如何采集汇总?采集汇总之后,又该存储呢?数据存储之后,该如何通过运算转化成自己想要的结果呢?
对于这些问题,我们需要有相对应的知识解决。
二、大数据所需技能要求
python语言:编写一些脚本时会用到。
scala语言:编写spark程序的最佳语言,当然也可以选择用python。
ozzie,azkaban:定时任务调度的工具。
hue,zepplin:图形化任务执行管理,结果查看工具。
allluxio,kylin等:通过对存储的数据进行预处理,加快运算速度的工具。
必须掌握的技能:
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
三、学习规划
第一阶段
linux学习:linux操作系统介绍与安装、linux常用命令、linux常用软件安装、linux网络、 防火墙、shell编程等。
java 高级学习:掌握多线程、掌握并发包下的队列、掌握jvm技术、掌握反射和动态代理、了解jms。
zookeeper学习:zookeeper分布式协调服务介绍、zookeeper集群的安装部署、zookeeper数据结构、命令。
第二阶段
hadoop 、hive、hbase、scala、spark 、python
第三阶段
sqoop、flume、oozie、hue这些工具的学习主要在csdn,51cto以及官网都可以学习。
四、学习资源推荐
apache 官网(http://apache.org/)
stackoverflow(https://stackoverflow/)
github(https://github/)
about 云 :http://aboutyun/
csdn(http://csdn/)
51cto (http://51cto/)
总结
在技术行业里面,每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。
如果你觉得自己看书效率太慢,你可以网上搜集一些课程。
快速学习的能力、解决问题的能力、沟通能力在这个行业是真的非常重要的指标。
要善于使用stackoverflow和google来帮助你学习过程遇到的问题。
视频课程推荐:可以去万能的淘宝购买一些视频课程,然后选择一个适合自己的。
以上是我们对大数据学习的总结,当然我们也提到了,并不是说零基础的就可以直接学习,需要有编程的基础,我们需要先掌握扎实的编程基础,在此建议学习java,成为一名工程师的时候,有一定编程经验,自学起来也相对比开始要简单一点,然后对大数据有兴趣或者想要进入这个行业的就可以去学习了。