4。4 本章小节 21
5 系统集成和测试 22
5。1 测试环境 22
5。2 程序运行方式 22
5。3 Mysql-Linux文件系统测试 23
5。4 Mysql-HDFS测试 24
5。6 本章小结 25
结 论 26
致 谢 27
参 考 文 献 28
1 引言
1。1 课题背景
随着计算机技术的日益发展以及其存储能力和计算能力的不断提升,人类迎来了数据信息发展的黄金时期,数据信息的总量正在以前所未有的速度增长着。当前,全球的数据信息总量正在以60%的速率递增,据IDC统计,到2020年数据总量将达到40ZB,很快我们将跨入YB时代[1]。面对如此海量的数据,如何能够做到低成本地存储它们,并从中挖掘出有价值的信息,已经成为了当今时代互联网研究方向的重点。论文网
因此出现了大数据的概念,大数据如今已经成为互联网时代最为火热的代言词之一。大数据的特点主要包括两个方面:第一,数据本身的属性是不统一的,它既有存储在关系型数据库中的结构化数据,也有像文本、图像、声音等非结构化数据;第二,大量的数据相互关联,通过分析并且处理这些数据,可以从中得到有价值的信息。然而,传统的Oracle和IBM服务器已经无法驾驭如此庞大的数据。在大数据时代,一台计算机是无法对如此海量的数据进行有效的存储,更加无法在有限的时间内对如此海量的数据进行分析和处理,进而挖掘出有价值的信息,所以Hadoop应运而生。
Hadoop是进行海量数据存储和计算的最为流行的一个软件框架,它主要参考了谷歌的GFS、MapReduce和BigTable,并对其进行了开源实现[2]。Hadoop主要的工作原理是将多台廉价计算机组成一个集群,并对其进行统一管理,以实现分布式存储和并行计算。它充分地利用了廉价计算机的存储能力和计算能力,不仅缩短了程序的执行时间,而且还节省了购买高性能服务器的高额花费,并且它也实现了单台计算机无法完成的海量计算和存储任务。
Hadoop框架主要由HDFS、MapReduce和HBase组成,分别对应着谷歌的GFS、MapReduce和BigTable,其中HDFS和HBase是Hadoop框架用来存储海量数据的主要方式。HDFS是一个大规模的分布式文件系统,它的实现参考了谷歌GFS。HDFS将海量数据分别存储在多台廉价的机器上,提供了高吞吐量的数据访问,并实现了高度的数据容错性[3]。HBase则是Hadoop 平台上的分布式NoSQL数据库,它基于谷歌的BigTable实现。HBase能够利用HDFS的分布式处理模式,并从MapReduce程序模型中获益[4]。
1。2 课题研究的内容和意义
用户在进行海量数据分析时,首先需要将各种结构化和非结构化的数据传输到HDFS或HBase中,然后在Hadoop平台中进行任务的处理。在任务处理完成后,所得到的结果数据有时还需要保存到特定的数据库或者文件系统中,因此实现数据在各个异构数据源之间高效、安全的传递就变得尤为重要。RDBMS是进行数据存储的最为主要的工具之一,被大量的使用,它能够存储结构化数据,操作简单方便,运行效率高。目前,有很多的企业和政府机构使用RDBMS来存储着大量的结构化数据。此外,用户有时还需要将特定的非结构化数据存于本机的文件系统中。而在Hadoop平台内部,则主要使用HDFS分布式文件系统和HBase非关系型数据库来存储海量的数据[5]。然而不同的数据源之间的数据格式、编码等存在着各种各样的差异:它们既有结构化数据也有非结构化数据;既存在着采用utf-8编码的数据,也存在着采用GBK编码的数据,所以数据在各个数据源之间的交换出现了各种各样的问题。为了解决这些问题,给不同数据源之间的数据交换带来便利,因而很有必要开发一个高效的数据交换工具。