首页 文章 精选 留言 我的

精选列表

搜索[cto],共10000篇文章
优秀的个人博客,低调大师

Cloudera CTO:取代MapReduce 未来会加大Spark等框架投入

MapReduce的高延迟已经成为Hadoop发展的瓶颈,为当前的MapReduce寻找性能更高的替代品已成为Hadoop社区的一个共识。 MapReduce 有关MapReduce框架,最早要追溯到Google,Google将这个框架与灵活、可扩展性存储结合到一起,用以解决各类数据处理和分析任务。后来Doug Cutting和Mike Cafarella在2005年联合创立了Apache Hadoop时,采用的就是这个架构。 类似的项目,比如Apache Pig和Apache Hive,它们将专门的查询转化成可以运行在多功能MapReduce框架上的任务,同时也继承了MapReduce的可扩展性、容错能力、良好的吞吐能力还有糟糕的延迟,特别是Hive,延迟使其无力应付交互式应用。 关于MapReduce的抱怨使人们对企业数据中心和Hadoop项目的热情渐渐减少,MapReduce延迟太高,批处理模式响应也难以应对大量需要处理分析数据的应用。 Hadoop生态圈需要的是一个比MapReduce更加强大、更加灵活、更具实时性的系统。 Spark 如今MapReduce的主要替代者是Apache Spark。和MapReduce一样,它也是一个多功能引擎,但是Spark设计之初就考虑到运行更多的负载,而且速度更快。 最初的MapReduce通过简单的方式执行任务,但是本身结构严格:处理或者转化(map);同步(shuffle);以及在集群中将所有结点的结果整合到一起(reduce)。你必须将问题变成一系列MapReduce任务,然后按照顺序执行这些任务,延迟很高。在前一个任务执行完成之前,任何一个任务都无法开始,运行复杂、多阶段的应用程序很让人头疼。 一种替代方案是让开发者构建有关任务的复杂、多步有向非循环图(DAG),一次执行所有这些图,而不需要一个一个按照顺序来。这个方案避免了MapReduce中麻烦的同步问题,也使得应用程序的构建更加简单。对于DAG引擎的研究,微软在早些时候已经开始了,比如:Dryad,Dryad一直在微软内部使用,针对Bing搜索和其他托管服务。 在Spark中既包含了上述一些思想,也有一些重要的创新,比如:Spark支持跨DAG的内存数据分享,使不同任务可以以非常高的速度处理相同数据。Spark甚至支持循环数据流,这使得它能很好地处理迭代图算法(社交网络分析中常用)、机器学习和流处理,这是通过MapReduce或者其他DAG引擎是很难做到的。 Spark包含了流处理、快速故障还原、语言集成API、优化调度和传输数据等许多高级的功能。内存使用是Spark最引人注目的地方,MapReduce需要经常处理存储在磁盘上的数据,相比之下,Spark可以利用分散在集群中所有节点的大量RAM,它能够智能利用磁盘,解决溢出数据和持久性问题,这使Spark在应对负载时有了巨大的性能优势。 为什么不改进MapReduce,而要取代它? 在过去两年,Hadoop社区对MapReduce做了很多改进,但这些改进大多只是停留在了代码层,软件开发者把这称为原有代码基础上的“技术债务”,这些负债导致在原有基础上的改进只能解决一时的问题,从这个意义上讲,MapReduce实在是已经负债累累。 创建全新的代码库(无技术负债),针对当前和未来可预见的负载进行设计,这个过程相对还比较简单、风险较小。需要考虑的问题是:我们是不是真的有必要创建一个全新的项目? 作为MapReduce的替代品,Spark已经比较发展得比较成熟,拥有来自25个国家超过一百个贡献者,社区非常活跃,实际上已经没有必要去创建一个全新项目。 从长远来看,我们期望减少在MapReduce上的投入,相应增加在新框架上的投入,比如:Impala和Spark,理所当然,运行在该平台上的负载将逐渐转移到新的框架上。Google已经开始将负载从MapReduce转移到Pregel和Dremel上,而FaceBook则将负载转移到Presto上。 原文发布时间为:2014年05月06日 本文作者:Mike Olson 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

RAID原理分析总结-运维工作记录-51CTO博客

一.简介 Raid全称" 独立磁盘冗余阵列", 有时也简称磁盘阵列(Disk Array)。 RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别。 Raid的级别: Raid 0,Raid 1,Raid 0+1(也称Raid 10),Raid 2,Raid 3,Raid 5,Raid 6,Raid 7,Raid 53. 原理分析 我们为什么需要磁盘阵列? 目前人们逐渐认识了磁盘阵列技术。磁盘阵列技术可以详细地划分若干个级别0-5RAID技术,并且又发展了所谓的RAID Level 10,30,50的新的级别。RAID是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。用RAID的好处简单的说就是:安全性高,速度快,数据容量超大。 某些级别的RAID技术可以把速度提高到单个硬盘驱动器的400%。磁盘阵列把多个硬盘驱动器连接在一起协同工作,大大提高了速度,同时把硬盘系统的可靠性提高到接近无错的境界。这些"容错"系统速度极快,同时可靠性极高。 本文将讨论这些新技术,以及不同级别RAID的优缺点。 硬盘数据跨盘(Spanning) 数据跨盘技术使多个硬盘像一个硬盘那样工作,这使用户通过组合已有的资源或增加一些资源来廉价地突破现有的硬盘空间限制。 常用的是下面的几种RAID形式 (1)RAID 0 RAID 0又称为Stripe(条带化)或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。 RAID 0结构图解 如图所示:系统向四个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为4项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的两块硬盘中同时执行。从理论上讲,四块硬盘的并行操作使同一时间内磁盘读写速度提升了4倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。 RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。 (2)RAID 1 RAID 1又称为Mirror或Mirroring(镜像),它的宗旨是最大限度的保证用户数据的可用性和可修复性。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。 RAID 1结构图解 如图所示:当读取数据时,系统先从RAID 0的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回的数据损失。 由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域. (3)RAID 0+1 正如其名字一样RAID 0+1是RAID 0和RAID 1的组合形式,也称为RAID 10。 以四个磁盘组成的RAID 0+1为例,其数据存储方式如图所示:RAID 0+1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。 由于RAID 0+1也通过数据的100%备份功能提供数据安全保障,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。 RAID-10结构图解 RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。 (4)RAID 3 RAID 3是把数据分成多个"块",按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。 RAID 3结构图解 与RAID0相比,RAID3在读写速度方面相对较慢。使用的容错算法和分块大小决定RAID使用的应用场合,在通常情况下,RAID3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等. (5)RAID 5 RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID 5为例,其数据存储方式如图4所示:图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5结构图解 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。 (6)RAID 6 RAID 6等级是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。 这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。由于RAID 6相对于RAID 5在校验方面的微弱优势和在性能与性价比方面的较大劣势,RAID 6等级基本没有实际应用过,只是对更高级的数据的冗余进行的一种技术与思路上的尝试 RAID-6结构图解 (7)RAID 7 RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。基本成形式见图,你会发现在,以往一个硬盘是一个组成阵列的"柱子",而在RAID 7中,多个硬盘组成一个"柱子",它们都有各自的通道,也正因为如此,你可以把这个图分解成一个个硬盘连接在主通道上,只是比以前的等级更为细分了。这样做的好处就是在读/写某一区域的数据时,可以迅速定位,而不会因为以往因单个硬盘的限制同一时间只能访问该数据区的一部分,在RAID 7中,以前的单个硬盘相当于分割成多个独立的硬盘,有自己的读写通道,效率也就不言自明了。 然而,RAID 7的设计与相应的组成规模注定了它是一揽子承包计划。总体上说,RAID 7是一个整体的系统,有自己的操作系统,有自己的处理器,有自己的总线,而不是通过简单的插卡就可以实现的。归纳起来,RAID 7的主要特性如下: 所有的I/O传输都是异步的,因为它有自己独立的控制器和带有Cache的接口,与系统时钟并不同步所有的读与写的操作都将通过一个带有中心Cache的高速系统总线,我们称之为X-Bus专用的校验硬盘可以用于任何通道带有完整功能的即时操作系统内嵌于阵列控制微处理器,这是RAID 7的心脏,它负责各通道的通信以及Cache的管理,这也是它与其他等级最大不同之一 连通性:可增至12个主机接口 扩展性:线性容量可增至48个硬盘 开放式系统,运用标准的SCSI硬盘、标准的PC总线、主板以及SIMM内存 高速的,集成Cache的数据总线(就是上文提到的X-bus) 在Cache内部完成校验生成工作 多重的附加驱动可以随时热机待命,提高冗余率和灵活性易管理性:SNMP(Simple Network Management Protocol,简单网络管理协议) 可以让管理员远程监视并实现系统控制按照RAID 7设计者的说法,这种阵列将比其他RAID等级提高150-600%写入时的I/O性能,虽然这引起了不小的争议。 RAID-7结构图解 (8)RAID 53 与RAID 10一样,RAID 53也是一种组合RAID 等级,但不要拿RAID 10的观点套用,认为它是RAID 5和RAID 3的组合,事实上,RAID 53应该称为RAID 30或RAID 03(也可以说是RAID 0+3),即RAID 3与RAID 0的组合,具体形式见图:与图1相对比,可以发现,RAID 53中将备份等级由RAID 0变为了RAID 3,也就是说把原来的镜像阵列变成了分割式(Segments)存储阵列。但它不是对每个RAID 0硬盘都用一个RAID 3系统进行,而是用RAID 3对所有数据进行冗余存储(或者说是校验),而且读写与ECC效率比RAID 0要高不少。 值得注意的是,RAID 3在RAID 53的数据传输中占有相当重要的位置。在介绍RAID 3时,曾说过它有很高的读写传输率。因此,在进行大数据量吞吐时,由于RAID 3的传输率高的缘故,RAID 53的性能要比RAID 10好(因为冗余备份的时间缩短)。而且,借助于RAID 0,其I/O带宽并没有降低。不过,从它的配置形式上就可以看出来,它的存储空间利用率要比RAID 10低,为40%。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册