浅谈Hadoop系统架构与海量数据分析

微软近日宣布开发一个兼容Windows Server与Windows Azure平台的Hadoop开源版本。IBM宣布在Hadoop上建立新的存储架构,作为群集运行DB2或Oracle数据库,目的是让应用程序,支持高性能分析,数据仓库应用程序和云计算的目的。EMC也推出了世界上第一个定制的、高性能的Hadoop专用数据协同处理设备——Greenplum HD数据计算设备,为客户提供了最强大、最高效率的方法,充分挖掘大数据的价值。互联网搜索巨头百度也在考虑使用Hadoop。不过,出于性能与安全的考虑,百度在采用Hadoop架构的时候,将Hadoop计算层进行了重新编写。在2011Openworld大会上,甲骨文宣布发布了Big Data 机,它采用了NoSQL数据库和Hadoop框架,并且成功的将其商业化,用于大数据分析。华为公司在Hadoop重要贡献公司名单内,排在Google和Cisco的前面,说明华为公司也在积极参与开源社区贡献。淘宝、Facebook等也纷纷加入Hadoop阵营。作为一个幕后英雄,Hadoop风暴来袭,Hadoop未来必将应用于越来越多的领域,风靡全球可谓是指日可待了。

  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离线分析系统架构

  实时数据分析一般用于金融、移动和互联网B2C等产品,往往要求在数秒内返回上亿行数据的分析,要满足这样的需求,可以采用精心设计的传统关系型数据库组成并行处理集群,但需要耗费比较高的软硬件成本。目前比较新的海量数据实时分析工具有EMC的Greenplum、SAP的HANA等。

  对于大多数反馈时间要求不是那么严苛的应用,比如离线统计分析、机器学习、搜索引擎的反向索引计算、推荐引擎的计算等,应采用离线分析的方式,通过数据采集工具将日志数据导入专用的分析平台。但面对海量数据,传统的ETL工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook 开源的Scribe、LinkedIn开源的Kafka、淘宝开源的Timetunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求,并将这些数据上载到Hadoop中央系统上。

  按照大数据的数据量,分为内存级别、BI级别、海量级别三种。

这里的内存级别指的是数据量不超过集群内存最大值。Facebook缓存在内存的Memcached中的数据高达 320TB,而目前的PC服务器,内存也可以超过百GB。因此可以采用一些内存数据库,将热点数据常驻内存之中,从而取得非常快速的分析能力,非常适合实时分析业务。图1是一种实际可行的MongoDB分析架构。

  图1 用于实时分析的MongoDB架构

  MongoDB大集群目前存在一些稳定性问题,会发生周期性的写堵塞和主从同步失效,但仍不失为一种潜力十足的可以用于高速数据分析的NoSQL。

  BI级别指的是那些对于内存来说太大的数据量,但一般可以将其放入传统的BI产品和专门设计的BI数据库之中进行分析。目前主流的BI产品都有支持TB级以上的数据分析方案。种类繁多,就不具体列举了。

  海量级别指的是对于数据库和BI产品已经完全失效或者成本过高的数据量。海量数据级别的优秀企业级产品也有很多,但基于软硬件的成本原因,目前大多数互联网企业采用Hadoop的HDFS分布式文件系统来存储数据,并使用MapReduce进行分析。

(责任编辑:蒙遗善)

时间: 2024-08-28 08:46:48

浅谈Hadoop系统架构与海量数据分析的相关文章

浅谈web网站架构演变过程

原文:浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.

iOS开发之浅谈MVVM的架构设计与团队协作

今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了. 说道架构设计和团队

浅谈Android系统的基本体系结构与内存管理优化

Android运行环境一览 Android基于linux内核,面向移动终端的操作系统.主要包括以下几个方面: Application Framework: 这一层为应用开发者提供了丰富的应用编程接口,如 Activity Manager,Content Provider,Notification Manager,以及各种窗口 Widget 资源等.所有的APP都是运行在这一层之上. Dalvik 虚拟机: Dalvik VM采用寄存器架构,而不是JVM的栈架构,更适于移动设备.java源代码经过

浅谈Windos Azure架构与存储

 转载请注明出处:http://blog.csdn.net/zbf8441372 写在前面:         Windows Azure是微软发展出来的一套云操作系统,用来提供云联机服务所需要的操作系统与基础存储与管理的平台.我关注Azure这个平台,主要是想了解他的架构,以及他的云计算存储技术.我觉得一个好的操作系统,就是一个好的架构.Windows Azure Platform现阶段提供的是PaaS(平台即服务),但未来可能会开放基础设施即服务(IaaS)的服务项目.         接下来

浅谈Hadoop

大数据的概念炒了好多年了,很显然这项技术经受住了时间的考验,不是有些人想的那样华而不实,多年来总是伴随着Hadoop的身影越发壮大. 这些年来数据的增长量真是发生了天翻地覆的变化,原来大家过年的时候都会很认真的拍一张全家福,恨不得把胶卷能够正反两用,多存点照片,现在好了,手机各类终端齐上阵,微博,微信,图片,小视频,所有的数据真是应有尽有.数据量上来了,数据的分析工作就显得尤为重要了.用现在很形象的一种描述就是,让数据说话. Hadoop的使命就是主要海量数据的存储和分析,也有两个核心的功能,一

浅谈Hadoop生态系统

大数据在2014年逐渐爆发,越来越多的企业发现了大数据的用途,不仅可以用来管理每天的业务流程,还能解决复杂的商业问题.大数据很快跃升为热点词,并将自己打造成可以解决大大小小商业实体问题的可靠技术. 大数据,顾名思义,就是在我们周围存在的巨大量级数据,这些数据可以是在智能设备.互联网.社交媒体.聊天室.移动APP.电话呼叫.商品购买等一系列使用活动中产生.大数据技术就是用来收集.存储和分析这些量级(一般达到拍字节)的信息. 大数据技术彻底改变了人们看待数据和数据库存储的方式,颠覆了数据的使用方法.

浅谈blogcms系统默认情况下的seo优化方法

任何一个程序都不可能尽善尽美,而博客系统默认情况下的seo效果也没有完全发挥出来,笔者的博客地址原来是在主域名的一个子目录里,因为子目录或二级域名的自然权重排名没有优势,所以无奈之下把博客迁移到了主域名之下这也增加了网站运营成本,无形中也加大了后期的维护管理工作,所谓有的放矢想要有给力的排名必须是要付出才能有所回报的.很多核心重点工作第一步如果没有确立一个标准那么在后续工作中那是相当纠结的一件事,李正seo顾问提醒诸位上线一个网站之前一定必须先制定好关键性的网站结构,否则在产生排名之后想要改动那

浅谈web网站架构演变过程(转)

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理   阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.maven+spring+sprin

浅谈CRM系统应用中的四大关键技术

1.商业智能和分析能力 尽管自动化和改善面向客户的商业流程是CRM的主要目标之一,但使CRM解决方案拥有强健的商业智能和分析能力也是同样重要的.CRMhttp://www.aliyun.com/zixun/aggregation/14223.html">应用系统中包括大量有关企业客户和潜在客户的广泛信息.决策者需要利用和分析这些信息,只有这样决策者们才能作出更为明智和及时的商业决策.一个优化的商业智能解决方案应跨越CRM和ERP两种系统,这样,企业才能将成本与赢利的活动直接联系在一起. 2