大数据专题-Spark

一、简介

最初由美国加州伯克利大学实验室于2009年开发,2013年加入Apache开源项目,开始崭露头角。Spark是基于内存计算的大数据并行计算框架,可用于构建大型、低延迟数据分析程序,成为Apache最重要的三大分布式计算系统开源项目之一。(Hadoop、Spark、Storm)Hadoop基于MapReduce进行批量数据处理,Storm适合流式数据处理。
运行速度测试:Spark/206个节点/23分钟/100TB的排序。

二、特点

1、运行速度快:使用DAG执行引擎以支持循环数据流与内存计算。
2、容易使用:支持Scala/Java/Python/R语言进行编程,可通过Spark Shell 进行交互式编程。
3、通用性,Spark提供了完整而强大的技术栈,包括支持内存计算的Spark Core,可以完成SQL查询分析的Spark SQL,可以完成流式计算的Spark Streaming,机器学习组件Spark MLlib、图计算软件GraphX。
4、运行模式多样,可运行于独立的集群模式中,也可运行于Hadoop中,并且可以访问Cassandra/HBase/Hive等多种数据源。

三、Scala简介

Scala兼容Java,具有强大的并发性,很容易融入Hadoop生态圈。

四、Hadoop与Spark对比

1、Hadoop缺点:磁盘IO开销大,延迟高。
2、Spark提供了内存计算,可将结果表放到内存中。

五、Spark生态系统

1、RDD:弹性分布式数据集 ,分布式内存。

六、Spark SQL

仅仅依赖于HiveQL解析,Hive元数据,得到一个语法树之后,自己实现。

1、与其他组件对比:

Hive:
构建在Hadoop之上,查询管理分布式存储上的大数据集的数据仓库组件。底层使用MapReduce计算框架,Hive查询被转化为MapReduce代码并执行。生产环境建议使用RDBMS存储元数据。支持JDBC、ODBC、CLI等连接方式。
Spark SQL:
底层使用Spark计算框架,提供有向无环图,比MapReduce更灵活。Spark SQL以Schema RDD为核心,模糊了RDD与关系表之间的界线。Schema RDD是一个由Row对象组成的RDD,附带包含每列数据类型的结构信息。Spark SQL复用Hive的元数据存储。支持JDBC、ODBC、CLI等连接方式,并提供多种语言的API。
Impala:
底层采用MPP技术,支持快速交互式SQL查询。与Hive共享元数据存储。Impalad是核心进程,负责接收查询请求并向多个数据节点分发任务。statestored进程负责监控所有Impalad进程,并向集群中的节点报告各个Impalad进程的状态。catalogd进程负责广播通知元数据的最新信息。

另外,Spark Streaming 支持到秒级,不支持到毫秒级。

你可能感兴趣的:(大数据专题-Spark)