论文部分内容阅读
论文以目前计算机科学与技术领域广泛讨论和应用的分布式存储、分布式计算和内容仓库标准接口为背景,结合内容管理系统项目,研究如何用Java内容仓库封装分布式文件系统,实现海量数据的存储与计算,并实际应用到内容管理系统中去。以Jackrabbit作为Java内容仓库的实现,对外暴露统一标准接口,屏蔽底层存储;存储层用Hadoop Distributed File System(HDFS)来存取数据,HDFS作为Hadoop的一部分,是一种分布式文件系统,google DFS的Java实现。为了解决HDFS处理小文件能力不佳的问题,引入HBase来存取小文件,HBase也是Hadoop的一部分,是一种分布式表结构,google Big Table的Java实现。通过一系列测试来确定大小文件的分界点,以使系统的存储性能趋近于最佳。封装后的系统经过性能测试,改进了原存储系统存储小文件性能较低的情况。分布式计算框架采用MapReduce, MapReduce是Hadoop的一部分,google MapReduce的Java实现,是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。Jackrabbit封装MapReduce,实时获取内容仓库中的内容,对数据进行预处理,成为内容管理系统与精准分析平台的衔接纽带。本文围绕封装的实现及其在内容管理系统中的应用进行论述。第一章介绍了内容管理系统、精准分析平台,内容仓库标准接口等,说明了本文的来源和背景。第二章对Jackrabbit封装Hadoop的实现进行了全方位的解析,分别是Jackrabbit对HDFS和HBase的封装以及Jackrabbit对MapReduce的封装。第三章阐述了封装后的应用,分别是在内容管理系统中的应用和精准分析平台中的应用。最后一章对封装的下一步工作进行了介绍,并对封装之后的更丰富的应用进行了展望。