如何成为一名大数据开发工程师,工作经验总结
原画心旗 2019-11-06 13:35:22
首先,我个人进入大数据行业也纯属偶然,当年实习的时候做的是纯纯的Java开发,后来正式毕业了以后找了份Java开发的工作,本以为和大多数Java猿一样天天搞增删改查了,但是巧的是搞好部门有个做大数据开发的离职了,数据开发缺人手,然后领导就让我顶上了。刚开始什么Hadoop,HDFS也是各种不懂,只会写hive,因为毕竟有SQL基础嘛。再后来发现hive实现一些东西很麻烦,就开始学习spark。网上找的例子,从Wordcount入手,边写简单的例子边看《Hadoop权威指南这本书》,不到一周时间就上手写了一个计算报表数据的作业。后来就不断深入,过程之中觉得《Hadoop权威指南》这本书每一次读都有不同的体会,前前后后应该读了有三四遍吧。
总体感受就是理解了分布式计算的模型,就知道如何写mapreduce了。但是如何进行作业优化以及数据处理过程中遇到的问题如何解决就需要更深入的研究。
前面提到来面试的有应届生也有工作几年的,针对不同的人给一些不同的建议。
3.1 对应届生
个人觉得应届生应该打好基础,大学本科一般都会开设数据结构,算法基础,操作系统,编译原理,计算机网络等课程。这些课程一定要好好学,基础扎实了学其他东西问题都不大,而且好多大公司面试都会问这些东西。如果你准备从事IT行业,这些东西对你会很有帮助。
至于学什么语言,我觉得对大数据行业来说,Java还是比较多。有时间有兴趣的话可以学学scala,这个语言写spark比较棒。
集群环境一定要搭起来。有条件的话可以搭一个小的分布式集群,没条件的可以在自己电脑上装个虚拟机然后搭一个伪分布式的集群。一来能帮助你充分认识Hadoop,而来可以在上面做点实际的东西。你所有踩得坑都是你宝贵的财富。
然后就可以试着写一些数据计算中常见的去重,排序,表关联等操作。
对于我来说,面试应届生就问你的基础,笔试大多是数据结构和算法方面的,如果你基础不错而且有一定的大数据方面的经验,基本上都会过。
3.2 对有工作经验想转行的
主要考察三个方面,一是基础,二是学习能力,三是解决问题的能力。
基础很好考察,给几道笔试题做完基本上就知道什么水平了。
学习能力还是非常重要的,毕竟写Javaweb和写mapreduce还是不一样的。大数据处理技术目前都有好多种,而且企业用的时候也不单单使用一种,再一个行业发展比较快,要时刻学习新的东西并用到实践中。
解决问题的能力在什么时候都比较重要,数据开发中尤为重要,我们同常会遇到很多数据问题,比如说最后产生的报表数据对不上,一般来说一份最终的数据往往来源于很多原始数据,中间又经过了n多处理。要求你对数据敏感,并能把握问题的本质,追根溯源,在尽可能短的时间里解决问题。
基础知识好加强,换工作前两周复习一下就行。学习能力和解决问题的能力就要在平时的工作中多锻炼。
社招的最低要求就上面三点,如果你平日还自学了一些大数据方面的东西,都是很好的加分项。
以上是个人的一些经历和见解,希望能帮到你。当然也不完全正确,如果你认为不妥可以评论开喷,哈哈。
最后祝各位看官都找到称心如意的工作!
大数据工程师有多种解释,一种是用大数据的,就是data scientist这种,一种是开发大数据平台的,就是平台开发工程师,比如写hadoop,hive的某个组件的工程师。
2.如果是走应用这个路线,需要的技能包括:sql,java,mapreduce job的编写,一些比较简单的脚本编写,再加上一些数据分析领域的东西,比如统计,机器学习等等。
3.如果是走底层开发这个路线的,需要的技能基本上是比较硬的开发技能,很多都需要了解语言的高级特性,软件开发模式呀,抽象呀,操作系统怎么用,编译啊,测试呀。这种开发学习曲线比较陡峭一点。
互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习君羊:522189307 欢迎进阶中和进想深入大数据的小伙伴加入。
大数据本质其实也是数据,不过也包括了些新的特征,
数据来源广;
数据格式多样化(结构化数据、非结构化数据、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
三、学习规划
每天需求有3个小时的学习时间,周末的时分需求10小时,假设做不到的话,只能是
第一阶段(基础阶段)
Linux学习
Linux操作系统引见与安装、Linux常用命令、Linux常用软件安装、Linux网络、 防火墙、Shell编程等。
Java 初级学习(《深化理解Java虚拟机》、《Java高并发实战》)
掌握多线程、掌握并发包下的队列、掌握JVM技术、掌握反射和静态代理、了解JMS。
Zookeeper学习
Zookeeper分布式协调效力引见、Zookeeper集群的安装部署、Zookeeper数据结构、命令。
第二阶段(攻坚阶段)
Hadoop、Hive、HBase、Scala、Spark、Python
第三阶段(辅佐工具工学习阶段)
Sqoop、Flume、Oozie、Hue这些工具的学习主要在CSDN,51CTO以及官网都可以学习。
总结
在技术行业里面,每天都会有新的东西出现,需求关注最新技术静态,不时学习。任何普通技术都是先学习实践,然后在实际中不时完善实践的进程。
假设你觉得自己看书效率太慢,你可以网上搜集一些课程。
快速学习的才干、处置成果的才干、沟通才干在这个行业是真的非常重要的目的。
要擅长运用*和Google来帮助你学习进程遇到的成果。
以上是我们对大数据学习的总结,当然我们也提到了,并不是说零基础的就可以直接学习,需求有编程的基础,要先掌握扎实的编程基础,有一定编程阅历,自学起来也相对比末尾要复杂一点,然后对大数据有兴味或许想要进入这个行业的就可以去学习了 以上内容是我个人见解,希望对你有帮助不