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、強一致性、不丟數據併發
案例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 玩的更絕,全程在內存中倒騰,須要對各個步驟下對象數據規模作到徹底精細的把控。優點是速度快,支持的數據源多。
總結::
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