与非交互式数据处理相比,交互式数据处理灵活、直观、便于控制。系统与操作人员以人机对话的方式一问一答——操作人员提出请求,数据以对话的方式输入,系统便提供相应的数据或提示信息,引导操作人员逐步完成所需的操作,直至获得最后的处理结果。采用这种方式,存储在系统中的数据文件能够被及时处理,同时处理结果可以立刻被使用。交互式数据处理具备的这些特征能够保证输入的信息得到及时处理,使交互方式继续进行下去。
交互式数据处理系统的典型代表是Berkeley的Spark系统。Spark是一个基于内存计算的可扩展的开源集群计算系统。针对MapReduce的不足,即大量的网络传输和磁盘I/O使得效率低下,Spark使用内存进行数据计算,以便快速处理查询,实时返回分析结果。Spark提供比Hadoop更高层的API,同样的算法在Spark中的运行速度比Hadoop快10~100倍。Spark在技术层面兼容Hadoop存储层API,可访问HDFS、HBase、SequenceFile等。Spark-Shell可以开启交互式Spark命令环境,能够提供交互式查询。
Spark是为集群计算中的特定类型的工作负荷而设计的,即在并行操作之间重用工作数据集,如机器学习算法。Spark的计算架构具有三个特点。
1)Spark拥有轻量级的集群计算框架。Spark将Scala应用于它的程序架构,而Scala这种多范式的编程语言具有并发性、可扩展性以及支持编程范式的特征,与Spark紧密结合,能够轻松地操作分布式数据集,并且可以轻易地添加新的语言结构。(www.daowen.com)
2)Spark包含了大数据领域的数据流计算和交互式计算。Spark可以与HDFS交互取得里面的数据文件。同时,Spark的迭代、内存计算以及交互式计算为数据挖掘和机器学习提供了很好的框架。
3)Spark有很好的容错机制。Spark使用了弹性分布数据集RDD。RDD被表示为Scala对象分布在一组结点中的只读对象集中。这些集合是弹性的,保证了如果有一部数据集丢失时,可以对丢失的数据集进行重建。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。