某大數據項目感想留記

1、項目名稱

XXXX平臺大數據改造數據庫

 

2、開發週期

2016年3月 - 2016年11月編程

 

3、從我的視角看團隊

1)   值得保持的優勢安全

  • 團隊氛圍融洽、交流通暢。
  • 團隊構成比較合理。年輕人技術強力,老人可以把控項目方向。
  • 遇到問題及時溝通,羣策羣力解決問題。
  • 有吃苦耐勞的精神,每一個人都抱有很高的責任心。能頂住持續高強的壓力。
  • 公司大環境給予的支持力度大,從技術、工程、到後勤保障都值得稱讚。

 

2)   仍須要改進的地方架構

  • 需求管理:

客戶提出來的需求比較零散,須要整理入冊,安排優先級。應對其狀態進行追蹤。保持與客戶的互動。框架

  • 單點做戰:

每一個人擔當的任務沒有其餘人能夠分擔,一旦出現問題,項目將受到較大影響。機器學習

  • 質量管控:

因爲持續高壓,致使程序質量多少存在一些問題。編程語言

大數據項目的測試手段比較落後,也是一個對質量影響比較大的因素。分佈式

  • 架構風險:

整個項目的技術架構經歷了不少次的迭代,給予項目帶來了極大風險。oop

雖然僥倖過關,可是,這種框架上的持續變更確實須要想辦法避免。性能

應儘可能在項目前期,提出多種解決方案,採起並行研發的方式來尋求下降風險。

 

4、從項目看本身

XX項目雖然有驚無險的順利過關了。可是,我我的在參與整個項目的過程當中,卻一直有一種莫名的「恐慌感」,最近也一直在想這種恐慌來源於何處。可能來自於如下幾點吧。

  • 對我的技術功底的不自信。多年外包的經驗很難在技術上給我帶來多大的自信。
  • 對新技術穩定性存的不信任。
  • 久久未能獲得客戶的承認時,對項目將來的擔心。
  • 一直持續追趕的狀態,安全感被逐漸消磨。
  • 有些技術問題從表面上看是解決掉了,可是並無理解其中的「道」。

雖然項目贏得了階段性的勝利,但這些恐慌在必定時間內將一直伴隨着我。

但願可以逐漸適應這種節奏,把這些恐慌扼殺,帶着節奏去完成從此的項目。

 

5、項目優化策略

  • 資源隔離:

將耗費性能的處理隔離出來,單獨佔用資源,以防止資源被其餘處理搶佔。

  • 熱點數據:

將常常訪問的數據造成熱點數據區,以加快查詢速度。(HBase Bucket Cache)

  • 數據分流:

增長後置資源利用率,將一部分企業放置到後置集羣進行處理。

  • 採用SSD

實踐證實SSD盤能夠很是明顯的提升讀寫速度。

  • 批量寫入:

數據寫入數據庫的處理,儘可能使用批量寫入的方式。

  • 展現分離:

展現頁面所使用的數據與永久持久化的數據能夠分離開,以提升展現的性能。

 

6、大數據入門策略

XX項目是我第一個國內的項目,也是我經歷的第一個大數據項目。

本身技術功底相對薄弱,從零基礎到給項目提供戰鬥力仍是經歷了比較痛苦的過程。

比較想分享的是本身學習大數據的從0到1的這個過程吧。

 

  • 認識大數據

首先要知道大數據的定義,知道大數據的產生和意義、大數據能解決什麼問題。

 

  • 瞭解大數據用到的技術

這裏的瞭解,只是知道有這麼一個技術而已。不須要對技術有更深層次的瞭解。

從如下幾個方面對真個技術生態圈有一個概念上的認識便可。

  • 編程語言
  • 展示技術
  • 數據存儲
  • 處理框架

(機器學習、數據挖掘等沒有接觸)

 

  • 從必備基礎技能學起

基礎建設決定上層建築,在進入項目以前須要在基礎上下功夫。如:

  • Linux命令
  • Shell編程
  • Java基礎
  • 大數據詞彙(DB、ETL、DW、OLAP、DM、BI等)
  • Git用法
  • Maven用法

 

  • 從Hadoop入門

大數據技術更可能是的是採起分佈式計算來解決海量數據的計算。而Hadoop是大數據技術領域中比較表明性的計算框架,技術比較成熟,其中的MapReduce是比較容易上手,很是適合理解分佈式的「分而治之」的理念。

學習方法無礙是:看視頻、看書、動手實踐、解決問題、再次看書。

同時,須要多餘身邊的優秀人才交流,從他們那裏吸取大數據的思惟方式。

 

  • 學習大數據必會技能

大數據的技術錯綜複雜,更新迭代也比較快。我的感受下面幾個應該屬於必會技能了。

目前我尚未所有解除到,但願之後能逐漸接觸。

 

【計算框架】

  • Hadoop(離線處理、Yarn資源管理)
  • Storm(流式計算)
  • Spark(基於內存的分佈式數據集、流式計算等)

 

【數據存儲】

  • HBase
  • MongoDB
  • 內存數據庫(如Redis)

 

若是將大數據的相關技能比做一顆大樹,那麼整個技術生態能夠按照下面這樣來比喻吧:

  • 水分       →     數據源
  • 根莖       →     ETL(數據抽取、轉換、加載)
  • 樹幹       →     數據倉庫
  • 枝葉       →     展現

 

 

  • 深刻了解分佈式思惟

傳統的計算機技術大部分都是基於單點完成的,也就是一臺計算機就能夠完成。

計算量比較大的時候,就去想辦法提升計算機的硬件性能。

而大數據因爲有5個V在那裏,全部,更多的採用分佈式來完成計算和存儲功能。

也就是「分佈式」處理了。那麼,分佈式處理和傳統的處理方式在思惟方式上有什麼區別呢?

彪哥說:「萬事萬物道理都是相通的」。

我時常將「分佈式計算」與「項目管理」進行比較,也確實從中獲益很多。

------------------------------------

一我的是一個獨立單位,能夠獨立完成量比較小的任務。

當任務比較多、大、複雜的時候,就須要多人協做完成,也就是團隊了。

一個團隊的構成比較複雜,不一樣的協做方式,能夠解決不一樣的場景,

固然,不一樣的協做方式也表明效率、風險、職能等多方面的不一樣。

 

假如一臺計算機比做一我的。

一臺計算機完成的任務有限,當大量的任務的時候,就須要多臺計算機來協做完成。

一樣,多臺計算機同時處理一個做業的時候,就涉及到協做策略、節點職能、溝通策略、風險應對等多方面的考慮。

 

好比從如下幾點來看:

①     項目經理不該該成爲團隊的瓶頸。(Hadoop1.x進化到Hadoop2.x的緣由)

②     資源須要備份,我的問題不能影響團隊。(單節點故障問題)

③     團隊之間的高效溝通。(節點之間的通信策略)

④     數據存儲策略。(是放在腦殼(內存)裏,仍是寫在本(磁盤)上)

⑤     資源分配方式。(Yarn資源分配)

------------------------------------

 

7、總結

保持學習的心態。

在技術上不要掉隊。

爲項目提供即戰力爲先。

保護革命的本錢(身體)。

持續推演我的職業規劃。

多與年輕人接觸。

 

※因爲有項目保密協議,沒法透露項目的具體細節,以及調優的相關參數。

也不敢透露項目的架構設計,僅留此博客用來自我總結。 

 

--END--

相關文章
相關標籤/搜索