1) Speed,(开发和执行)速度快。基于内存的计算;DAG(有向无环图)的计算引擎;基于线程模型;python
2)Easy of use,易用 。 多语言(Java,python,scala,R); 多种计算API可调用;可在交互式模式下运行;数据库
3)Generality 通用。能够一站式解决多个不一样场景的应用业务框架
Spark Streaming :用来作流处理运维
MLlib : 用于机器学习机器学习
GraphX:用来作图形计算的分布式
4) Runs Everywhere :oop
(1)能够运行在Hadoop的yarn,Mesos,standalone(Sprk自带的)这些资源管理和调度的程序之上学习
(2) 能够链接包括HDFS,Cassandra,HBase,S3这些数据源 spa
(1)代码繁琐(官网有WordOCunt案例)线程
(2)效率低下:
a) 有结果写入磁盘,下降效率;
b) 经过进程模型,销毁建立效率低
(3)只能支持map和reduce方法
(4) 不适合迭代屡次,交互式,流水的处理
(1)批处理(离线):MapReduce,Hive,Pig
(2)流式处理(实时):Storm,Jstorm
(3)交互式计算 :Impala
综上: 框架的多样化致使生产时所须要的框架繁多,学习运维成本较高,那么有没有一种框架,
既能执行效率高,学习成本低,还能支持批处理和流式处理与交互计算呢?
结论:Spark诞生
Hive:数据仓库
R:数据分析
Mahout:机器学习库
pig:脚本语言,跟Hive相似
Oozie:工做流引擎,管理做业执行顺序
Zookeeper:用户无感知,主节点挂掉选择从节点做为主的
Flume:日志收集框架
Sqoop:数据交换框架,例如:关系型数据库与HDFS之间的数据交换
Hbase : 海量数据中的查询,至关于分布式文件系统中的数据库
注意:在对实时的查询来讲,Spark只是一个快速的分布式计算框架,因此没有存储的框架,可是能够链接多个存储的数据源
MapReduce:若进行屡次计算,MP则须要将上一次执行结果写入到磁盘,叫作数据落地
Spark:直接将存储在内存中的结果拿来使用,没有数据落地
Spark概述和与Hadoop对比