大数据 经常使用框架特色

 

 

 

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

相关文章
相关标签/搜索