***大數據平台架構跟傳統數據倉庫有一個不同,就是同一層次,為了滿足不同的場景,會採用更多的技術組件,體現百花齊放的特點,這是一個難點。

  1. 數據採集層:既包括傳統的ETL離線採集、也有實時採集、互聯網爬蟲解析等等。
  2. 數據處理層:根據數據處理場景要求不同,可以劃分為HADOOP、MPP、流式處理等等。
  3. 數據分析層:主要包含了分析引擎,比如數據挖掘、機器學習、 深度學習等。
  4. 數據訪問層:主要是實現讀寫分離,將偏嚮應用的查詢等能力與計算能力剝離,包括實時查詢、多維查詢、常規查詢等應用場景。
  5. 數據應用層:根據企業的特點不同劃分不同類別的應用,比如針對運營商,對內有精準行銷、客服投訴、基站分析等,對外有基於位置的客流、基於標籤的廣告應用等等。

***數據管理層:這是一縱,主要是實現數據的管理和運維,它橫跨多層,實現統一管理。

 

 

數據採集層(基礎)

 1. 離線批量採集(離線批處理)採用HADOOP(當前主流引擎),基於這個平台,需要部署數據採集應用或工具。 

 2. 實時採集,主流是FLUME+KAFKA(使用Flume监控日志,并将日志数据实时发送至Kafka。)結合流式處理+內存資料庫

http://itindex.net/detail/52671-%E5%A4%A7%E6%95%B0%E6%8D%AE-%E6%9E%B6%E6%9E%84-flume

https://www.jianshu.com/p/7e2bc044b960

 

數據處理層

https://aws.amazon.com/cn/streaming-data/

批處理

Hadoop + spark/map reduce

流式處理選擇

  1. 如果你想要的是一个允许增量计算的高速事件处理系统,Storm会是最佳选择。它可以应对你在客户端等待结果的同时,进一步进行分布式计算的需求,使用开箱即用的分布式RPC(DRPC)就可以了。最后但同样重要的原因:Storm使用Apache Thrift,你可以用任何编程语言来编写拓扑结构。如果你需要状态持续,同时/或者达到恰好一次的传递效果,应当看看更高层面的Trdent API,它同时也提供了微批处理的方式。
  2. 说到微批处理,如果你必须有状态的计算,恰好一次的递送,并且不介意高延迟的话,那么可以考虑Spark Streaming,特别如果你还计划图形操作、机器学习或者访问SQL的话,Apache Spark的stack允许你将一些library与数据流相结合(Spark SQL,Mllib,GraphX),它们会提供便捷的一体化编程模型。尤其是
  3. 如果你有大量的状态需要处理,比如每个分区都有许多十亿位元组,那么可以选择Samza。由于Samza将存储与处理放在同一台机器上,在保持处理高效的同时,还不会额外载入内存。这种框架提供了灵活的可插拔API:它的默认execution、消息发送还有存储引擎操作都可以根据你的选择随时进行替换。此外,如果你有大量的数据流处理阶段,且分别来自不同代码库的不同团队,那么Samza的细颗粒工作特性会尤其适用,因为它们可以在影响最小化的前提下完成增加或移除的工作。

https://www.csdn.net/article/2015-03-09/2824135

***Lambda 架構: lambda架构指的是同时使用批处理和流式处理的方式来处理海量数据,以便在延迟、吞吐量和容错方面做出权衡。批处理层提供了整体精确的批次数据视图,同时实现了一个速度层,用于实时的流式处理,提供几近完整的实时在线数据视图。

https://blog.csdn.net/brucesea/article/details/45937875

 

數據分析層

SPARK(分布式挖掘環境)

 

數據訪問層

Hbase&MongoDB的比較:

 http://wangshuxing123-126-com.iteye.com/blog/2227964

https://www.zhihu.com/question/30219620

MongoDB:

主要特点:应用程序完善后,模式随之变化(无模式);支持全索引,实现高性能; 复制和故障切换,实现高可用性

自动分片,易于扩展; 基于丰富文档的查询,易于读取; 主从模式; CAP中的CP

适合于:

  1. 取代Web应用的RDBMS
  2. 半结构化内容管理
  3. 实时分析和高速日志、缓存和高扩展性
  4. Web 2.0、媒体、SaaS和游戏

不适合:

  1. 高度事务型系统
  2. 存在传统数据库需求的应用程序,比如外键约束。

HBase

主要特点:分布式和可扩展的庞大数据存储系统; 强一致性; 建立在Hadoop HDFS的基础上; CAP中的CP

适合于:

针对读取进行了优化

很适合基于范围的扫描

严格一致性

快速读取和写入,具有可扩展性

不适合于:

典型的事务型应用程序或甚至关系分析

应用程序需要全表扫描

数据需要跨聚合、累积以及跨行分析。

 

數據管理層

Ex. 建立DACP的可視化管理平台

Ex. 系統管理的角度,可將大數據平台納入統一的雲管理平台管理(私有雲)

 

參考資料:

http://www.finereport.com/tw/knowledge/acquire/whychooseit.html

http://t.cj.sina.com.cn/articles/view/6480780979/18248deb3001008f0n

   

arrow
arrow
    全站熱搜

    捷米看世界 發表在 痞客邦 留言(0) 人氣()