如今已經進入了2016年,這是我從事IT這一行業的第10年。不知道可否稱得上是一個職場老人,但終有種老年人的心態,喜歡回憶過去——最近被初中同窗拉入一個初中同窗的羣裏,剛開始兩天讓人激動得不捨得睡去,由於羣裏的老同窗們都聊得火熱,可我居然在很長一段時間內都沒有敲一個字或者說一句話,只是看着你們互相提起當年的種種糗事。html
十幾年前的不少事情雖然還記着,可是更多的卻忘卻了。遠的記不起來,不如回顧下剛剛過去的2015年。。。git
14年年末至15年1月31日整整2個多月的時間,咱們整個大部門突擊開發阿里的大數據商業解決方案——御膳房,你們的工做都很辛苦,加班加點,每一個人的身體和意志都經受着不斷地考驗。鑑於保密,我不太方便透露不少,最後產品上線,全部人總算稍稍鬆了口氣。這個項目後來的節奏稍微變得緩慢一些,可是新需求和功能都在持續的迭代與更新之中。。。github
這個項目是我入行以來遇到的最緊急、最複雜、最有強度和參與人數最多的項目(250人左右),從某種角度來講,這也是一種榮譽。雖然苦、雖然累,可是感受很值得。架構
因爲持續2個多月的封閉開發,自我感受身體情況有所降低,須要調節,並且體重已經超過173,之前的衣服都再也不合身了。爲了保持一個健康的體魄,年後就開始在公司提供的跑步機上邊跑步邊瘦身。剛開始的一段時間,天天跑步5千米,中餐和晚餐都有所減小。後來將距離調整爲天天10千米,直至15千米。因爲跑15千米的時候身體稍有不適,而且出現了血尿,當時也嚇了我本身一跳。因此在網上查閱一些跑步的資料後,天天在跑步以前會先喝一些溫開水,而後將距離降到13千米後,就再也沒有出現不適的症狀了。從第一天減肥開始,天天都會將當天的跑步距離數、消耗卡路里和時間記錄下來:機器學習
日期 | 時間段 | 耗時 | 距離 | 消耗卡路里 | 備註 |
2015-03-11日 | 未記錄 | 57:57 | 11.60km | 1068cal | |
2015-03-12日 | 未記錄 | 65:11 | 13.20km | 1210cal | |
2015-03-13日 | 未記錄 | 70:21 | 14.40km | 1322cal | |
2015-03-16日 | 未記錄 | 72:42 | 15.10km | 1384cal | |
2015-03-17日 | 未記錄 | 73:21 | 15.32km | 1522cal | 嚴重血尿 |
2015-03-18日 | 未記錄 | 24:01 | 5.004km | 460cal | |
2015-03-19日 | 未記錄 | 40:00 | 8.381km | 864cal | |
2015-03-20日 | 未記錄 | 47:40 | 10.00km | 904cal | 輕微血尿 |
2015-03-23日 | 未記錄 | 38:11 | 8.003km | 733cal | |
2015-03-24日 | 早晨 | 38:08 | 8.002km | 793cal | |
2015-03-24日 | 下午 | 23:54 | 5.004km | 496cal | |
2015-03-25日 | 早晨 | 38:05 | 8.013km | 793cal | 跑步機死機,中間有停頓,時間、能量爲估算 |
2015-03-25日 | 下午 | 23:51 | 5.003km | 457cal | |
2015-03-26日 | 早晨 | 38:04 | 8.003km | 754cal | |
2015-03-26日 | 下午 | 23:49 | 5.003km | 570cal | |
2015-03-27日 | 早晨 | 38:01 | 8.001km | 731cal | |
2015-03-27日 | 下午 | 23:49 | 5.003km | 494cal | |
2015-03-28日 | 早晨 | 37:59 | 8.004km | 732cal | |
2015-03-28日 | 下午 | 23:49 | 5.003km | 456cal | |
2015-03-30日 | 早晨 | 37:57 | 8.002km | 732cal | |
2015-03-30日 | 下午 | 23:47 | 5.004km | 457cal | |
2015-03-31日 | 早晨 | 37:55 | 8.003km | 732cal | |
2015-03-31日 | 下午 | 23:45 | 5.001km | 457cal | |
2015-04-01日 | 早晨 | 37:53 | 8.003km | 733cal | |
2015-04-01日 | 下午 | 23:43 | 5.002km | 457cal | |
2015-04-02日 | 早晨 | 04:46 | 1.002km | 90?cal | 工做忙,沒時間了,呵呵 |
2015-04-02日 | 早晨 | 33:06 | 7.003km | 642cal | 工做忙完,回來補上 |
2015-04-02日 | 下午 | 23:40 | 5.003km | 458cal | |
2015-04-03日 | 早晨 | 37:48 | 8.002km | 733cal | |
2015-04-03日 | 下午 | 23:38 | 5.003km | 458cal | |
2015-04-07日 | 中午 | 37:46 | 8.003km | 734cal | |
2015-04-08日 | 早晨 | 37:44 | 8.004km | 734cal | |
2015-04-08日 | 下午 | 23:38 | 5.004km | 458cal | |
2015-04-09日 | 早晨 | 37:43 | 8.004km | 735cal | |
2015-04-09日 | 下午 | 23:38 | 5.004km | 458cal | |
2015-04-10日 | 早晨 | 37:39 | 8.002km | 734cal | |
2015-04-10日 | 晚上 | 23:36 | 5.004km | 459cal | |
2015-04-13日 | 早晨 | 37:38 | 8.003km | 735cal | |
2015-04-13日 | 晚上 | ? | 4.001km | ? cal | 不知道怎麼沒記錄 |
2015-04-14日 | 早晨 | 28:12 | 6.002km | 551cal | |
2015-04-15日 | 早晨 | 37:33 | 8.004km | 736cal | |
2015-04-15日 | 下午 | 23:30 | 5.003km | 460cal | |
2015-04-16日 | 早晨 | 37:30 | 8.002km | 736cal | |
2015-04-16日 | 下午 | 23:28 | 5.004km | 460cal | |
2015-04-20日 | 早晨 | 37:28 | 8.002km | 796cal | |
2015-04-20日 | 下午 | 23:27 | 5.004km | 460cal | |
2015-04-21日 | 早晨 | 37:26 | 8.002km | 734cal | |
2015-04-22日 | 早晨 | 37:24 | 8.003km | 734cal | |
2015-04-22日 | 下午 | 23:27 | 5.004km | 460cal | |
2015-04-23日 | 早晨 | 37:23 | 8.007km | 733cal | |
2015-04-24日 | 早晨 | 37:20 | 8.004km | 733cal | |
2015-04-24日 | 下午 | 23:22 | 5.002km | 458cal | |
2015-04-25日 | 早晨 | 37:17 | 8.002km | 732cal | |
2015-04-27日 | 早晨 | 37:15 | 8.002km | 731cal | |
2015-04-27日 | 下午 | 23:17 | 5.002km | 457cal | |
2015-04-28日 | 早晨 | 37:13 | 8.003km | 730cal | |
2015-04-28日 | 下午 | 23:15 | 5.003km | 456cal | |
2015-04-29日 | 早晨 | 37:11 | 8.003km | 731cal | |
2015-04-29日 | 下午 | 23:15 | 5.003km | 456cal | |
2015-05-04日 | 早晨 | 37:09 | 8.004km | 792cal | |
2015-05-04日 | 下午 | 23:16 | 5.004km | 456cal | |
2015-05-05日 | 早晨 | 37:08 | 8.006km | 732cal | |
2015-05-05日 | 下午 | 23:17 | 5.006km | 457cal | |
2015-05-06日 | 早晨 | 37:04 | 8.001km | 731cal | |
2015-05-06日 | 下午 | 23:14 | 5.004km | 457cal | |
2015-05-07日 | 早晨 | 37:02 | 8.001km | 732cal | |
2015-05-07日 | 下午 | 23:12 | 5.004km | 457cal | |
2015-05-08日 | 早晨 | 23:05 | 5.002km | 458cal | |
2015-05-11日 | 中午 | 37:00 | 8.003km | 732cal | |
2015-05-12日 | 中午 | 36:58 | 8.002km | 733cal | |
2015-05-13日 | 中午 | 36:56 | 8.003km | 733cal | |
2015-05-14日 | 中午 | 36:54 | 8.004km | 732cal | |
2015-05-15日 | 69.7kg,第一階段完成目標; |
能夠看到最後個人體重下降到了69.7公斤,體重大體降低了35斤。不少同事最後看到我都很奇怪我是怎麼作到的?其實就是堅持(跑步)加控制(飲食)。從5月16日開始我將工做重心轉移到了對Spark的研究上,我將在下面一一道來。maven
15年1月,我和其它同事一塊兒在杭州開發《御膳房》的時候,我意外得知負責阿里的實時多維分析平臺——Garuda和實時計算平臺——Galaxy的和仲就在咱們同一辦公區的同一樓層,因而我找到了他。他是個看起來已經發了福的中年男人,從他的第一句話開始,我就以爲很開心。他將我帶到單獨的一間會議室,花了近一個小時爲我耐心講解Galaxy和Garuda的原理,最後還推薦我去研究Spark的源碼。當時的我能夠說對Spark一竅不通,聽到和仲的建議,心想:「有時間就抽空研究下吧!」。在春節期間我查閱各類資料才明白Spark原來是用Scala編寫的,但是我也歷來沒有接觸過這門語言,只能從網上下了《快學Scala》這本書的電子書,花了大概10天時間讀完整本書,而後見到Scala的語法就再也不感到陌生了。Spark是Apache的開源項目,要研究它天然須要獲得它的源碼,從Spark官網上找到了它的github地址,而後git clone下來。研究任何系統的原理,最好的方式就是去研究源碼,而研究源碼最不可或缺的方式就是調試,而調試以前你必須作一些準備工做,好比:編譯、打包、部署。雖然Spark自己是一個maven項目,但因爲國內對外部一些網站資源的屏蔽,致使一開始並不順利。剛開始的一週時間,我在工做之餘就會去嘗試編譯、打包,可是在踩過不少坑以後曾經一度放棄了研究。還有個客觀緣由是不少人都推薦IntelliJ ,而我這個老頑固仍然守着Eclipse不放手。有大約一週左右,我沒有再去想Spark,多是太累,也多是沒有精力。在一週後的一天早上,我從新打開了Spark的項目進行嘗試,而後不少問題都解決了,後來幾天我編譯經過了。源碼分析
自從可以調試Spark的源代碼,日子彷佛比一開始要好過多了,你不用再去踩坑,你要作的只是一行一行去調試源碼,進而理解每一段代碼的邏輯意義。事情不可能一直糟糕,但也不可能一直順利,直到一天我沒法理解一些怪異的Scala語法,以致於我又陷入重圍。回過頭從新去理解Scala的語法,才知道當時花了10天去理解Scala,並非看上去的那樣——我掌握了一門新的語言!不少語法的深層次含義我並未理解,甚至爲了快速突破Scala而略過它。除了語法上碰到的問題,對於一些能看懂的語法,我殊不知道Spark的原做者爲什麼要這麼作?好比爲何要把RDD劃分到不一樣的Stage中。對於不理解的問題,我查找各類資料,有時候能找到,但有時候你會陷入互聯網的海洋中,你感受到本身就像是一個機器人爬蟲,永遠都在無盡的網上爬啊爬。。。post
有時候本身能夠跳出這種漩渦,而有時候是由於耗盡了時間,已經到了凌晨1點,我不得不放棄。事實證實,放棄並不意味着失敗,也不意味着這是一件壞事。當你從新梳理好本身的思路,喝一杯熱茶,曾經的潘多拉魔盒解開了。在程序的世界裏,只要你肯研究別人的源碼,你就會不斷陷入新的漩渦。當我解決了一個又一個難題的時候,一個想法從腦海深處油然而生。。。學習
因爲本身解決的問題愈來愈多,因此寫一本書的想法就這樣誕生了。當我有這個想法的時候,並無馬上就去聯繫出版社,由於我怕內容質量不高而被出版社拒絕出版。我打算再繼續寫一些內容,並對內容進行進一步的整理和濃縮後再聯繫出版社。我首先寫了SparkContext、存儲體系、任務提交與執行以及計算引擎部分的內容,在Spark核心內容只剩部署模式的時候開始聯繫出版社的。我已開始聯繫的出版社是電子工業出版社,按照網上說的方式給他們發了郵件,可是過了一週都沒有反應的時候,我從《深刻理解Java虛擬機》一書的最後宣傳頁中,找到了機械工業出版社的聯繫電話。跟出版社的工做人員要到了王福川編輯的郵箱,因而我發了第一份郵件詢問具體的投稿事宜。王編輯在一個小時以內就回復了我,讓我把個人寫做選題、思路及大綱發給他。通過屢次的郵件往來,王編輯表明機械工業出版社對我說,他們對個人書很感興趣,願意合做。按照王編輯和高婧雅編輯的建議,我又擴充了環境準備、Spark設計理念與基本架構、Spark SQL、流式計算、圖計算及機器學習等章節的內容。8月初,我趕往出版社,與兩位編輯面談合做細節並簽定了出版合同。大數據
9月20日我完成了初稿(總共650多頁),按照出版社的要求對格式做了調整後完成交稿。一直到12月份,出版社和我一塊兒對書稿進行了4次的修改和校訂。12月初出版社開始排版。12月中旬出版社開始設計書的封皮。12月下旬交給印刷廠印刷。最終於2016年1月1日出版上市。
起初,這本書的命名爲《Spark技術內幕:深刻探索Spark架構設計與實現原理》,但因爲與同時期要出版的另外一本書有命名衝突,因而更名爲《深刻理解Spark:核心思想與源碼分析》。《深刻理解Spark:核心思想與源碼分析》已於16年1月1日出版,有興趣的同窗能夠看我這篇《深刻理解SPARK:核心思想與源碼分析》(前言及第1章)》、《深刻理解SPARK:核心思想與源碼分析》(第2章)》、《深刻理解SPARK:核心思想與源碼分析》——SPARKCONTEXT的初始化(上)以及《深刻理解SPARK:核心思想與源碼分析》——SPARKCONTEXT的初始化(中)。
因爲交了稿,因此打算實現人生中的另個一小夢想——開車。通過多方打聽,得知國內駕校市場的混亂,心生恐懼。身邊不少同事都從東方時尚畢業,並且都很推薦,因而抱着試一試的態度在10月21日報了名。11月3日考了科目一,99分,留了個小遺憾。12月16日考科目二,100分。12月30日科目三90分(自我感受應該是100),但考官沒說扣分緣由。下午的科目四錯了一題,98分,又留個小遺憾。
順便給想要學車的同窗們給些信息:東方時尚秉着不拿學員一支菸的理念,不吃拿卡要,絕對可信。大多數教練的態度都很好,有個教練在我開車的時候還給我講歷史,呵呵!在校的學生建議報計時班,本身週一至週五學車,人少車多,一我的一輛車感受很不錯。若是非要挑出點毛病就是學費略高,可是多掏1000塊錢買個好心情也是值得的。
16年1月9日在神州租了車,開了車去順義、平谷,那裏的路很寬、車不多,實在是練車的好地方,別提有多開心!惟一的缺點是當時在一個急彎路沒有看見紅綠燈,闖紅燈了,不過過去這麼多天也沒查出來違章,本身提心吊膽了好多天,萬一記6分,之後不敢開車了,不然記滿12分,又得從新來一遍!
從表面上看,2015年很充實,有不少突破和進步。可是瑕疵也不少,只能期盼來年有更多進步!