今天是2016年10月4號,時間過得很快,距離我2016年6月28日入職云創大數據(http://www.cstor.cn/)已經足足98天,十一假期結束,正好滿100天。很感謝張總(張真)、劉教授(劉鵬)給自己的實習機會,很感謝楊老板(楊震宇,處理組項目經理,都這樣稱呼,哈哈)平時的照顧和指導,感謝沈大哥(沈大為,現外聯總監,原平臺部項目經理)給我面試,并給我實習offer。在這里,我學到了很多,先后參加過《 運營商大數據精準廣告投放技術方案》的撰寫、Sort BenchMark的100T的數據排序比賽(2015年,阿里世界冠軍,我們最后沒參加成很遺憾)、江蘇省地理信息測繪院的歷史數據在線化開發(數據量之大,令我汗顏)等關鍵項目,項目中使我在校學到的理論知識落地,很是感謝。然而作為一個研二的學生,整日奔波在公司與學校之間,很是吃不消,所以,國慶以后我將會提交辭職申請,很不舍,但魚和熊掌不可兼得,在公司了解市場行情之后,我還是想回到學校完成自己學業的同時(主要是論文),將大部分時間用在技術體系學習上,這樣完整的時間學習效果更好。
云創大數據,掌門人張總和劉教授,公司的每個人都對教授的智慧和才能佩服有佳,對張總的平易近人甚是喜愛。公司工作氛圍非常融洽,公司環境特別整潔,公司技術氛圍很純碎,踏踏實實做事情,沒有勾心斗角。公司的幾個代表性產品服務器A8000、云存儲cStor、數據立方、萬物云、大數據實驗一體機等等,公司的幾乎所有業務圍繞著大數據處理和分布式云計算技術展開,涉及地震局、測繪局、公安、企業、教育3.0等多個領域。是軟件和硬件一體化的公司,通過完全是自己公司的產品提供完整的解決方案,從服務器機柜、服務器、軟件等,全部來自自主研發,這對于100+人的中小型企業困難之大很難想象,但是云創做到了。云創目前的重點關注了教育3.0、云直播和智能硬件領域(一直是強項)。
云創大數據,是我第一個專業實習的公司。當時作為南郵研一的學生,因為之前沒去IT企業實習過,還是有點不踏實的。研一伊始就決定,研一的暑假要出去鍛煉一下動手能力,因此研一下學期,就抓緊時間寫了一篇論文《VKTS:可驗證的單關鍵詞文件檢索處理方法》,該篇論文7月10號,投稿《軟件學報》。在撰寫論文期間,便開始關注實習招聘,因為本科就一直關注“劉鵬看未來”這個微信公眾號,對劉鵬教授和云創大數據都有些了解,所以當時公司招聘實習生的時候,我也關注到了,于是便開始準備簡歷,投遞。都第一次投遞簡歷是2016年04月19日 13:25 (星期二),當時投給云創大數據的HR(馬姐)。周四還沒回應,于是2016年04月21日 10:01 (星期四)再次投遞。 2016年4月25號,我接到了馬姐來電的面試邀請,于2016年4月29日下午參加了云創大數據的面試,給我面試的先后是沈大哥、劉教授、馬姐(當時因為楊老板不在,楊老板就沒面),很輕松,拿到了面試offer,特別感謝他們給我實習的機會,但是因為學校論文的一些事情,我到了6月28號才報到。
到了公司,首先就是履行一些常規的手續。然后就開始接觸實實在在的項目(因為一些保密規定,項目具體細節不寫出)。
我第一個負責的內容是《運營商大數據精準廣告投放技術方案》,這個主要是合理挖掘用戶數據進行精準營銷,我在校對數據挖掘很感興趣,也看過相關的書籍,自己的研究方向是大數據隱私保護相關,也會用到數據挖掘的一些內容,比如分類、聚類,當時查閱了相關的論文和參考了劉鵬《計算廣告學》這本書,大概兩周時間完成這個技術方案撰寫,因為自己有數據挖掘的基礎,撰寫技術類的方案,技術方面沒問題,然后和方案部共同進行修繕。這里要特別說一下,我們公司有自己的迷你書庫,并且每個人每年都有購書經費,這項福利我甚是喜歡,并且云創很注重前言的知識,遇到技術性和專業性比較強的項目,劉教授和楊老板總是會強調查閱相關的論文和985、211等著名高校的研究生論文,特別是博士研究生論文,這讓我有種在學校做科研的感覺。方案撰寫完成后,便開始研究方案中運用到的分類和聚類算法,主要涉及SVM、K-means、譜聚類、邏輯回歸等,對于每個數據挖掘算法,我都到github上面找到算法的原型,然后進行改寫,因為數據的保密性,此處不再具體講述。期間除了這些算法,我還在看Hadoop相關技術,看了《Hadoop權威指南(第三版)》、《數據挖掘導論》、《Hadoop技術內幕:深入解析YARN架構設計與實現原理》(沒看完),并且期間看了傳智播客吳超老師的Hadoop課程。與此同時,經常閱讀github上面的源碼,因此Maven用的也比較熟悉。
我參加的第二個項目是Sort BenchMark排序比賽,這個項目也是我最認真的一個項目,這樣說貌似不太合適,應該說是我付出最多、精力投入最大、個人成長最大的一個項目。之前寫過一篇專門寫的這個項目,但是貌似沒公開,這個比賽,阿里去年拿了冠軍,劉教授對排序比賽甚是感興趣,其在清華求學期間就曾拿過世界排序的一個冠軍。但是這個比賽因為一些具體原因,不太適合公開寫。這個項目在淮南出差了10幾天,主要地點是安徽(淮南)移動數據中心。在此感謝測試組的加軍哥(主要負責運維)、存儲組的章亮、于陽(提供linux下ext3文件系統文件串聯工作)、處理組的鎖哥、段兄(鎖哥負責通信協議研究,段兄和我負責核心算法),還要感謝自己(主要負責代碼撰寫和算法,主要是java和shell),最要感謝當然是我們的楊老板給了我這次機會和期間的電話甚至實地指導,作為實習生,能出差負責這么重要的項目,壓力與欣慰并存,在淮南的有段時間,我每天從早上9點寫代碼到凌晨2點、3點睡覺,然后就這樣循環一個星期,我的肩頸開始疼痛,但是時間緊張,還是盡量去完成,我從來沒把自己當做實習生,用百分之百的努力完成眼下的事情。當然期間我們也有很多歡樂,比如我們每天開車10公里去數據中心的路上、每天中午淮南牛肉湯面、特別是每天晚上都“下館子”(壽縣土菜館、卲記土菜館)的情景,當然也有荒地路邊的棚子下,滿是蒼蠅,草草吃一頓的辛酸情景……但是因為最后一些原因,比賽沒能成功參加,一部分是硬件的原因(需要3000臺服務器,每臺服務器配置10塊左右的硬盤,最低萬兆交換機等等,中國沒幾個公司拿得出來,成本巨大),當然還有就是自己沒有十足的把握(雖然通過努力程序的排序時間復雜度達到O(1),程序通用性等等做的還不錯,但是只測試了30多臺機器,用了150G的數據,3000臺服務器沒測試,數據量100T也太大)。因此最后很遺憾,但是中間學到了很多:
一是一個項目的架構是這個項目成功的關鍵,架構不好,效率根本不可能高;
二是真正意識到算法的重要性,架構設計完成,依托架構的算法設計變成關鍵,排序真的可以是O(1)的效率(針對具體環境);
三是數學模型的重要性,保證了我們的程序計算模型、數據分發模型、數據接收模型的通用性;
四是程序的底層原理特別重要,比如:多線程、緩沖區;
五是不管自己的身份,態度是最重要的,沒有態度,其他諸如能力等都免談。
最后,我想說的是,這個比賽,雖然對于資本融資、中小型企業發展等特別重要,但是真的不太適合中小企業搞,硬件成本太大。并且沒有實際的運行環境,很難保證小數據、小集群環境下的測試效率在大數據、大集群上面適用,實際的測試環境應該在實際的運行環境中測試,并做相應的調整,阿里之所以去年獲得冠軍,很大一部分原因是阿里像亞馬遜一樣有自己的云平臺,阿里云的發展,離不開服務器的采購,阿里天貓、雙十一需要大量的計算和服務器,但是雙十一結束,阿里會空余很多閑置的機器(雖然阿里云用部分租給別人,還是會空余很多),這部分機器可以長時間用于sort BenchMark比賽的測試,然而很多中小型企業不具備這樣的條件。
第三個我參加的項目就是江蘇省地理信息測繪院的歷史數據在線化(天地圖項目第一階段)。如果說第二個項目刷新了我的“數據觀”,100TB的數據排序(其實就是1萬億條字符串排序),這次的數據算下來一共將近600TB,是其十幾年的測繪影像數據和處理后的,文件大小從KB到MB不懂,并且這些數據全部是存儲在移動硬盤中,通過excel進行索引,使用起來很不方便,需要將其轉儲在分布式文件系統中,保證方便性、安全性、可管理等,但是云創最擅長就是做這種大數據量的,公司給其做了cstor存儲系統,上的是A8000服務器,用數據立方相關技術解決數據索引問題,java web解決數據和用戶交互問題,我在的這段期間,主要參加的是數據落盤和審批流程開發,期間得到了顧焜和汪洲權很多的幫助,很可惜,有可能這部分完不成我就要回學校了,學校的事情這段時間比較多,實在不能同時完成兩方面的工作。
很感謝公司給了我實習的機會,除了上述提到的一些同事,還感謝行政部翠姐每次不厭其煩的給自己做請假等工作(實習生假太多)、網絡部小創哥給自己忙裝電腦、弄網線等,室友孫大哥閑聊中給自己普及資本融資方面知識,室友蘇澤月的生活中的幫助,對了我們組8月份拿到了“優秀團隊”(http://www.cstor.cn/textdetail_10989.html)。
再次回到校園,國慶假期,大家都回家了,只剩下文采、小白和我,拿起放下三個多月的論文,完全沒有了實習前面看論文的那種感覺,還要慢慢培養,繼續加油中,fighting……
最后貼幾張照片紀念一下這段實習生活……