1 选题的目的和意义
1.1 设计的背景
Hadoop作为Apache基金会资助的开源项目,由Doug Cutting带领的团队进行开发,基于Lucene和Nutch等开源项目,实现了Google的GFS和Hadoop能够稳定运行在20个节点的集群;2006年1月,Doug Cutting加入雅虎公司,同年2月Apache Hadoop项目正式支持HDFS和MapReduce的独立开发。同时,新兴公司Cloudera为Hadoop提供了商业支持,帮助企业实现标准化安装,并志愿贡献社区。
1.1 选题的现状
1.1.1 海量数据时代的现状
我们生活在数据的时代,很难估计全球的数据有多少,“数字宇宙”项目统计得出,2006年的数据总量为0.18zb,也就是10亿TB。
问题1:数据处理速度不够,以100mb每秒计算,读取1tb的数据需要2个半小时。一个比较好的方案就是把数据放在100个磁盘中每个磁盘中存放1%的数据并行读取,不到2min就能读取所有数据。经过统计用户的分析工作会在不同的时间点进行,所以用户相互间的干扰不会太大。但是一旦硬件发生故障,用户的数据就会丢失,所以要准备多份。(HDFS)
问题2:需要从100个磁盘中取出数据结合使用。Mapreduce将这个问题抽象,转化为对一个数据集合的计算。这个计算模型分为map和reduce两个阶段,只有这两个部分对外提供接口。
举例 Rackspace的一个部门Mailtrust:mapreduce是一种比较蛮力的办法,每个查询几乎需要处理整个数据集,至少是数据集的很大一部分。在合理的时间内对整个数据集合的数据即时查询,是对数据的一种创新。rackspace的mailtrust部门,使用hadoop处理邮件日志,他们做用户地理分布查询。“这些数据非常有用,每个月运行一次决定哪些rackspace数据中心需要添加新的邮件服务器“。通过整合数百GB的数据,并分析,可以通过这些数据改善现有服务。
1.1.2 Hadoop的发展史
Hadoop起源于Nutch网络搜索引擎,Nutch是Lucene(一个文本搜索系统库)的一部分,创始人为Doug Cutting。
Nutch项目开始于2002年
2004年开始开发GFS的开源版本NDFS,谷歌发表论文向全世界介绍它的mapreduce系统。
2005年实现了mapreduce的开源版本。
2006年将hadoop移出Nutch独立成为一个项目,hadoop创始人进入雅虎
2008年Hadoop成为apache顶级项目,证明了其成功。209S 完成1tb数据排序 2009年4月 59秒排序500GB 1400节点 173分钟排序100T的数据3400节点 典型案例 纽约时报 facebook last.fm
1.1.3 Hadoop生态系统
Common:IO组件于接口(序列化,javaRPC,持久化数据结构)
Pig: 数据流语言和运行环境,检索非常大的数据集
Hive: 管理HDFS中的数据,提供sql查询
Hbase: 安列存储数据库,支持批量式计算和点查询
ZooKeeper: 一个分布式、可用性高的协调系统。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。
Sqoop: 在数据库和HDFS之间高效传输的数据工具。
Kerberos:实现的是机器级别的安全认证,也就是前面提到的服务到服务的认证问题。防止了用户伪装成Datanode,Tasktracker,去接受JobTracker,Namenode的任务指派。Kerberos对可信任的客户端提供认证,确保他们可以执行作业的相关操作。防止用户恶意冒充client提交作业的情况。用户无法伪装成其他用户入侵到一个HDFS或者MapReduce集群上。用户即使知道datanode的相关信息,也无法读取HDFS上的数据,用户无法发送对于作业的操作到JobTracker上。
2 主要研究的内容
2.1 系统概述
2.1.1 功能与作用
众所周知,现代社会的信息量增长速度极快,这些信息里又积累着大量的数据,其中包括个人数据和工业数据。预计到2020年,每年产生的数字信息将会有超过1/3的内容驻留在云平台中或借助云平台处理。我们需要对这些数据进行分析和处理,以获取更多有价值的信息。那么我们如何高效地存储和管理这些数据,如何分析这些数据呢?这时可以选用Hadoop系统,它在处理这类问题时,采用了分布式存储方式,提高了读写速度,并扩大了存储容量。采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时,Hadoop还采用存储冗余数据的方式保证了数据的安全性。
Hadoop中HDFS的高容错特性,以及它是基于Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。Hadoop中HDFS的数据管理能力,MapReduce处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩,并在众多行业和科研领域中被广泛采用。
2.1.2 具体任务
对本系统分析后,系统的具体任务主要如下:
1) 调研该项目的状况和成果。
2) 对所选题目进行可行性分析,从技术和可操作性上进行分析
3) 根据目前掌握和了解的技术选择最适合的开发工具和开发语言,对所用到的
技术及语言相关知识进行学习巩固
4) 配置,部署hadoop
5) 测试,使用hadoop
2.1.3 设备要求
1) 操作系统
CentOS6.2
2) Hadoop-1.0.4-1
3) JDK1.6.0_04
2.2 系统设计
2.2.1 体系结构
Hadoop的核心框架包括两个部分:HDFS 和Mapreduce;HDFS(即Hadoop Distributed System的缩写)是分布式计算的基石,而Mapreduce是任务的分解和结果的汇总。简单的说,Map就是 将一个任务分解成 为多个任务,而Reduce就是将分解后多任务处理的结果汇总起来得出最后的结果;HDFS是一个与其它文件系统类似的,对于整个集群有单一的命名空间,文件被分割为多块分配存储到数据节点上的一个系统。
图2.1 数据处理流程图
3 设计的预期结果
1) 部署和测试hadoop
随时掌控工作的全面情况。
2) 使用hadoop
用来实现诸如统计单词出现次数的mapreduce程序
1.开题报告写作内容参考
2.压铸开题报告参考案例
3.开题报告范例参考
4.开题报告范本参考
5.开题报告的范文参考
6.论文开题报告的大纲参考
7.关于ofdm的开题报告
8.关于课题开题的报告
9.关于华工的开题报告
10.关于课题开题报告格式