首页 理论教育Spark框架:高校图书馆大数据应用的实证研究

Spark框架:高校图书馆大数据应用的实证研究

【摘要】:Spark框架的软件栈如图2.1所示。Spark SQL是Spark用来操作结构化数据的程序包,支持多种数据源,主要用于查询数据。Spark Streaming的功能是对实时数据进行流式计算,如生产过程中的网页服务器日志或是网络服务中用户提交状态更新的消息队列等,Spark提供了该类操作的API接口,并与Spark Core中的RDD API接口相对应,这使得编程人员能方便操作内存、硬盘数据和实时数据流。

Spark框架软件栈如图2.1所示。

图2.1 Spark软件栈

Spark Core是Spark的基本功能模块和核心模块。主要包括任务调度、内存管理、错误恢复和存储系统交互等模块,以及有关弹性分布式数据集合(Resilient Distributed Datasets,RDD)的API定义。

从形式上来看,RDD是一个分区的数据集合并且只能读取记录不能修改记录。因此创建RDD的时候,只支持从其他RDD的数据对象上创建新的RDD,或者通过读取磁盘文件数据来创建原始RDD对象。另外,RDD提供了丰富的操作函数,诸如map、flatMap、filter等转换函数,能较好地应用于Scala语言的集合类型;除此之外,RDD还提供reduceByKey、groupBy和join等功能强大的函数,以支持常见的数据运算。

Spark SQL是Spark用来操作结构化数据的程序包,支持多种数据源(包括Hive表、Parquet和JSON等),主要用于查询数据。另外Spark SQL支持多种编程语言的查询接口(如Python、Java和Scala等),因而使得编程更加灵活。

Spark Streaming的功能是对实时数据进行流式计算,如生产过程(这里生产过程是指软件系统的正常运行)中的网页服务器日志或是网络服务中用户提交状态更新的消息队列等,Spark提供了该类操作的API接口,并与Spark Core中的RDD API接口相对应,这使得编程人员能方便操作内存、硬盘数据和实时数据流。

MLLib是常用的机器学习(Machine Learning)库,提供了大量的机器学习算法(如分类、回归、聚类、协同过滤等),方便编程人员调用。

GraphX是用于操作图(如社会网络图)的API接口,支持并行的图计算;GraphX也支持对Spark Core中的RDD操作,基于RDD数据创建大规模网络图;GraphX还提供了常用的图算法(如PageRank和三角计数)等。

Spark集群管理器主要包括独立调度器、Hadoop Yarn和Apache Mesos,用于管理Spark,使其可以在分布式集群(可包括三到数千个计算节点)上高效运行。