大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了

未來的時代,一定是數據的時代,在未來,一切被記錄,一切被分析,數據將以資產的方式存在,相關知識如下:

大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了

一、先說各種數據存儲

數據是個很泛的概念,但是我們腦海裡第一反應的就是關係型數據庫和EXCEL這種二維表是數據。

而現在數據各種各樣特色,有文檔、有圖片、有流式的音頻視頻、有日誌數據、有IM消息數據、有索引數據、有社交應用的網狀關係數據、有地圖數據。他們對存儲訪問都有不同的要求,因而NoSQL興起了。

如KV型,先後出現了Memcached、Redis。如文檔型,出現了CouchDB、MongoDB。如日誌數據,也出現了Facebook Scribe、Flume、Logstash。

即使在傳統關係型數據領域,由於大數據規模也出現了真正的分佈式關係型數據庫,如GreenPlum、TiDB、OceanBase

為了多維分析,也出現了專門的列式數據庫,如HBase。

大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了

二、數據倉庫

各式各樣的數據,經由各種上層應用進行了採集和存儲。但我們一提到大數據,自然想到的就是大數據分析。大數據分析的第一步就是大數據倉庫建設。

大數據倉庫建設,必要的工作就是ETL(抽取、轉換、導入)。抽取,這步就又細分為:數據抽取、數據清洗、數據校驗。在轉換這步,我們也需要關注數據安全脫敏,也就是說,進入大數據倉庫的數據需要分級。

不過大家一般建設大數據倉庫,首先做的第一個應用工作就是:主數據治理。所以這個第一期,需要做:主數據標準制定、主數據清洗與校驗、主數據轉換(拆分合並)、主數據複製分發、主數據訪問OpenAPI。

數據複製分發,我們可以使用消息隊列和調度服務來工作。消息隊列如Kafka、ZeroMQ、ActiveMQ、RabbitMQ。調度服務如ZooKeeper。

數據抽取傳輸開源項目,我能看到的Sqoop on Hadoop。可能很多數據都是直接被Spark、Storm、Presto、Hbase處理了。

三、大數據倉庫基礎架構

現在建大數據倉庫,需要的是分佈式存儲和分佈式計算,再也不是過去幾十臺服務器和幾百T存儲這麼簡單的。這都是要以萬計的,這才是真正的大數據。而要建造這麼大規模的大數據倉庫,需要分佈式存儲和分佈式計算基礎框架支撐。

我們第一個就要提出的就是Hadoop。目前它已經成為了一個生態。Hadoop最核心是兩塊:分佈式文件系統HDFS、MapReduce。MapReduce又分為MAP(分解任務)、Reduce(合併結果)兩部分。

現在有個新玩意叫YARN,不過YARN並不是MapReduce2.0。在MapReduce中資源管理和作業管理均是由JobTracker實現的,集兩個功能於一身,而在新的Hadoop2.0架構中,MapReduce作業管理由ApplicationMaster實現,而資源管理由新增系統YARN完成。Hadoop Corona是facebook開源的下一代MapReduce框架。其基本設計動機和Apache的YARN一致。就是因為大家都在解決同一個問題,只不過不同時間段開源出來不同的解決方案項目,所以使大家大呼到底要用哪個啊。

現在又出來一個新玩意叫:Mesos。Mesos是更寬泛的資源管理框架,不僅可以管理偏重於半結構化的大數據框架,也可以管理非結構化的框架。人們也在對比Mesos和Kubernetes,其實Kubernetes只是目前聚焦於容器的管理,而Mesos野心更大,當然也抽象的更通用化,留下各種抽象接口,以管理各種資源。

有人還把ZooKeeper和YARN、Mesos比較。其實Zookeeper已經成為最基層最具體最不可或缺的真正的協調執行者了。而YARN成為了大數據處理資源管理框架,而Mesos更成為了有史以來更大集成者更通用的資源管理框架了。

大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了

四、大數據計算框架

在大數據處理領域,目前當紅炸子雞是:Spark、Storm、Flink。

Spark切的領域在MapReduce工作的領域,不過Spark大量把MAP中間結果放到內存中,所以顯得性能特別快。現在Spark也在往生態走,希望能夠上下游通吃,一套技術棧解決大家多種需求,所以大家又漸漸看不清楚Spark聚焦的領域了。Spark Shark,是為了VS hadoop Hive,Spark Streaming是為了VS Storm。

Storm擅長處理實時流式。比如日誌,比如網站購物的點擊流,是源源不斷、按順序的、沒有終結的,所以通過Kafka等消息隊列來了數據後,Storm就一邊開始工作。Storm自己不收集數據也不存儲數據,隨來隨處理隨輸出結果。

它們都有各自的特色,但他們都無法給你處理具體的業務應用,它們只是大規模分佈式計算的通用框架,所以具體用他們的特性幹什麼,還得你自己寫。這就是大數據業務領域分析系統的事了。

不過,下面我會介紹一些技術,在特定的業務領域,能夠幫你更簡單的達成業務應用需要。

大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了

五、大數據應用技術

1、大數據搜索:Lucene、Solr、ElasticSearch。ElasticSearch是新推出的比Solr在大規模數據情況下更好的開源解決方案。

2、大數據查詢:這裡有Hive/Impala,Hive的作用是你可以把結構化數據導入到Hadoop中然後用簡單SQL來做查詢。你可以把Impala看做是性能更快的Hive,因為Impala不強依賴MapReduce。而Facebook開源的Presto更是能查詢多種數據源,而且一條Presto查詢可以將多個數據源的數據進行合併。

3、大數據分析:咱們要提到去年新晉頂級Apache項目的Kylin。它創始於ebay,2014年進入apache孵化項目。Kylin不僅僅能做SQL查詢,而且能做Cube多維分析。

4、大數據挖掘:這個領域包含精準推薦、機器學習/深度學習/神經網絡、人工智能。自從AlphaGo火了以後,機器學習再度火熱。Google開源了最新機器學習系統TensorFlow,微軟亞洲研究院開源了分佈式機器學習工具包-DMTK,雅虎也開源了Caffe On Spark 深度學習。Mahout是Apache的一個開源項目,提供一些機器學習領域經典算法的實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。

六、數據可視化工具

這塊有大量的可視化開源組件,但成系統的開源的確實出色的不多。這裡面大有可玩。

Airbnb近日開源了數據探查與可視化平臺Caravel。另外,百度推出的Echarts組件也不做,可以基於此做些系統性的工作。

七、數據平臺監控運維

這裡只看到一套完整的適用於海量日誌處理的工具:Facebook Scribe、Flume、Logstash、Kibana。但我覺得,如此複雜的大數據平臺技術棧,一套成熟的監控運維繫統,是必須要出現的。

八、最後總結:大數據平臺建設總藍圖

作為咱們日常業務,最直接的需要就是一套能分析具體業務的應用系統,但這套應用系統需要很多基礎技術架構和服務才能達成。為了讓大家有所預期,所以我把這些必備前提儲備列出來。

技術平臺建設:

1、大數據基礎架構:推薦Hadoop、HDFS、YARN;大數據計算框架:推薦Spark;大數據日誌收集推薦Flume+Logstash+Kibana。我們需要部署依賴中間件Zookeeper。

2、大數據倉庫平臺建設:分佈式關係型TiDB、KV式Redis、文檔型MongoDB、列式Hbase

3、大數據搜索,推薦選擇Lucene、ElasticSearch;大數據查詢,推薦選擇Presto;大數據多維分析,推薦Kylin;大數據挖掘,推薦挖掘開源算法包MashOut。

大數據整理服務:

1、主數據管理:主數據標準制定、主數據清洗與校驗、主數據轉換(拆分合並)、主數據複製分發、主數據訪問OpenAPI。

2、ETL:數據抽取、數據清洗、數據校驗、數據安全脫敏

大數據分析系統建設:

1、大數據展示平臺建設

2、大數據商業應用模型建模

3、大數據應用分析系統設計與開發

看看,大數據建設很複雜,大家一定要沉住氣,一期期來做,這個週期和投入將會很大,不是設計個分析模型、開發個分析系統這麼簡單的。如果就是那樣簡單的,其實就是個披著大數據的報表系統而已

在不久的將來,多智時代一定會徹底走入我們的生活,有興趣入行未來前沿產業的朋友,可以收藏多智時代,及時獲取人工智能、大數據、雲計算和物聯網的前沿資訊和基礎知識,讓我們一起攜手,引領人工智能的未來!

大數據存儲、計算、應用、可視化,數據的基本概述都在這裡了


分享到:


相關文章: