数据处理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据处理系统
近年来,大数据得到了学术界、产业界和政府的广泛关注。信息技术的迅猛发展,使得大数据的获取、传输、存储和分析成为可能,从中挖掘数据的价值,在促进科学发现、工程优化、商业风险控制、决策支持等领域取得了广泛的应用。
如何对大数据进行高效的存储和处理,是对计算机系统提出的重大挑战。正如维基百科对大数据的定义所描述的:“大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。”这里所说常规软件系统,指电子表格、传统关系型数据库等,无法有效管理和处理大数据系统。因而,大数据处理系统的研制非常重要,也是近年来学术界和工业界的研究热点。
谷歌在2003~2004年发表的GFS分布式文件系统(Google File System)和MapReduce编程框架,是大数据处理系统的先驱性工作。GFS通过多个数据备份的方法既提供了磁盘或服务器故障情况下的数据可用性,也提高了数据读取时的I/O带宽,为大数据分析提供了基础性的数据管理功能。MapReduce程序可以在分布式系统上运行,并能够实现自动容错和负载平衡,使得在故障率较高的大规模商用服务器集群上进行大规模数据处理的编程和运行维护大大简化。
尽管GFS和MapReduce系统在大数据处理方面取得了重要进展,
但它们都是谷歌的专有系统,外界无法直接使用。开源社区研制了Hadoop系统,其核心包括了类似GFS的分布式文件系统HDFS、用Java实现的MapReduce框架、以及资源管理和任务调度器YARN 等。以Hadoop核心系统为基础,Hadoop还有一些功能扩展组件,如支持大表数据的HBase、支持工作流的Tez、以及机器学习和数据挖掘算法库Mahout等。事实上,目前Hadoop已经成为大数据处理的标准。
尽管MapReduce取得了很大的成功,但人们也发现其处理模式需要对中间结果进行大量的I/O读写,这大大影响了处理性能,限制了其进一步的推广应用。为了解决这个问题,美国加州大学伯克利分校的艾恩·斯托伊卡(Ion Stoica)等提出了Spark系统,通过在内存中保存中间结果的方式来优化性能,在典型应用上可以比MapReduce 系统快一个数量级。目前Spark也已经集成到Hadoop系统中,成为一个重要的扩展部件,并得到广泛应用。
然而,Spark系统自身也存在严重的局限性。为了能够容错,Spark 采用了名为弹性分布式数据集(Resilient Distributed Datasets, RDD)的数据模型。Spark的计算是由数据集的变换来完成的,数据集一经创建,就不能修改,只能通过变换产生新的数据集。这种数据模型虽然对容错带来了很大的便利,但在很多大数据分析任务中会带来内存占用的巨大浪费和性能的显著下降。在实现层面,Spark基于
Java虚拟机(JVM),数据表示非常不紧凑,垃圾回收对性能也会产生不可预测的巨大影响。