草庐IT

Hadoop的虚拟化之恋-【软件和信息服务】2012.12

中国云梦 2023-03-28 原文
 高速增长的数据量和日益增加的竞争压力,让越来越多的企业开始思考如何挖掘这些数据的价值。传统的BI系统、数据仓库和数据库系统都不能很好地处理这些数据,原因包括:1)数据量太大,传统数据库不能有效存储并维持可以接受的性能;2)新产生的数据往往是非结构化的,而传统方式都是为处理结构化数据而设计的;3)传统数据处理所需的硬件往往相对昂贵,随着数据量增加而继续用传统方式处理的成本让很多企业不能承受。为此,倍受互联网界推崇的Apache Hadoop这朵奇葩日益吸引了企业界的目光,大量企业都在思考如何把Hadoop这个美丽的新娘娶回自己的数据中心。

不过,传统的企业数据中心要想娶回这个妖艳新娘可不是那么简单:Hadoop部署、运维都需要很多极客才能完全掌控,完全超出了传统企业数据中心的技术能力;另外,Hadoop不仅需要专门硬件,而且安全和服务等级确保也是挑战。如何能享受美丽新娘的温柔梦乡而不带来其他的后患成为企业选择Hadoop的现实挑战。

从服务器虚拟化到整个数据中心虚拟化,今天我们已经充分感受到了虚拟化这个小子的力量!如果虚拟化能和Hadoop来场恋爱,企业数据中心选择Hadoop的羁绊是不是都会一扫而光呢?答案是肯定的。虚拟化能让Hadoop和底层物理硬件分离,真正步入云端翩跹起舞,Hadoop从而轻松步入快速部署、高可用、资源弹性调度和安全多租户的云端殿堂,企业数据中心大数据分析和利用的美梦才能真正成为现实。

让我们一起来揭开虚拟化这小子的恋爱秘籍吧,以便更好地利用Hadoop来应对大数据的挑战。1)快速部署Hadoop:我们已经熟悉虚拟化的密码,包括虚拟机、快照、模板、资源动态分配等,这些特性能很好地降服了大量应用部署的难题,Hadoop当然也不在话下,可以大幅度提高Hadoop节点的部署速度。同时,可以按需快速启动和关闭Hadoop节点,从而实现资源的高效利用,比如VMware发布的Serengeti开源项目,助推了虚拟化和Hadoop之恋的进程;2)为Hadoop提供高可用和容错能力:尽管Hadoop通过数据分布复制提高了系统可靠性,但仍然有很多部件存在单点故障,这种结构在互联网企业中可能不是问题,但对传统数据中心来说绝对是个挑战。比如:Namenodejobtracker以及某些支持模块都存在单点故障,通过虚拟小子的平台高可用可以为这些模组轻松赋予高可靠的特性,让Hadoop走进企业数据中心后,您仍然能高枕无忧;3)拥抱Hadoop的高效数据中心:通过虚拟小子动态调度能力,可以将各种不同的负载混搭在企业数据中心云端平台,Hadoop当然也可以与其他负载同床共枕,通过严格的安全隔离,确保不会发生任何冲突。甚至你可以在同一云平台运行不同版本的Hadoop,相互之间和平共处,资源共享,在确保可用性、性能的前提下,降低了传统部署Hadoop的总体成本,轻松实现了高效数据中心的目标;4)大幅提升Hadoop环境资源利用率:将Hadoop和其他负载部署在同一主机上,通过资源控制策略来实现资源的高效分配和调度,实现Hadoop在云端的完美漫步,是虚拟化小子赢得这场恋爱的关键一环;5Hadoop云端多租户:通过虚拟化的隔离能力,Hadoop确保本身多租户的完美体验,不同的租户可以将Hadoop和其他负载混合运行在云端资源池,多租户顺利部署实现;6)安全隔离:虚拟小子的安全隔离能力,让不同组织、用户的Hadoop可以无忧运行,轻松达成数据和环境完全隔离的目标,同时共享底层的物理资源;7)易于维护和迁移:虚拟化让Hadoop节点易于复制、迁移,方便了同数据中心不同集群之间、一个数据中心到另一个数据中心跨云迁移等瞬间实现,Hadoop再也不是一个行动不便的媚娘。

虚拟小子通过7板斧顺利赢得了Hadoop的芳心,不仅仅让Hadoop没给传统的企业数据中心添乱, 而且Hadoop在虚拟平台上的魅力未减,因为大量的事实已经印证了虚拟化的Hadoop节点运行性能依然堪比物理环境,同时还带来了大量的成本节约。Hadoop和虚拟化门当户对,他们的恋爱之果值得我们共同期待和祝愿:祝Hadoop和虚拟化白头偕老,永结同心,百年好合!

注:本文已经发表在《软件和信息服务》2012年第12期上,文章在线地址:http://www.saism.com.cn/?action-viewnews-itemid-1809

 

有关Hadoop的虚拟化之恋-【软件和信息服务】2012.12的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  5. ruby - what is - gets is a directory - 错误信息 - 2

    我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay

  6. ruby - 尝试比较两个文本文件,并根据信息创建第三个 - 2

    我有两个文本文件,master.txt和926.txt。如果926.txt中有一行不在master.txt中,我想写入一个新文件notinbook.txt。我写了我能想到的最好的东西,但考虑到我是一个糟糕的/新手程序员,它失败了。这是我的东西g=File.new("notinbook.txt","w")File.open("926.txt","r")do|f|while(line=f.gets)x=line.chompifFile.open("master.txt","w")do|h|endwhile(line=h.gets)ifline.chomp!=xputslineendende

  7. ruby - rspec: raise_error 用法来匹配错误信息 - 2

    我使用raise(ConfigurationError.new(msg))引发错误我试着用rspec测试一下:expect{Base.configuration.username}.toraise_error(ConfigurationError,message)但这行不通。我该如何测试呢?目标是匹配message。 最佳答案 您可以使用正则表达式匹配错误消息:it{expect{Foo.bar}.toraise_error(NoMethodError,/private/)}这将检查NoMethodError是否由privateme

  8. ruby - 为什么要使用嵌套的 Ruby 模块来获取版本信息? - 2

    我最近一直在查看一些gem的源代码。我经常看到的一个习惯用法是使用嵌套模块,其中包含连接到版本字符串中的版本常量,即围绕此类事物的变体:moduleChunkyBaconmoduleVersionMAJOR=0MINOR=6TINY=2endVERSION=[Version::MAJOR,Version::MINOR,Version::TINY].compact*'.'end以这种方式存储库版本信息有什么好处(如果有的话)?为什么不这样做:moduleChunkyBaconVERSION='0.6.2'.freezeend 最佳答案

  9. ruby - 使用包含在另外两个数组中的信息创建一个数组 - 2

    如何使用如下两个数组构建一个数组:名称=[a,b,c]how_many_of_each[3,5,2]得到my_array=[a,a,a,b,b,b,b,b,c,c] 最佳答案 使用zip、flat_map和数组乘法:irb(main):001:0>value=[:a,:b,:c]=>[:a,:b,:c]irb(main):002:0>times=[3,5,2]=>[3,5,2]irb(main):003:0>value.zip(times).flat_map{|v,t|[v]*t}=>[:a,:a,:a,:b,:b,:b,:b,:b

  10. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

随机推荐