謙先生的程序員日誌之個人hadoop大數據生涯一

從一個初級程序員到高級程序員的經歷css

你好!我是謙先生,我是茫茫程序猿中的一猿,平凡又執着。前端

剛入行的時候說實話,啥都不懂,就懂點皮毛的java,各類被虐狗的感受。又寫js又寫css又寫後臺。。。慢慢被虐出來了~開始掌握一些好多前端框架好比jqury、jquery ui、easyui、datagrid、zTree、extjs、boostrap、echart。。。各類各樣的(XoX),後端也由於外包的項目各類各樣,主流的框架如struts二、hibernate、mybatis、spring都要熟悉使用,但對於struts2與spring mvc,用得最多仍是spring mvcjava

 

後來,工做久了有了許多代碼的積累,發現一個問題,寫過的代碼複用起來老是須要改不少地方,我開始嘗試儘量的提升代碼的通用型以及代碼的擴展性。因而就開始搞設計模式,啃書啃開源框架的源碼,萬事學習模仿起嘛。以後就模仿着開源框架寫了核心設計的代碼,好比ioc容器、rpc框架、基於觀察者的高可用中間件等代碼。也仿寫基於二進制的linux的權限管理並在項目中成功應用,優化了通常字符串存儲的體量問題。python

 

 

        隨着時間的飛逝,公司愈來愈多的業務跟我掛鉤了。慢慢的我在項目組中編碼的能力也獲得了承認,從一個新人變成了一個核心的開發成員,開始接觸到軟件架構的事情了。開始有同事協助個人工做,開發任務的安排不禁得我不寫接口文檔,以及作項目的架構中很重要的數據庫設計,也開始畫各類UML來理清項目代碼的各類關係。在外包的工做當中,有開發的工做,也有研發的工做,中間件設計與開發是最噁心的,經常會處理許多併發編程的問題,各類併發容器,好比LinkBlockingQueue、DelayQueue等各類隊列,還有容量評估、高水位、系統閾值、QPS、RT等一大堆新認知,頓時發現這個世界太大了,這水好深。除了中間件帶給個人痛苦,同時還有另外一個噁心的就是mysql存儲過程的提示,寫了幾遍不再想寫了。還有700多行有些甚至上千行的的sql的擴展開發,改哪哪疼,多麼但願別再往裏加需求或改需求了。也由於性能的事情也開始學習orcale優化器策略、索引設計、物化視圖的設計跟jvm的知識,那些新老生代、標誌壓縮、TLAB、串並行收集器讓我記起了那個寒冷的冬天。mysql

 

 

項目經理開始讓我去了解學習hadoop,linux熟練程度決定了個人掌握速度,我開始把下班的生活搬進linux的世界,一個月多都在使用linux shell去幹活,無可奈何才能用windows(只能查東西),爲了強化linux,開始學習集羣的架構知識,今天把一個tomcat集羣搭起來,明兒幾天計劃並實施nginx、Apache的負載均衡,又實施了集羣優化,好比讀寫分離、動靜分離等技術。後來想到一個問題,就是當負載服務器宕掉就會出現集羣癱瘓的問題,因而就接觸到了高可用,也發現了keeplive跟zookeeper這兩個好東西。以後作壓力測試的時候發現,nginx的峯值是4W左右、Apache就低不少,就開始研究他們的負載均衡。因而瞭解到他們是出於第七層的負載均衡只能作到請求派發,有一項技術叫LVS——軟件實現的第四層負載均衡,跟F5的原理同樣以轉換IP達到的負載均衡技術,不過它是軟件實現。還有基於一致性hash的session緩存層,跟幾個經常使用的nosql研究。jquery

 

一個月後發現,個人linux已經日新月異了,而後我開始去作學習hadoop體系,從第一個版本到第二個版本,他的生態也研究瞭如hive、hbase、zookeeper、sqoop,還有storm跟spark。開始嘗試去從朋友拿到的數據,根據朋友描述的產品線作集羣設計與部署,看着本身部署的集羣能模擬朋友公司的生產環境運做,我感到很興奮。以後也爲了得到更多的數據去學習python跟nutch,還有solr跟elasticsearch的使用。在本身的公司也有大數據部門,後來成功經過了考覈轉到了大數據事業部,進入了個人大數據職業生涯。開始我遇到了許多問題,mr、hive的數據傾斜、storm、spark的join問題,還有基於elasticsearch的hive索引優化,以及hbase的二級索引實施的分佈式問題。這個過程由於常常寫運維腳本也強化了個人python跟linux shell能力,還掌握了scala的多範式編程。linux

 

在大數據事業部的日子一天一天的過去,也慢慢適應了與web不同的業務需求,剛開始的時候就部署下環境,改了許許多多配置文件,還有一些平常的清洗工做、指標統計工做以及一些臨時的處於問題排查的業務需求外,一天工做中剩下的時間仍是挺多的。據說最近的項目也有很多跟模型有關,開始瞭解大數據的數據挖掘領域。經過同事朋友的交流還有網上市面的一些資料書籍,慢慢開始熟悉機器學習的各類算法在spark、mahout、還有mapreduce中的應用。好比基於頻繁集項、分類、聚類等算法的輿情分析系統,以及過程當中詞庫的設計、同義詞、錯寫詞的處理等一些關鍵問題,其次就是標籤系統跟用戶畫像系統的開發,還有公交路段實時監測預測系統的開發過程。在這個學習的過程中,如當初同樣,往事模仿起,寫了好些業務流程的架構開發,也開始在生產中投入本身在數據挖掘中的自身價值,現在已經有不少的數據挖掘開發經驗了。。(上海尚學堂大數據培訓謙先生原做,請多關注後續更多大數據相關技術文章)nginx

 

寫到這裏,從web到大數據所經歷的許許多多之後,我又一次看到了一個新的方向,那就是人工智能,也開始投入到人工智能的研究路上。同時也慨嘆,做爲一個IT技術人,迫切須要一種學無止境的精神才能抵得住技術的快速更替。程序員

相關文章
相關標籤/搜索