搜档网
当前位置:搜档网 › Hadoop论文

Hadoop论文

Hadoop论文
Hadoop论文

Hadoop论文

内容摘要:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

正文:在课堂上,老师通过教我们使用虚拟机安装Linux系统ubuntu桌面系统,来使用这款软件,由于在非Windows下使用,对于操作命令不是很熟悉,以及Linux的使用不熟练,遇到了很多问题。例如网络问题,在VM下,网络可以自行连接也可以和本机共享,在windows自带的Hyper-v上使用时,就需要注意到网络的配置问题,这款虚拟机不会共享网络,而VirualBox却可以直接共享。安装好虚拟机和ubuntu系统后,接下来就是通过终端使用命令进行安装,这个终端和windows下的cmd类似,但是由于很少使用命令行,所以不熟悉。然后完成Hadoop的安装。为hadoop应用添加一个单独的用户,这样可以把安装过程和同一台机器上的其他软件分离开来,使得逻辑更加清晰。无论是在单机环境还是多机环境中,Hadoop均采用SSH来访问各个节点的信息。在单机环境中,需要配置SSH来使用户能访问localhost的信息。首先需要安装openssh-server。其次是配置SSH使得Hadoop应用能够实现无密码登录,输入命令切换用户,通过SSH访问localhost来验证安装是否成功。老师还介绍了,每台机器情况都不一样,出现的问题不同,那么解决问题的方法就不一样了,例如老师在安装失败时输出了log信息,找到了问题所在就解决了问题。这让我意识到,Linux系统由于开源所导致的不确定性很高,出现的问题也十分复杂,对于程序员来说可能

比较好解决,但对于大多数人来说就显得很棘手了。安装完毕,接下来就是配置文件了,Hadoop的配置文件都放在/Hadoop/conf这个文件夹下面,主要是四个配置文件。配置好环境后,就可以开始使用了。

Hadoop自立门户:与Nutch若即若离

众所周知,Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Nutch与Hadoop本是同门师兄,从0.X版本开始,为了解决Nutch的海量数据爬取和存储的需要,Hadoop便自立门户,从Nutch中剥离出来成为一个开源子项目。Hadoop其实并非一个单纯用于存储的分布式文件系统,而是一个被设计用来在由普通硬件设备组成的大型集群上执行分布式应用的框架。Hadoop由两部分组成,包括一个分布式文件系统HDFS和一个MapReduce实现。简而言之,Hadoop的核心目标是为开发分布式应用提供一个框架。HDFS采用master/slave架构。一个HDFS集群是有一个Namenode和一定数目的Datanode 组成。HDFS支持传统的层次型文件组织,与大多数其他文件系统类似,用户可以创建目录,并在其间创建、删除、移动和重命名文件。

Hadoop的应用案例:Nutch与Hadoop携手海量数据搜索的分布式检索构架Nutch正是基于Hadoop开发的一个应用。基于Nutch的分布式搜索引擎的架构可以分割为分布式爬虫器、分布式文件存储系统(HDFS)、检索服务系统(Searcher)等几部分。分布式爬虫器的工作流程为:首先Crawler根据WebDB 生成一个待抓取网页的URL集合叫做Fetchlist,接着下载线程Fetcher会开始根据Fetchlist网页抓取回来。在Nutch中,Crawler操作的实现是通过一系列子操作的实现来完成的。Nutch爬取的文件按块存放在搭建好的HDFS上,值得注意的是Nutch分布式检索服务于HDFS是没有关系的,提供检索服务的索引块存放在local文件系统中,而不是HDFS上。

将Nutch的优势和Hadoop相结合,就可以提供一个支持海量数据搜索的分布式检索构架。其主要流程为:

1、采用Heritrix爬取网页文本;

2、得到的数据写入Nutch的Segments,交由HDFS存储。

3、在Segments的基础上做链接分析和文本抽取工作。

4、构建分布式索引分发机制和更新机制;

5、利用Nutch提供分布式检索。

6、Hadoop底层实现原理

根据我所了解到的,hadoop是一个综合性很强的系统,可以用于数据收集和分析,帮助使用者更好的分析数据,是个很实用的系统。

Hadoop在互联网的应用:

淘宝

淘宝Hadoop集群现在超过1700个节点,服务于用于整个阿里巴巴集团各部门,数据来源于各部门产品的线上数据库(Oracle, MySQL)备份,系统日志以及爬虫数据,截止2011年9月,数量总量已经超过17个PB,每天净增长20T 左右。每天在Hadoop集群运行的MapReduce任务有超过4万(有时会超过6万),其中大部分任务是每天定期执行的统计任务,例如数据魔方、量子统计、推荐系统、排行榜等等。这些任务一般在凌晨1点左右开始执行,3-4个小时内全部完成。每天读数据在2PB左右,写数据在1PB左右。

百度

度对海量数据处理的要求是比较高的,要在线下对数据进行分析,还要在规定的时间内处理完并反馈到平台上。百度在互联网领域的平台需求下所示,这里就需要通过性能较好的云平台进行处理了,Hadoop就是很好的选择。在百度,Hadoop主要应用于以下几个方面: 日志的存储和统计;

网页数据的分析和挖掘;

商业分析,如用户的行为和广告关注度等;

在线数据的反馈,及时得到在线广告的点击情况;

用户网页的聚类,分析用户的推荐度及用户之间的关联度。

Facebook

Facebook作为全球知名的社交网站,拥有超过3亿的活跃用户,其中约有3千万用户至少每天更新一次自己的状态;用户每月总共上传10亿余张照片、1千万个视频;以及每周共享10亿条内容,包括日志、链接、新闻、微博等。因此Facebook需要存储和处理的数据量是非常巨大的,每天新增加4TB压缩后的数据,扫描135TB大小的数据,在集群上执行Hive任务超过7500次,每小时需要

进行8万次计算,所以高性能的云平台对Facebook来说是非常重要的,而Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面。

总结和体会:我学会如何使用Linux系统的部分命令,了解了它和windows 的一些使用区别,开源系统作为开发工具或者服务器比商业系统要实用一些,可以降低成本,而且可以自行修改,将各模块做成最适合自己开发的模式。学会安装hadoop,配置环境,和配置其他环境一样,都是要通过不断的查找别人的资料,查询官方文档,根据不同系统,不同的信息修改不同的参数,让对Linux 下开发一些软件有了一点心得。

由于当前Hadoop分析平台的性能的硬件性能并不是很好,200M的数据量分析就要使用到差不到300秒时间。但随着数据量的增加,查询时间并不会随着数据量的增大而明显的增大。所心,可以得出结论:Hadoop更加适合大数据的处理。

另外,云计算在短短的几年内获得了迅猛的发展,得到了几乎所有的IT行业巨头的青睐。云计算分布式的特点,方便的用户接入使用,高度的可靠性、可扩展性都为其发展带来了巨大的优势。以Google、IBM、Microsoft、Amason等云计算平台为代表的一系列应用迅猛地发展起来。

总之,云计算的研究和应用还有一片广阔的前景,今后需要研究地问题还很多,我们应该不断地学习,利用自己所学的知识,为该领域的相关研究做出自己应有地贡献。

相关主题