我的程序员之路02:大数据实习篇

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 我的程序员之路02:大数据实习篇

实习一年,我从Java入门者成为了一名大数据开发。

第一份实习offer

专升本的第一学年末,凭借着自学Java拿到了人生的第一份Java开发的实习offer。我深知那时候我的Java水平有限,也深知能拿到offer并不是因为我多优秀,而是公司一批招了20多个人。

17年7月,收拾好行李,和舍友体验了一天的找房、打扫、入住流程之后,于第二天的早晨第一次踏入了公司,开发岗的八个人被安排在空闲的工位上等待着新人培训。培训主要分为:数据安全培训、数据库培训、Linux培训等。培训之前说是有一个人可以进入大数据组实习,所以那时候的我充满着渴望与热情,以致于大学里一年都没学懂的Linux,自学了三天就把基本的命令练习地滚瓜烂熟。

培训过后,其他7人被分到了各个组内,陆续离开了这片空闲工位。而我,在接下来一个月一直处于无人认领的状态,大数据的实习名额也无人再提及。在这段实习期最安逸的日子里,我决定自学大数据。那时候网上大数据教程不像现在一样丰富,于是从某宝上花25RMB,买了一套大数据课程开始自学。

自学的过程和预料的一样一波三折。还记得刚开始跟着视频搭建Hadoop,却怎么也不成功。或是版本问题,或是操作系统问题,也许是个人能力问题。那时候也没有人指导,只能自己摸索,视频上20分钟搭建好的Hadoop,而我用了五天时间搜集资料、不断尝试,最后才在我的虚拟机上搭建完成。

一个月后某一天,我终于被人领走了,进入大数据组的那个人原来是我!

初识大数据

初入大数据组,还记得那时候的心情是小心翼翼的。那时候组里没有那么多的年轻人,感觉都是大佬,也不敢多说话,只能默默地坐在工位上。第一份工作是关于hive的,很简单。简单到什么程度,一份列表和一个hivesql,我只需将列表中的每项粘贴到sql的where条件空白处,分别执行并截图保存即可。空闲的时候也会被安排各种写工程文档的工作。

就这样在理想和现实之间工作了一个月。当我以为实习生涯就要在这种平平淡淡中度过的时候,人生出现了转机。组里年轻的运维小哥决定离职,我也被领导叫进了办公司,在各种鸡汤灌输加持下,我第一次勇敢的说出了”我可以“这三个字,我也开始转职成为了一名大数据运维。

运维工作就是写一些监控调度来保障正常生产,有时候也需要人工干预,所以出去玩也要背着电脑以备不时所需。虽然我的运维工作技术含量不高,但是因为这份工作,与组内同事的工关联也密切了起来,也开始渐渐融入到这个集体中。

人生,总会有让你努力的理由,为了别人,亦或自己。

关于理想和学习

理想今年你几岁

虽然我是一名运维,但始终有着开发的梦想。在下班回到家之后,会继续看我的课程来学习大数据。在公司的日常,干完领导安排整理文档的工作就开始学习。工作的时候喜欢听大佬们讨论技术,虽然我一句也听不懂。所以那时候我给自己的目标就是,一定要听懂大佬们讨论的技术,于是我开始利用早晨公交车上的一个小时开始看公众号文章,一天要求自己至少看五篇,当某一天回过头来,发现已经关注了近300个计算机行业的公众号。

那一年flink还未兴起,公司流处理使用的是商业版的IBM Streams,这个平台带给我的感觉就是稳定且小众。它的开发语言是SPL(Stream Processing Language),一种只适用于这个平台的开发语言,所以导致那时候基本上都没有人愿意接手这个平台。我在运维这个平台应用的过程中,开始自学SPL,从最开始研究别人的程序,到后来在官网上寥寥的资料中学习语法,最后开始负责SPL的开发。目前,我是公司唯一一个会SPL开发的人。

科普一个SPL简单的例子:

composite Main {
 graph
 stream<rstring sourceFile, rstring movedFile, uint64 fileSize> Dir3 = Di {
  param
  directory : "/tmp/work";
  moveToDirectory : "/tmp/active";
  output Dir3 : sourceFile = FilePath(), movedFile = DestinationFilePa
}
stream<rstring name, uint32 age, uint64 salary> Beat = Beacon() {} stream<rstring name, uint32 age, rstring login,
tuple<boolean young, boolean rich> info> Annotated = Punctor(Beat){
  param punctuate : age >= 18u;
  position : after; 
  output Annotated : login = lower(name),
  info = { young = (age<=30u), rich = (salary>100000
 } 
}

实习是我整个计算机生涯成长最快的时光,让我提升了技术、扩展了眼界,确立了从业方向。那时候的我,对知识充满了无尽渴望。

关于加班

虽然现在很多人,包括我内心都很抵制加班和996,但是不可否认的是,实习加班的日子使我快速成长。

17年,是公司大数据起步的一年,也是大数据平台动荡的一年。大数据行业,当以数据为核心,数据的实时接入是大数据根本,也是重中之重。11月的一个夜晚,接入程序即将随着数据规范的升级而进行新版本割接。作为一名不明所以的旁观者,选择留了下来当个配角。

负责的同事升级前测试的时候没有问题,但等到十点割接的时候却发生了乱码问题。当时我自学过Java,所以就坐在旁边跟着看,跟着他们在上万行密密麻麻的代码逐行找问题,从晚上十点一直看到凌晨五点,眼花缭乱,当我看到一个方法中全局变量和局部变量命名相同的时候,弱弱地指了出来,修改了这个问题之后,数据不再乱码,代码层面问题得以解决。

凌晨六点,新程序启动,但在运行了一个小时后,OOM内存溢出。我也是那时候,开始第二次学习JVM,跟着大家一起通过jstat、jmap等查看内存和gc,调整jvm参数一直到中午十二点,最后只能增加处理机器来暂时保证程序的正常运行。下午两点回到家,睡到下午六点又去了公司,又一直工作到凌晨四点才休息。那个星期我以工作时长65H位居公司第一。

以后的日子,大家周六周天都聚在一起寻找问题。功夫不负有心人,在长时间的测试之后,发现是Kafka0.8版本的吞吐瓶颈导致的性能问题,后来升级到v1.0之后,这个问题就解决了。不过这一次,我真正的融入到了大数据这个集体,也是这个时候我成为了一名参与者,了解了数据从接入到存储的整个流程,为我以后完全负责大数据程序开发打下了基础。

实习的日子,感谢那年冬天加班的夜晚,让我离开发更近了一步。亦感谢我搭乘回家的101路公交车可以运营到凌晨一点,让我在很多加完班的夜晚都很有安全感。

实习过后,最要感谢的往往不是那个和你谈笑风生的人,而是那个指出你的错误并帮助你的人。

关于朋友

感谢大数据每个人对我的帮助,尤其感谢带我入门、亦师亦友的刚哥,和对我无私帮助、经常蹭他车的超哥。

实习的时候,遇到一个好的师傅是很重要的。可能很多人向往的实习生活是轻轻松松,每天可以谈笑风生,这些固然重要,但更重要的是有多少人愿意将自己的知识教给你,你到底学到了什么

实习期的我无疑是幸运的,有人倾囊相授于我、有人指引我前行的路、有人指正我的不足,有人谈论技术人生,出了错误有人给我兜底。等我长大再回首,这种愿意耐心帮助你的人还能遇见几个?虽然后来一起吃饭、一起喝酒,他们经常会说愿意教我是因为我自己努力好学,但是我知道他们在很努力地培养我。

不加班的日子,我一般都从公司学习到八点半,刚哥有时候研究技术或者看球也是这个时间回家。学习的时候我遇问题,就会寻求他的帮助。我一直都都记得,每当这个时候他会不紧不慢的走过来坐下,然后在电脑上操作,会把这个问题的解决思路解释给我。

下班路上,我们只有短短600米三个路口的共同路程,但是一路上他都会叮嘱我要好好努力,偶尔也会解答我的一些困惑。每当最后一个路口分别时,他往北,我向东,他会对我挥挥手,我说一句我回去了,他回一声注意安全。如今路依旧,但终究只能成为一段记忆深刻的青春。

物是人非事事休。毕业两年半之后的今天,我可以说我实现了理想,成为了一名大数据开发,也经常自诩是目前大数据组资历第二的人。组里的年轻血液越来越多,有时候我特别期待成为当初那个很有耐心的人,但最终愿望落空,因为再也没有人愿意刨根问底,没有人想知道这个大数据平台的架构,没有人关心数据的流向,更多的人最终还是更倾心于谈笑风生。

实习遇到的朋友终会分离,而学到的知识、养成的习惯会陪伴一生。

关于我

我从小到大都是个不善言辞的人,和陌生人说话自带尴尬体质,是他们可以让我表达自己。

在大数据实习的第一个月,一直做一些写文档的工作,后来做了大半年运维,牺牲了很多休息时间来加班完成工作。一年后实习结束,成为了一名大数据开发。我在运维岗的时候,幻想过但没奢望过有一天可以在开发岗上做自己喜欢的工作。那时的我只是和刚开始自学Java一样,在公司、在家里、在公交车上一直在学习大数据。

当你还在埋怨生活决定了你命运的时候,多想想是不是自己先放弃了理想。

18年6月,毕业前夕,引进Scrapy构建了百万级数据的爬虫程序,研究用Flume写了几千行的配置,将8000亿/天的数据落地到了HDFS。

后来我毕业了,后来他们离开了公司,后来的某一天,领导说工资你自己开吧。至此,我的故事结束。

未来亦可期

2020年末,和刚哥、超哥一起吃饭,亦回忆感叹以前的日子,举杯,一饮而尽、皆在酒里。我感叹那时候数据量1000亿/天,我只是个参与者,如今数据量10000亿/天,而我却成了主导者。亦感叹那时候我以为大家会一直在一起工作,最后还是扎根在了各地。

那天晚上的风很冷,我走在回家的路上,身边一辆101经过,不过这次是背道而驰。



写的都是日常工作中的亲身实践,处于自己的角度从0写到1,保证能够真正让大家看懂。

文章会在公众号 [入门到放弃之路] 首发,期待你的关注。



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
SQL 分布式计算 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
163 0
|
分布式计算 资源调度 大数据
黑马程序员-大数据入门到实战-MapReduce & YARN入门
黑马程序员-大数据入门到实战-MapReduce & YARN入门
159 0
|
大数据 Java Linux
黑马程序员-大数据入门到实战-前置章节
黑马程序员-大数据入门到实战-前置章节
85 0
|
SQL 存储 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
149 0
|
2月前
|
分布式计算 运维 大数据
我的程序员之路03:我和大数据
我的程序员之路03:我和大数据
|
7月前
|
关系型数据库 MySQL 大数据
程序员小sister的烦恼_快速上手大数据ETL神器Kettle(xls导入mysql)
程序员小sister的烦恼_快速上手大数据ETL神器Kettle(xls导入mysql)
110 0
|
存储 分布式计算 Hadoop
黑马程序员-大数据入门到实战-HDFS分布式存储
黑马程序员-大数据入门到实战-HDFS分布式存储
197 0
|
人工智能 分布式计算 Hadoop
java程序员的AI之路-大数据篇 hadoop安装
java程序员的AI之路-大数据篇 hadoop安装
334 0
|
大数据 程序员 云计算
世界程序员最难的题目,做不好你就是杀人凶手【云计算 大数据 开卷题目】
这道题目没有任何数据给你,但你可以去找估计数字,欢迎有志程序员做这到题目,这是一个开卷题目,你考虑的越多对象和属性程序会越复杂,你可以纯属娱乐。
|
大数据 Java 程序员
程序员过年大数据:最怕问工资、谈对象,要见的姑娘比亲戚还多。。
程序员过年大数据:最怕问工资、谈对象,要见的姑娘比亲戚还多。。
135 0
程序员过年大数据:最怕问工资、谈对象,要见的姑娘比亲戚还多。。