初识Hadoop
Hadoop是什么?
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。分布式计算是一个宽泛并且不断变化的领域,Hadoop的优势在于:
1) 方便:Hadoop运行在由一般商用机器构成的大型集群上,或者云计算服务上,比如EC2。
2) 健壮:Hadoop致力于在一般商用硬件上运行,其架构假设硬件会频繁失效,Hadoop可以从容地处理大多数此类故障。
3) 可扩展:Hadoop通过增加集群节点,可以线性地扩展以处理更大的数据集。
4) 简单:Hadoop允许用户快速编写高效的并行代码。
Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统。MapReduce 是分布式数据处理模型和执行环境。掌握了这两部分,也就掌握了Hadoop最核心的东西。
Hadoop是Doug Cutting基于Google公司的GFS和MapReduce思想不断完善的项目 —— Nutch中脱胎而出的,目前已经归于Apache公司。
Hadoop能做什么?
大数据时代已经到来,金融数据、电商数据、社交数据、游戏数据…….这些数据的规模、结构、增长的速度都给传统数据存储和处理技术带来巨大考验。Hadoop的简单方便、可扩展性和健壮性让其在大数据处理方面占尽优势,其主要适合的应用场景有:
1) 搜索引擎,Doug Cutting设计Hadoop的初衷,就是为了针对大规模的网页快速建立索引。
2) 大数据存储,利用Hadoop的分布式存储能力,例如数据备份、数据仓库等。
3) 大数据处理,利用Hadoop的分布式处理能力,例如数据挖掘、数据分析等。
4) 科学研究,Hadoop是一种分布式的开源框架,对于分布式计算有很大程度地参考价值。
目前,Hadoop已经成长为一个庞大的体系,只要和海量数据相关的领域,都有Hadoop的身影。下图是一个Hadoop生态系统的图谱,详细列举了Hadoop这个生态系统中出现的各种数据工具。
图1 Hadoop生态系统地图
1)和 2) Nutch,互联网数据及Nutch搜索引擎应用
3) HDFS,数据存储
7) Hiho,Sqoop,将关系数据库的数据导入HDFS的工具
11) Hue,Hadoop自己的监控管理工具
14) HBase,OLTP存储系统
Hadoop谁在用?
Hadoop作为大数据存储及计算领域的一颗明星,目前已经得到越来越广泛的应用。不管是国外的著名公司Google、Yahoo!、微软、亚马逊、 EBay、FaceBook、Twitter、LinkedIn等和初创公司Cloudera、Hortonworks等,又还是国内的著名公司中国移动、阿里巴巴、华为、腾讯、百度、网易、京东商城等,都在使用Hadoop及相关技术解决大规模化数据问题,以满足公司需求和创造商业价值。
例如:Yahoo! 的垃圾邮件识别和过滤、用户特征建模;Amazon.com(亚马逊)的协同过滤推荐系统;Facebook的Web日志分析;Twitter、LinkedIn的人脉寻找系统;淘宝商品推荐系统、淘宝搜索中的自定义筛选功能……这些应用都使用到Hadoop及其相关技术。
以下简单列举了Hadoop在一些知名企业的应用情况,博主想说的是,信息可能有变化,同学们有个大概的了解即可,无须深究。
1.
奇虎360:主要使用Hadoop-HBase作为其搜索so.com的底层网页存储架构系统,360搜索的网页可到千亿记录,数据量在PB级别。截至2012年年底,其HBase集群规模超过300节点,region个数大于10万个,使用的平台版本如下。
HBase版本:facebook0.89-fb。
HDFS版本:facebookHadoop-20。
奇虎360在Hadoop-HBase方面的工作主要为了优化减少HBase集群的启停时间,并优化减少RS异常退出后的恢复时间。
2.
A9.com为Amazon使用Hadoop构建了商品搜索索引,主要使用StreamingAPI以及C++、Perl和Python工具,同时使用Java和StreamingAPI分析处理每日数以百万计的会话。A9.com为Amazon构建的索引服务运行在100节点左右的Hadoop集群上。
3.
Adobe主要使用Hadoop及HBase,同于支撑社会服务计算,以及结构化的数据存储和处理。大约有超过30个节点的Hadoop-HBase生产集群。Adobe将数据直接持续地存储在HBase中,并以HBase作为数据源运行MapReduce作业处理,然后将其运行结果直接存到HBase或外部系统。Adobe在2008年10月就已经将Hadoop和HBse应用于生产集群。
4.
阿里巴巴的Hadoop集群截至2012年大约有3200台服务器,大约300000物理CPU核心,总内存100TB,总的存储容量超过60PB,每天的作业数目超过1500000个,每天hivequery查询大于6000个,每天扫描数据量约为7.5PB,每天扫描文件数约为4亿,存储利用率大约为80%,CPU利用率平均为65%,峰值可以达到80%。阿里巴巴的Hadoop集群拥有150个用户组、4500个集群用户,为淘宝、天猫、一淘、聚划算、CBU、支付宝提供底层的基础计算和存储服务,主要应用包括:
1) 数据平台系统。
2) 搜索支撑。
3) 广告系统。
4) 数据魔方。
5) 量子统计。
6) 淘数据。
7) 推荐引擎系统。
8) 搜索排行榜。
为了便于开发,其还开发了WebIDE继承开发环境,使用的相关系统包括:Hive、Pig、Maherout、HBase等。
5.
百度在2006年就开始关注Hadoop并开始调研和使用,在2012年其总的集群规模达到近十个,单集群超过2800台机器节点,Hadoop机器总数有上万台机器,总的存储容量超过100PB,已经使用的超过74PB,每天提交的作业数目有数千个之多,每天的输入数据量已经超过7500TB,输出超过1700TB。
百度的Hadoop集群为整个公司的数据团队、大搜索团队、社区产品团队、广告团队,以及LBS团队提供统一的计算和存储服务,主要应用包括:
1) 数据挖掘与分析。
2) 日志分析平台。
3) 数据仓库系统。
4) 推荐引擎系统。
5) 用户行为分析系统。
同时百度在Hadoop的基础上还开发了自己的日志分析平台、数据仓库系统,以及统一的C++编程接口,并对Hadoop进行深度改造,开发了HadoopC++扩展HCE系统。
6.
中国移动于2010年5月正式推出大云BigCloud1.0,集群节点达到了1024。中国移动的大云基于Hadoop的MapReduce实现了分布式计算,并利用了HDFS来实现分布式存储,并开发了基于Hadoop的数据仓库系统HugeTable,并行数据挖掘工具集BC-PDM,以及并行数据抽取转化BC-ETL,对象存储系统BC-ONestd等系统,并开源了自己的BC-Hadoop版本。中国移动主要在电信领域应用Hadoop ,其规划的应用领域包括:
1) 经分KPI集中运算。
2) 经分系统ETL/DM。
3) 结算系统。
4) 信令系统。
5) 云计算资源池系统。
6) 物联网应用系统。
7) E-mail。
8) IDC服务等。
7.
Datagraph主要使用Hadoop批量处理大量的RDF数据集,尤其是利用Hadoop对RDF
数据建立索引。Datagraph也使用Hadoop为客户执行长时间运行的离线SPARQL查询。Datagraph是使用AmazonS3和Cassandra存储RDF数据输入和输出文件的,并已经开发了一个基于MapReduce处理RDF数据的Ruby框架——RDF grid。
Datagraph主要使用Ruby、RDF.rb以及自己开发的RDF grid框架来处理RDF数据,主要使用HadoopStreaming接口。单集群超过532节点集群,单节点8核心CPU,容量超过5.3PB存储。大量使用的
MapReduce的Java接口、Pig、Hive来处理大规模的数据,还使用HBase进行搜索优化和研究。
8.
Facebook使用Hadoop存储内部日志与多维数据,并以此作为报告、分析和机器学习的数据源。目前Hadoop集群的机器节点超过1400台,共计110200个核心CPU,超过15PB原始存储容量,每个商用机器节点配置了8核CPU,12TB数据存储,主要使用StreamingAPI和JavaAPI编程接口。Facebook同时在Hadoop基础上建立了一个名为Hive的高级数据仓库框架,Hive已经正式成为基于Hadoop的Apache一级项目。此外,还开发了HDFS上的FUSE实现。
9.
内布拉斯加大学的HollandComputingCenter,运行一个中等规模的Hadoop机群(共计1.6PB存储)用于存储和提供物理数据,以支持紧凑型u子螺旋型磁谱仪实验的计算。这需要一类能够以几Gbps的速度下载数据,并以更高的速度处理数据的文件系统的支持。华为公司也是Hadoop主要做出贡献的公司之一,排在Google和Cisco的前面,华为对Hadoop的HA方案,以及HBase领域有深入研究,并已经向业界推出了自己的基于Hadoop的大数据解决方案。
10.
Yahoo是Hadoop的最大支持者,截至2012年,Yahoo的Hadoop机器总节点数目超过420000个,有超过10万的核心CPU在运行Hadoop。最大的一个单Master节点集群有4500个节点(每个节点双路4核心CPUboxesw,4X1TB磁盘,16GBRAM)。总的集群存储容量大于350PB,每月提交的作业数据超过1000万个,在Pig中超过60%的Hadoop作业是使用Pig编写提交的。
Yahoo的Hadoop应用主要包括以下几个方面:
1) 支持广告系统
2) 用户行为分析
3) 支持Web搜索
4) 反垃圾邮件系统
5) 会员反滥用
6) 内容敏捷
7) 个性化推荐
同时Pig研究并测试支持超大规模节点集群的Hadoop系统。
11.
IBM蓝云也利用Hadoop来构建云基础设施。IBM蓝云使用的技术包括:Xen和PowerVM虚拟化的Linux操作系统映像及Hadoop并行工作量调度,并发布了自己的Hadoop发行版及大数据解决方案。
12.
Last.Fm主要用于图表计算、专利申报、日志分析、A/B测试、数据集合并等,也使用Hadoop对超过百万的曲目进行大规模的音频特征分析。节点超过100台机器,集群节点配置双四核XeonL5520@2.27GHzL5630@2.13GHz,24GB内存,8TB(4X2TB)存储。
13.
腾讯也是使用Hadoop最早的中国互联网公司之一,截至2012年底,腾讯的Hadoop集群机器总量超过5000台,最大单集群约为2000个节点,并利用Hadoop-Hive构建了自己的数据仓库系统TDW,同时还开发了自己的TDW-IDE基础开发环境。腾讯的Hadoop为腾讯各个产品线提供基础云计算和云存储服务,其支持以下产品:
1) 腾讯社交广告平台
2) 搜搜(SOSO)。
3) 拍拍网。
4) 腾讯微博。
5) 腾讯罗盘。
6) QQ会员。
7) 腾讯游戏支撑。
8) QQ空间。
9) 朋友网。
10)腾讯开放平台。
11)财付通。
12)手机QQ。
13)QQ音乐。
14.
Linkedln有很多硬件配置的Hadoop集群,主要集群配置如下:
800节点集群,基于Westmere的惠普SL170X与2X4的核心,24GB内存,6x2TBSATA。
1900节点群,基于Westmere的超微-HX8DTT,与2x6的核心,24GB内存,6x2TBSATA。
1400节点群,基于SandyBridge超微与2x6的核心,32GB内存,6x2TBSATA。
使用的软件如下:
操作系统使用RHEL6.3。
JDK使用SUNJDK1.6.0_32。
Apache的Hadoop0.20.2的补丁和ApacheHadoop的1.0.4补丁。
Azkaban和Azkaban用于作业调度。
Hive、Avro、Kafka等。
15.
主要使用Hadoop应用在并行化算法领域,设计的MapReduce应用算法如下。
1) 信息检索和分析。
2) 机器生成的内容—文档、文本、音频、视频。
3) 自然语言处理。
4) 项目组合包括。
5) 移动社交网络。
6) 网络爬虫。
7) 文本到语音转化。
8) 音频和视频自动生成。
16.
3000个CPU核心,3500TB存储,每日处理1PB以上的数据,使用完全自定义的数据路径和排序器的Hadoop调度器,对KFS文件系统有突出贡献。主要利用Hadoop定制一个网络日志分析并生成报告,其生产环境下超过50个节点集群(双路四核Xeon处理器,16GB的RAM,4~6硬盘驱动器),还有两个相对小的集群用于个性化分析,每天处理约500万的事件,每月15亿美元的交易数据,集群每天产生大约25GB的报告。
使用的技术主要包括:CDH、Cascading、Janino。
17.
盘古搜索(目前已和即刻搜索合并为中国搜索)主要使用Hadoop集群作为搜索引擎的基础架构支撑系统,截至2013年年初,集群中机器数量总计超过380台,存储总量总计3.66PB,主要包括的应用如下。
1) 网页存储。
2) 网页解析。
3) 建索引。
4) Pagerank计算。
5) 日志统计分析。
6) 推荐引擎等。
以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢!
版权声明:本文为博主原创文章,未经博主允许不得转载。