我要投稿 投诉建议

hadoop开题报告参考

时间:2020-12-30 18:13:11 开题报告 我要投稿

关于hadoop开题报告参考

  1 选题的目的和意义

关于hadoop开题报告参考

  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程序