前言
都說【同化】是一種很神奇的力量,看著大家都發(fā)新年感悟缤底,大致就是回顧2016展望2017顾患,我也沒把持住自己的【清高】,發(fā)了一段話:
2016年工作上還是有不少進步的 開始在簡書上寫文章了 玩了微信公眾號 還做了幾個大數(shù)據(jù)相關(guān)的開源項目 學(xué)習(xí)个唧,使用江解,布道了Spark 和 ElasticSearch 技術(shù)。當(dāng)然也玩了不少地方 徙歼,去了西安犁河,走了沙漠鳖枕,到了海邊,漫步了東北桨螺,吃了重慶的火鍋宾符,來了上海迪斯尼,馬上要去杭州和深圳溜達(dá)灭翔。年底這兩個月竟然少有的擁有很多時間成體系的學(xué)習(xí)了一直想深入研究的機器學(xué)習(xí)領(lǐng)域魏烫,有了新的理解和感悟。當(dāng)然遺憾的事也是有的 六月說要寫的書 拖了半年還沒寫完
今天打算進一步俗下去缠局,把上面的話展開了寫则奥。
技術(shù)元年
應(yīng)該說2016年是自己的技術(shù)元年,當(dāng)然在2016之前狭园,我其實已經(jīng)工作了七年左右了读处。
由批處理進入流式時代
2015年年底,進入L公司唱矛,讓我進入了流式計算時代罚舱。因為當(dāng)時部門的主要業(yè)務(wù)就是計費,所以當(dāng)時入職后就開始對原有的系統(tǒng)做設(shè)計和改造,這篇文章可見端倪:基于HBase做Storm 實時計算指標(biāo)存儲
因為之前了解過Spark,它一個比較好的地方是能夠同時實現(xiàn)流式和批處理绎谦,而且用起來還簡單管闷,所以我計劃統(tǒng)一平臺,不過我打算先深入學(xué)習(xí)Spark Streaming之后再使用窃肠,2015年12月9號 寫了第一篇Spark的源碼分析文章Spark Streaming 數(shù)據(jù)產(chǎn)生與導(dǎo)入相關(guān)的內(nèi)存分析,之后就已發(fā)不可收拾包个。
16年成功實現(xiàn)了對Spark Streaming的推廣,部門大部分流式任務(wù)都已經(jīng)采用了Spark Streaming冤留。目前有個百臺以上規(guī)模的Hadoop集群里面大部分任務(wù)都是Spark Streaming碧囊。
我也充分的享受到了流式計算的好處,所以開始不斷鼓吹流式數(shù)據(jù)天生就是流式的纤怒,而且也對流式的質(zhì)量控制有一定的心得流式數(shù)據(jù)Pipeline質(zhì)量控制淺談
那個時候分析源碼分析High了糯而,還順帶研究了幾天Kakfa Kafka Zero-Copy 使用分析,熟悉了其代碼體系結(jié)構(gòu)。
分析源碼有點打游戲的感覺泊窘,打通關(guān)熄驼,解決了一團疑惑后會很有成就感,但是很快會有新的疑惑烘豹。
海量數(shù)據(jù)查詢
大約2016年2月到3月之間瓜贾,我們開始面對海量數(shù)據(jù)的即席查詢的需求,其實就是明細(xì)數(shù)據(jù)的各種聚合查詢携悯。我之前除了參與改造流式計算平臺以外阐虚,其實本職工作大致是檢索引擎,還有未來的推薦蚌卤,機器學(xué)習(xí)等研究实束。檢索采用了ElasticSearch,所以對ElasticSearch開始有一定的了解,并且于 2月寫了第一篇ES的研究文章ElasticSearch Rest/RPC 接口解析,然后這一整年不斷的有ElasticSearch相關(guān)的文章輸出逊彭。
這個過程我們開始想如何使用ES來解決明細(xì)數(shù)據(jù)聚合查詢的問題咸灿,調(diào)研后做了如下的架構(gòu)SparkES 多維分析引擎設(shè)計,從4月份開始,基本就是圍繞這個開始做侮叮。
當(dāng)時我們小組包括我是三個人避矢,其中有一個人只負(fù)責(zé)對外需求,畢竟需要有業(yè)務(wù)產(chǎn)出囊榜,否則小組很容易掛掉审胸。另外一個則配合我一起弄這套架構(gòu)。雖然人少卸勺,但很高效砂沛,因為工作經(jīng)驗都比較豐富。整個數(shù)據(jù)部門平均工作經(jīng)驗7年+曙求,我們小組則更高碍庵。
四月份我們準(zhǔn)備簡化Spark的使用,所以有了 StreamingPro項目悟狱。四月初開始規(guī)劃静浴,四月中旬開始開發(fā),四月底就完成了第一個版本挤渐,并且很快開源苹享。之后這個項目成為了我們所有項目使用Spark的標(biāo)準(zhǔn)工具。
SparkES 多維分析引擎設(shè)計實際對應(yīng)的架構(gòu)如下:
當(dāng)然這個架構(gòu)最后的形成其實是在下半年了浴麻。規(guī)模最大時得问,ES集群服務(wù)器超過150+左右,配套的Spark服務(wù)占用的資源應(yīng)該100+左右服務(wù)器白胀,包括數(shù)據(jù)處理和查詢椭赋。應(yīng)該是一個非常大的規(guī)模了。
架構(gòu)里面的QueryProxy 集成了ElasticSearch-SQL或杠,可以查詢多個ES集群哪怔,同時也可以對接Spark SQL或者ES,也就是你可以通過QueryProxy直接查詢ES或者透過Spark SQL查詢ES。 Spark SQL的好處是可以解決跨索引查詢以及完備的SQL支持向抢,而直接使用ES-SQL的好處是速度夠快认境。
當(dāng)然我們這個期間也花了一些時間對ES-SQL進行Enhance,增加了一些新的語法挟鸠,并且提供JDBC的支持叉信,并且回饋給了開源社區(qū)。
我們小組不僅僅承擔(dān)開發(fā)任務(wù)艘希,同時還有自己服務(wù)的業(yè)務(wù)運維任務(wù)硼身,手頭管理和維護的服務(wù)器也接近200臺硅急,而且我們也對外提供StreamingPro,QueryProxy的使用培訓(xùn)等佳遂,方便平臺組和分析團隊更好的使用营袜。為了保證我們自己的服務(wù)運行穩(wěn)定,我們重新搭建了一套小型的SparkES集群專門收集和存儲ES/Storm/Spark日志等系統(tǒng)的日志,大致思路如用大數(shù)據(jù)思維做運維監(jiān)控丑罪。很多系統(tǒng)提供了Rest API 方便你監(jiān)控它的狀態(tài)荚板,比如ES就提供了大量的http接口供你分析ES的系統(tǒng)狀態(tài),反而是日志輸出的比較少吩屹,為了方便采集API接口跪另,所以我的另外一個同事又開發(fā)了一套API采集系統(tǒng) RestHunter,可以通過界面和配置定時采集ES API獲得結(jié)果并且解析進行存儲煤搜。
釋放以前的工作成果
在文章這些年免绿,我工作上走過的路,我提到:
經(jīng)過八個月業(yè)余時間(周末加上工作日夜晚)的努力,我想要的產(chǎn)品原型終于做成了
我將這里提及的【產(chǎn)品】中的一些小模塊剝離出來成了兩個開源項目宅楞,yarn-client,他可以是你非常容易開發(fā)一個基于Yarn的分布式應(yīng)用针姿。基于此厌衙,還有一個基于Yarn調(diào)度Docker的應(yīng)用yarn-docker-scheduler距淫。
年底的最后一戰(zhàn)
大約12月份,我開始開發(fā)我工作生涯的第二個推薦系統(tǒng)婶希,這個時候我們組包括我已經(jīng)有四個人了榕暇,額外還引入了三個人,參與該項目的人大約總共七個人不到喻杈,每個研發(fā)一天不超過兩小時彤枢,還有兩個人總共只花了一個下午的時間,在這種情況下兩個禮拜就完成了這個系統(tǒng)的原型開發(fā)筒饰,包括基于用戶畫像的實時異步化視頻推薦系統(tǒng)提及的所有功能點缴啡,以及部分推薦系統(tǒng)之眼提及的功能點。
對北京說再見
給一位好朋友投了一篇稿子瓷们,叫我和北京的7年之癢-天才工程師的自白业栅,標(biāo)題那個,標(biāo)題黨了谬晕,大家就忽略吧碘裕,看看內(nèi)容。這篇文章正式宣告我離開北京了攒钳。雖然離開北京來到杭州帮孔,結(jié)果杭州也連著四天都是霧霾天(全國性霧霾),然而想著退而求其次不撑,好歹還是比北京好些的文兢,也不如北京的醇厚晤斩。
與你同在
2016年2月份參加好朋友的婚禮,然后順帶去西安玩了幾天姆坚,回來到四月寫了篇我的兄弟結(jié)婚啦尸昧,新娘不是我,不過沒想到竟然遇到了人生很重要的人旷偿,也算是無意的收獲。
那一天爆侣,我腦袋剛探進門縫里萍程,然后有人發(fā)起關(guān)門動作,然后我的腦袋就被夾了兔仰,接著就莫名其妙的對她說:我想去沙漠茫负,大家都去看海看山乎赴,我們?nèi)コ酝涟伞?/p>
你想去么忍法?
恩,想去榕吼。
那去吧饿序。
就這樣去了沙漠,先汽車嘟嘟嘟羹蚣,地鐵當(dāng)當(dāng)當(dāng)原探,然后火車框框框,接著滴滴滴滴滴顽素,最后終于到達(dá)目的地咽弦。旅途艱辛。但是能和她一起在旅途胁出,就猶如一起出來看看太陽型型,是一種簡單但幸福的感覺。
景區(qū)是個很偏僻的地全蝶,玩完出來的時候闹蒜,到公交站要走很遠(yuǎn)的一段距離,這段距離都是土路裸诽,樹葉才剛發(fā)出嫩芽嫂用,但看起來和冬天光禿禿的并無二致。大卡車一過丈冬,整個路就塵土飛揚嘱函,當(dāng)量相當(dāng)于北京半年的霾吧。然后私家車一輛接著一輛給我們加餐埂蕊。整個路途中只有我們兩是在走路的往弓。但是她一直很開心疏唾,雖然也吃了巨多的灰和土,中途還要不斷給車讓路函似。
我覺得她追尋的幸福很簡單槐脏,而我也應(yīng)該更加努力讓她擁有那些簡單的幸福。她沒有因為現(xiàn)在的條件而責(zé)備或者不滿于我撇寞,而我也相信自己能夠不再讓她走在充滿塵土的路上顿天。
都是愛情是神奇的,那個時候我突然感覺自己就像個詩人蔑担,總有好的句子冒在我的腦海里牌废。
當(dāng)我看著她的臉龐時,我喃喃道:
你溫柔時就像
那慵懶的太陽
暖暖的 溫和的
甜甜的 鋪在了我的臉上
你熱情時就像
那慵懶的太陽
暖暖的 溫和的
卻時不時灼燒下 我手上的皮膚
你喃喃囈語啤握,聽著就像海浪拍打海灘的節(jié)奏
你天使般的微笑鸟缕,帶來了清涼的海風(fēng)
身上的每塊 骨頭 每塊肉 每個感觸 由外而內(nèi)
都是放松的
看著你的背影 宇宙的每一刻粒子 都浸染了我的幸福
當(dāng)她坐著火車準(zhǔn)備回家時,我有點不舍:
火車
聽說你要離開幾天
心里的小人被撕裂成了兩個小人
一個小人很不情愿排抬,很不舍
一個小人則理性的說
不能用不舍去綁架人
我慌了懂从,不知道該聽誰的
午后悶熱無風(fēng),好似心中的兩個小人不再擾動蹲蒲,反倒焦躁了
我和你番甩,坐在小區(qū)小廣場的一棵大樹下的石板凳上
天氣竟然涼爽了
風(fēng)吹動樹葉玩轉(zhuǎn)點滴陽關(guān)恰似波光嶙峋
一起的兩小時,沒怎么講話
好似千年
又如一瞬
似乎我們有了千年的情
但似乎只呆呆的看了你一秒
今天我們看到了很多的火車
有綠皮的
有白皮的
他們都是風(fēng)景
我們一起悠鞍,開心的看著
然而
當(dāng)你坐的那輛火車開動的時候
有一顆繩索
拉著我的心
車開的越遠(yuǎn)
繩索蹦的越緊
想必這就是牽掛的來源吧
當(dāng)車開的足夠遠(yuǎn)对室,我的靈魂
也被拉出
我是一個無主的人了
當(dāng)她好幾天不在我身邊的時候,我竟然有點了無生趣:
我有一塊新大陸
占據(jù)了總面積的一半
然而新大陸是被迷霧籠罩的
你來了
就像那太陽一樣
撥開云霧
整個新大陸在和煦的陽光中
鳥語花香
你不在的這幾天
我發(fā)現(xiàn)新大陸的鳥兒不再歌唱
樹葉不再長青
我以為我失去了整個新大陸
后來我才發(fā)現(xiàn)
我失去了整個世界
和她發(fā)訊息咖祭,有一種甜蜜的感覺:
她:
裹在被子里看書
忽然想和你說說話
又不知道說些什么
叫了叫你的名字
有點開心
只因喊你的時候你總在那
我:
正經(jīng)危坐著
敲著鍵盤
看著跳動的字符 時不時無意識瞅著手機
仿佛你就在手機里
看到有我名字的簡訊點亮了屏幕 也點亮了我的心??
看著計算機書掩宜,我想到的也是對她的情話:
據(jù)說,人類最有前途的計算機技術(shù)
是量子計算機
量子計算機的理論基礎(chǔ)是
無論兩個粒子離的有多遠(yuǎn)么翰,
當(dāng)一個變化了牺汤,另一個也必然發(fā)生變化
你和我的心 便是量子幻化而成
無論我們有多遠(yuǎn)
我們都能感受到對方的變化
你的心頭一想到了我
我的心頭便是一顫
溫馨的 暖暖的
愛情 不是占有 而是一種
牽掛
我們相遇在馬路的那一刻,也是一種美:
你在過馬路
撐著小傘 陽光BlingBling的
走到馬路中間
綠燈調(diào)皮的把自己變成了紅燈
前后的車在你身邊疾馳
小傘下有顆不知所措的心兒
我在迎面處 遠(yuǎn)遠(yuǎn)的就看到你的輪廓
越走近越確認(rèn)就是你
心中的欣喜也難以掩飾
我闖著紅燈走到你跟前
然后在綠燈的陪護下
和你一起走到馬路邊
我愿消失在你的傘下
我睡覺的時候浩嫌,我自言自語道:
我要去睡了
因為我怕
我只要醒著
我的眼眸里
我的腦海里
我的思緒里
都是你美麗的身影
然而檐迟,進入了夢鄉(xiāng)
你我依然不期而遇
從夢中甜醒
我睜開眼 想到的依然是你
你便是我的夢 我的現(xiàn)實
當(dāng)她在看著窗外的雨時,我也在看著窗外的雨:
下雨天 屋子里的人總是禁不住犯懶
刷手機 看電視 睡覺
外邊的人們走的比誰都快
沒人愿意好好看看這雨
只想他早點停吧
我早上 好好的看了這雨
雨滴滴落在路旁汽車的后備箱上
以一個中心點迅速的向四周擴散 码耐,消失 追迟。
路邊的淺淺的積水 在風(fēng)的作用下
卻也似乎有了海浪的形,
但終究是沒有海浪的氣勢骚腥。
走在夾路是兩排樹下的小道上
雨水拍打著樹葉
拍打著傘
這自然的聲音
終究是比耳機里的音樂來的更讓人舒暢
她在微博說:
你說喜歡雨 但是下雨時卻撐開了傘
你說喜歡陽光 但是陽光播撒時卻躲在陰涼
你說喜歡風(fēng) 但是清風(fēng)撲面時卻關(guān)上了窗
我在微博回答她:
我打開傘 緩緩的看著雨水從傘尖流下
是因為不忍雨水好似淚水 從我的臉頰流下
我躲在陰涼處 是因為這樣才能好好感受
我不想讓陽光因為過度的熱情傷害我而懊悔和傷心
我關(guān)上了窗子
是因為我馬上要出門 擁抱你
我相信:
如果說十指連心
那么
當(dāng)我的手牽著你的手的時候
便是
我們心心相印的時候
我們的心通過手來連接
當(dāng)我牽著你的時候
我便可以拉過你來
互相擁抱
擁抱的感覺
就像淋了漂泊大雨
回到了溫暖的家里
喝著熱氣騰騰的湯
看慣了世間的喜怒哀樂
無論多么努力 總有無可奈何的時候
一牽著你的手
我便有了前行的動力