***大數據平台架構跟傳統數據倉庫有一個不同,就是同一層次,為了滿足不同的場景,會採用更多的技術組件,體現百花齊放的特點,這是一個難點。
- 數據採集層:既包括傳統的ETL離線採集、也有實時採集、互聯網爬蟲解析等等。
- 數據處理層:根據數據處理場景要求不同,可以劃分為HADOOP、MPP、流式處理等等。
- 數據分析層:主要包含了分析引擎,比如數據挖掘、機器學習、 深度學習等。
- 數據訪問層:主要是實現讀寫分離,將偏嚮應用的查詢等能力與計算能力剝離,包括實時查詢、多維查詢、常規查詢等應用場景。
- 數據應用層:根據企業的特點不同劃分不同類別的應用,比如針對運營商,對內有精準行銷、客服投訴、基站分析等,對外有基於位置的客流、基於標籤的廣告應用等等。
***數據管理層:這是一縱,主要是實現數據的管理和運維,它橫跨多層,實現統一管理。
數據採集層(基礎)
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
流式處理選擇
- 如果你想要的是一个允许增量计算的高速事件处理系统,Storm会是最佳选择。它可以应对你在客户端等待结果的同时,进一步进行分布式计算的需求,使用开箱即用的分布式RPC(DRPC)就可以了。最后但同样重要的原因:Storm使用Apache Thrift,你可以用任何编程语言来编写拓扑结构。如果你需要状态持续,同时/或者达到恰好一次的传递效果,应当看看更高层面的Trdent API,它同时也提供了微批处理的方式。
- 说到微批处理,如果你必须有状态的计算,恰好一次的递送,并且不介意高延迟的话,那么可以考虑Spark Streaming,特别如果你还计划图形操作、机器学习或者访问SQL的话,Apache Spark的stack允许你将一些library与数据流相结合(Spark SQL,Mllib,GraphX),它们会提供便捷的一体化编程模型。尤其是
- 如果你有大量的状态需要处理,比如每个分区都有许多十亿位元组,那么可以选择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
适合于:
- 取代Web应用的RDBMS
- 半结构化内容管理
- 实时分析和高速日志、缓存和高扩展性
- Web 2.0、媒体、SaaS和游戏
不适合:
- 高度事务型系统
- 存在传统数据库需求的应用程序,比如外键约束。
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
留言列表