我的程式設計師之路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,保證能夠真正讓大家看懂。
文章會在公眾號 [入門到放棄之路] 首發,期待你的關注。


