大數據 經常使用框架特色

 

 

 

1、大數據框架java

 

Impala:hadoop的sql平臺、支持hbase/hdfs、支持超大數據、支持多併發、sql支持好、對內存依賴比較嚴重。須要本身優化,而且有的語句超過內存會報錯。python

 

 

Spark:各類格式、各類計算(機器學習、圖形計算)、可sql、可代碼處理、支持scala/java/python語言開發。提供scala/python代碼命令行運行、超大數據支持差。sql

 

 

Kylin:預計算、好優化、高性能、支持mr、spark、基於時間的增量更新、流式更新、數據源有hive/kafka、提供開發用的管理臺是一套開發系統。因爲有預計算、因此其餘各個模塊獨立,能支持高併發。能夠直接做爲軟件系統的數據源。網絡

 

 

Phoenix:sql on hbase、快架構

 

 

Hbase:key/value、強一致性、不丟數據併發

 

Cassandra:弱一致性,數據可能丟失。可用性高、讀寫性能比hbase高、被facebook放棄了。

 

 

 

案例1:特別適合大數據sql查詢框架

數據存入hbase,把hbase表結構隱射到hive,用Impala進行sql查詢。機器學習

優勢有三個:異步

     A、Impala支持hdfs/hbase兩個適用度比Phoenix更廣,而且更穩定。分佈式

     B、數據在hbase中,對數據的操做得以進行,hdfs中的數據是無法行級更新,刪除的。而且速度也比hdfs快。無需字段分割解析,直接讀取。

     C、能在hive中爲表結構,給開發和後面換用其餘框架留下很大方便。

 

 

案例2:Zeppelin特別適合spark機器學習

Spark交互式開發平臺

Zeppelin整合了Spark,Markdown,Shell,Angular等引擎,集成了數據分析和可視化等功能

提供了sql查詢,和scala/python分析代碼調試功能。

http://blog.csdn.net/guohecang/article/details/51324390。

 

 

案例3:Kylin:全功能大數據sql查詢平臺

預計算、好優化、高性能、支持mr、sparksql、基於時間的增量更新、流式更新、有開發管理臺、數據源有hive/kafka。

因爲有預計算、因此其餘各個模塊獨立,能支持高併發。能夠直接做爲軟件系統的數據源。

 

 

案例4

Presto 玩的更絕,全程在內存中倒騰,須要對各個步驟下對象數據規模作到徹底精細的把控。優點是速度快,支持的數據源多。

 

 

 

總結::

  • MPP架構的系統(Presto/Impala/SparkSQL/Drill等)有很好的數據量和靈活性支持,可是對響應時間是沒有保證的。當數據量和計算複雜度增長後,響應時間會變慢,從秒級到分鐘級,甚至小時級都有可能。
  • 搜索引擎架構的系統(Elasticsearch等)相對比MPP系統,在入庫時將數據轉換爲倒排索引,採用Scatter-Gather計算模型,犧牲了靈活性換取很好的性能,在搜索類查詢上能作到亞秒級響應。可是對於掃描聚合爲主的查詢,隨着處理數據量的增長,響應時間也會退化到分鐘級。
  • 預計算系統(Druid/Kylin等)則在入庫時對數據進行預聚合,進一步犧牲靈活性換取性能,以實現對超大數據集的秒級響應。

 

1. kylin 預計算。用戶指定dimensions和要計算的metric,kylin經過MR將結果保存在HBase中,後續讀取直接讀HBase。適合那種業務清楚的知道本身要分析什麼的場景。查詢模式比較固定,只不過所查看的時間不一樣的場景。注意的點是要避免維度災難。

 

2. presto java8寫的,代碼質量很是高。設計:純內存,沒有容錯,一個task失敗就整個query fail。須要注意調整內存相關,線程數等參數,容易OOM。benchmark還行。支持標準SQL

 

3.Spark sql 相對更‘原生‘一些,單純的通用框架,和上面兩位並非同一層面上的東西。

 


 

 

 

 

2、深度學習框架:

 

TensorFlow:google開源的,當前版本已經有高級API、可視化工具、GPU支持、異步執行

 

 

 

DeepLearning4J:(DL4J)是一套基於Java語言的神經網絡工具包,能夠構建、定型和部署神經網絡。DL4J與Hadoop和Spark集成,支持分佈式CPU和GPU。

 

 

 

Keras:

 Keras是一個高層神經網絡API,Keras由純Python編寫而成並基Tensorflow或Theano。Keras 爲支持快速實驗而生,可以把你的idea迅速轉換爲結果,若是你有以下需求,請選擇Keras:

簡易和快速的原型設計(keras具備高度模塊化,極簡,和可擴充特性)

支持CNN和RNN,或兩者的結合

無縫CPU和GPU切換

 

 

 

Keras和DDPG

相關文章
相關標籤/搜索