概念

类 Hadoop MapReduce 通用并行框架,大数据处理计算引擎
Job 中间输出结果可以保存在内存中

Spark 将 Scala 作为应用程序框架
Spark 通过 Mesos 第三方集群框架,可以在 Hadoop 文件系统中并行运行

特点

  1. Java、Scala、Python 和 R APIs。
  2. 可扩展至超过 8000 个结点。
  3. 能够在存储器内缓存数据集以进行交互式数据分析。
  4. Scala 或 Python 中的交互式命令行接口可降低横向扩展数据探索的反应时间。
  5. Spark Streaming 对即时数据流的处理具有可扩展性、高吞吐量、可容错性等特点。
  6. Spark SQL 支持结构化和关系式查询处理(SQL)。
  7. MLlib 机器学习算法和 Graphx 图形处理算法的高端库。

性能

  1. 更快的速度

    内存计算,Spark比Hadoop快100倍

  2. 易用性

    80多个高级运算符

  3. 通用性

    Spark Core(离线计算),Spark Sql(交互式查询),Spark Streaming(实时流式计算),MLlib(机器学习),Graphx(图计算)

  4. 支持多种资源管理器

    Hadoop YARN,Mesos

存储文件格式

列存储:parquet,ORC
行存储:Avro,JSON,CSV,Text,Binary

Spark 可以和 Alluxio, HDFS、 Cassandra 、OpenStack Swift 和 Amazon S3 等接口搭载

支持 Hive 特性

Hive的查询,包括:SELECT, GROUP BY, ORDER BY, CLUSTER BY, STORT BY
所有的Hive操作,包括:关系操作符,如 =, <=>, ==, <>, <, >, >=, <= 等 ( 这里的<=>操作比较罕见,相当于ifnull(a!=b, false),比如 1<=>2 值为false, 1<=>1 值为true );数学运算符,如 +, -, *, /, %等;逻辑操作符,如 AND, &&, OR, || 等;复杂构造器;数学函数,如 sign, ln, cos 等;字符串函数,如 instr, length, printf。
用户自定义函数, UDF
用户自定义聚合函数,UDAF
用户自定义序列化格式,SerDes
窗口函数
关联操作,如 JOIN, {LEFT | RIGHT | FULL} OUTER JOIN, LEFT SEMI JOIN, CROSS JOIN
合并操作
子查询,如 SELECT col FROM (SELECT a+b AS col from t1) t2
抽样 sample
解释执行计划 explain
分区表 以及 动态分区插入
视图 VIEW
DDL函数,如 CREATE TABLE, CREATE TABLE AS SELECT, ALTER TABLE
支持大部分Hive的数据类型,包含:TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DATE, ARRAY<>, MAP<>, STRUCT<>