未來的時代,一定是數(shù)據(jù)的時代,在未來,一切被記錄,一切被分析,數(shù)據(jù)將以資產(chǎn)的方式存在,相關知識如下:
一、先說各種數(shù)據(jù)存儲
數(shù)據(jù)是個很泛的概念,但是我們腦海里第一反應的就是關系型數(shù)據(jù)庫和EXCEL這種二維表是數(shù)據(jù)。
而現(xiàn)在數(shù)據(jù)各種各樣特色,有文檔、有圖片、有流式的音頻視頻、有日志數(shù)據(jù)、有IM消息數(shù)據(jù)、有索引數(shù)據(jù)、有社交應用的網(wǎng)狀關系數(shù)據(jù)、有地圖數(shù)據(jù)。他們對存儲訪問都有不同的要求,因而NoSQL興起了。
如KV型,先后出現(xiàn)了Memcached、Redis。如文檔型,出現(xiàn)了CouchDB、MongoDB。如日志數(shù)據(jù),也出現(xiàn)了FacebookScribe、Flume、Logstash。
即使在傳統(tǒng)關系型數(shù)據(jù)領域,由于大數(shù)據(jù)規(guī)模也出現(xiàn)了真正的分布式關系型數(shù)據(jù)庫,如GreenPlum、TiDB、OceanBase
為了多維分析,也出現(xiàn)了專門的列式數(shù)據(jù)庫,如HBase。
二、數(shù)據(jù)倉庫
各式各樣的數(shù)據(jù),經(jīng)由各種上層應用進行了采集和存儲。但我們一提到大數(shù)據(jù),自然想到的就是大數(shù)據(jù)分析。大數(shù)據(jù)分析的第一步就是大數(shù)據(jù)倉庫建設。
大數(shù)據(jù)倉庫建設,必要的工作就是ETL(抽取、轉換、導入)。抽取,這步就又細分為:數(shù)據(jù)抽取、數(shù)據(jù)清洗、數(shù)據(jù)校驗。在轉換這步,我們也需要關注數(shù)據(jù)安全脫敏,也就是說,進入大數(shù)據(jù)倉庫的數(shù)據(jù)需要分級。
不過大家一般建設大數(shù)據(jù)倉庫,首先做的第一個應用工作就是:主數(shù)據(jù)治理。所以這個第一期,需要做:主數(shù)據(jù)標準制定、主數(shù)據(jù)清洗與校驗、主數(shù)據(jù)轉換(拆分合并)、主數(shù)據(jù)復制分發(fā)、主數(shù)據(jù)訪問OpenAPI。
數(shù)據(jù)復制分發(fā),我們可以使用消息隊列和調度服務來工作。消息隊列如Kafka、ZeroMQ、ActiveMQ、RabbitMQ。調度服務如ZooKeeper。
數(shù)據(jù)抽取傳輸開源項目,我能看到的SqooponHadoop??赡芎芏鄶?shù)據(jù)都是直接被Spark、Storm、Presto、Hbase處理了。
三、大數(shù)據(jù)倉庫基礎架構
現(xiàn)在建大數(shù)據(jù)倉庫,需要的是分布式存儲和分布式計算,再也不是過去幾十臺服務器和幾百T存儲這么簡單的。這都是要以萬計的,這才是真正的大數(shù)據(jù)。而要建造這么大規(guī)模的大數(shù)據(jù)倉庫,需要分布式存儲和分布式計算基礎框架支撐。
我們第一個就要提出的就是Hadoop。目前它已經(jīng)成為了一個生態(tài)。Hadoop最核心是兩塊:分布式文件系統(tǒng)HDFS、MapReduce。MapReduce又分為MAP(分解任務)、Reduce(合并結果)兩部分。
現(xiàn)在有個新玩意叫YARN,不過YARN并不是MapReduce2.0。在MapReduce中資源管理和作業(yè)管理均是由JobTracker實現(xiàn)的,集兩個功能于一身,而在新的Hadoop2.0架構中,MapReduce作業(yè)管理由ApplicationMaster實現(xiàn),而資源管理由新增系統(tǒng)YARN完成。HadoopCorona是facebook開源的下一代MapReduce框架。其基本設計動機和Apache的YARN一致。就是因為大家都在解決同一個問題,只不過不同時間段開源出來不同的解決方案項目,所以使大家大呼到底要用哪個啊。
現(xiàn)在又出來一個新玩意叫:Mesos。Mesos是更寬泛的資源管理框架,不僅可以管理偏重于半結構化的大數(shù)據(jù)框架,也可以管理非結構化的框架。人們也在對比Mesos和Kubernetes,其實Kubernetes只是目前聚焦于容器的管理,而Mesos野心更大,當然也抽象的更通用化,留下各種抽象接口,以管理各種資源。
有人還把ZooKeeper和YARN、Mesos比較。其實Zookeeper已經(jīng)成為最基層最具體最不可或缺的真正的協(xié)調執(zhí)行者了。而YARN成為了大數(shù)據(jù)處理資源管理框架,而Mesos更成為了有史以來更大集成者更通用的資源管理框架了。
四、大數(shù)據(jù)計算框架
在大數(shù)據(jù)處理領域,目前當紅炸子雞是:Spark、Storm、Flink。
Spark切的領域在MapReduce工作的領域,不過Spark大量把MAP中間結果放到內存中,所以顯得性能特別快?,F(xiàn)在Spark也在往生態(tài)走,希望能夠上下游通吃,一套技術棧解決大家多種需求,所以大家又漸漸看不清楚Spark聚焦的領域了。SparkShark,是為了VShadoopHive,SparkStreaming是為了VSStorm。
Storm擅長處理實時流式。比如日志,比如網(wǎng)站購物的點擊流,是源源不斷、按順序的、沒有終結的,所以通過Kafka等消息隊列來了數(shù)據(jù)后,Storm就一邊開始工作。Storm自己不收集數(shù)據(jù)也不存儲數(shù)據(jù),隨來隨處理隨輸出結果。
它們都有各自的特色,但他們都無法給你處理具體的業(yè)務應用,它們只是大規(guī)模分布式計算的通用框架,所以具體用他們的特性干什么,還得你自己寫。這就是大數(shù)據(jù)業(yè)務領域分析系統(tǒng)的事了。
不過,下面我會介紹一些技術,在特定的業(yè)務領域,能夠幫你更簡單的達成業(yè)務應用需要。
五、大數(shù)據(jù)應用技術
1、大數(shù)據(jù)搜索:Lucene、Solr、ElasticSearch。ElasticSearch是新推出的比Solr在大規(guī)模數(shù)據(jù)情況下更好的開源解決方案。
2、大數(shù)據(jù)查詢:這里有Hive/Impala,Hive的作用是你可以把結構化數(shù)據(jù)導入到Hadoop中然后用簡單SQL來做查詢。你可以把Impala看做是性能更快的Hive,因為Impala不強依賴MapReduce。而Facebook開源的Presto更是能查詢多種數(shù)據(jù)源,而且一條Presto查詢可以將多個數(shù)據(jù)源的數(shù)據(jù)進行合并。
3、大數(shù)據(jù)分析:咱們要提到去年新晉頂級Apache項目的Kylin。它創(chuàng)始于ebay,2014年進入apache孵化項目。Kylin不僅僅能做SQL查詢,而且能做Cube多維分析。
4、大數(shù)據(jù)挖掘:這個領域包含精準推薦、機器學習/深度學習/神經(jīng)網(wǎng)絡、人工智能。自從AlphaGo火了以后,機器學習再度火熱。Google開源了最新機器學習系統(tǒng)TensorFlow,微軟亞洲研究院開源了分布式機器學習工具包-DMTK,雅虎也開源了CaffeOnSpark深度學習。Mahout是Apache的一個開源項目,提供一些機器學習領域經(jīng)典算法的實現(xiàn),包括聚類、分類、推薦過濾、頻繁子項挖掘。
六、數(shù)據(jù)可視化工具
這塊有大量的可視化開源組件,但成系統(tǒng)的開源的確實出色的不多。這里面大有可玩。
Airbnb近日開源了數(shù)據(jù)探查與可視化平臺Caravel。另外,百度推出的Echarts組件也不做,可以基于此做些系統(tǒng)性的工作。
七、數(shù)據(jù)平臺監(jiān)控運維
這里只看到一套完整的適用于海量日志處理的工具:FacebookScribe、Flume、Logstash、Kibana。但我覺得,如此復雜的大數(shù)據(jù)平臺技術棧,一套成熟的監(jiān)控運維系統(tǒng),是必須要出現(xiàn)的。
八、最后總結:大數(shù)據(jù)平臺建設總藍圖
作為咱們日常業(yè)務,最直接的需要就是一套能分析具體業(yè)務的應用系統(tǒng),但這套應用系統(tǒng)需要很多基礎技術架構和服務才能達成。為了讓大家有所預期,所以我把這些必備前提儲備列出來。
技術平臺建設:
1、大數(shù)據(jù)基礎架構:推薦Hadoop、HDFS、YARN;大數(shù)據(jù)計算框架:推薦Spark;大數(shù)據(jù)日志收集推薦Flume+Logstash+Kibana。我們需要部署依賴中間件Zookeeper。
2、大數(shù)據(jù)倉庫平臺建設:分布式關系型TiDB、KV式Redis、文檔型MongoDB、列式Hbase
3、大數(shù)據(jù)搜索,推薦選擇Lucene、ElasticSearch;大數(shù)據(jù)查詢,推薦選擇Presto;大數(shù)據(jù)多維分析,推薦Kylin;大數(shù)據(jù)挖掘,推薦挖掘開源算法包MashOut。
大數(shù)據(jù)整理服務:
1、主數(shù)據(jù)管理:主數(shù)據(jù)標準制定、主數(shù)據(jù)清洗與校驗、主數(shù)據(jù)轉換(拆分合并)、主數(shù)據(jù)復制分發(fā)、主數(shù)據(jù)訪問OpenAPI。
2、ETL:數(shù)據(jù)抽取、數(shù)據(jù)清洗、數(shù)據(jù)校驗、數(shù)據(jù)安全脫敏
大數(shù)據(jù)分析系統(tǒng)建設:
1、大數(shù)據(jù)展示平臺建設
2、大數(shù)據(jù)商業(yè)應用模型建模
3、大數(shù)據(jù)應用分析系統(tǒng)設計與開發(fā)
看看,大數(shù)據(jù)建設很復雜,大家一定要沉住氣,一期期來做,這個周期和投入將會很大,不是設計個分析模型、開發(fā)個分析系統(tǒng)這么簡單的。如果就是那樣簡單的,其實就是個披著大數(shù)據(jù)的報表系統(tǒng)而已
在不久的將來,多智時代一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏多智時代,及時獲取人工智能、大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)的前沿資訊和基礎知識,讓我們一起攜手,引領人工智能的未來!