大数据时代,我们需要有超越 Hadoop和MapReduce的杀手级技术
Posted GitChat精品课
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据时代,我们需要有超越 Hadoop和MapReduce的杀手级技术相关的知识,希望对你有一定的参考价值。
过去25年来,位居主流地位的关联式资料库(Relational Databases),在云端计算与大数据的发展中突显了其不足之处,所以在最近几年受到了「NoSQL」发展的挑衅与威胁。
像Facebook、Google、Twitter等大型网络企业,为了解决大量的资料存取问题,纷纷舍弃了关联式资料库技术,改以其它的相关技术,如「NoSQL」或是「Not Only SQL」等技术,以提升处理资料的效能与扩充的弹性。
而在此变迁中,Hadoop逐渐成为一个关键的重要角色。Hadoop是Apache软体基金会所发展的云端计算技术,使用Java撰写并免费开放原始码,优点在於有良好的扩充性,程式部署快速等,同时能有效地分散系统的负荷。
Google也为此提出了MapReduce软体编程架构,这是一种能以高可靠性与高容错的方式,运作在由大规模电脑所组成的丛集上的技术,并可透过平行处理方式来处理PB(Peta-Bytes)等级的资料量。
而在此竞争中,我们还不清楚到底是「SQL」、「No SQL」或是「Not Only SQL」能够胜出,但是,有一点是非常明确的--如果你正面临大数据的挑战,那麽Hadoop将是你用来开发系统的选择。
MapReduce和Hadoop也不是万能,「NoHadoop」时代的来临
但目前有个很重要的问题是,有些人注意到了MapReduce与Hadoop在功能上的不足与限制性,於是纵使他们需要能够提供高效能与扩展性佳的应用工具,他们仍摒弃了MapReduce与Hadoop,有些人甚至回头使用了关联式资料库。
虽然Hadoop擅长於处理批次的资料量,但在多维度的资料处理分析上的表现并不佳。例如,大多数的企业总是会面对更复杂的资料连结(Complex Joins)、ACID机制的要求(Atomicity-Consistency-Isolation-Durability,这是关联式资料库为了确保资料的完整性,所采用的机制,以使资料在存取或异动的过程中不会受到干扰)、即时分析(Real-Time Requirements)、量子电脑演算法(SuperComputing Algorithms)、图型计算(Graph Computing)或是资料的持续更新,而Hadoop在处理这些资料的表现上还称不上令人满意的标准。
基於种种原因,「Post-Hadoop架构」被提出了,而此新架构在处理资料的能力上有了更佳的效能。
本篇文章想与各位读者分享的也是一个新的「NoHadoop」时代的来临。因为有愈来愈多的企业意识到,大数据需要的不只是Hadoop。
那麽,我们应该怎样看待「NoHadoop」或是「Post-Hadoop」?
单就效能面来说,新一代的架构需要在MapReduce/Hadoop的基础上有10到10000倍效能的提升。
接着,我们一起来认识一下目前市场上受人关注的几个应用方法与工具。
SQL
SQL应用在:业务资料查询(Complex Business Queries)、线上交易处理(OnLine Transaction Processing)。
SQL 已经发展 25 年了,而目前有很多的创新都围绕着下一代的资料库技术(SQL Next-Gen)延伸,像是 VoltDB、Clustrix 这些公司,已经有了一些成果。
如果你需要做复杂的 Joins 语法分析,或是需要 ACID 机制以维持资料的完整性时,SQL 依然会是最好的选择。
Cloudscale
应用在:演算法交易(Algorithmic Trading)、欺诈侦测(Fraud Detection)、行动广告(Mobile Advertising)、定位服务(Location Services)、行销智能(Marketing Intelligence)。
在 大数据的即时分析上,Cloudscale 打破了一般批次处理的限制。例如,当你打算分析一台伺服器上每秒百万次的资料事件,而系统所允许的传送结果延迟时间为 5 秒,那麽你就需要一个即时处理资料的架构。而 Cloudscale 就可以提供这种即时资料分析的能力,它比 Hadoop 的批次处理快了近 1 万倍。
MPI 与 BSP
应用在:建模与模拟(Modelling and Simulation)、流体力学 (Fluid Dynamics)。
在许多的超级电脑应用中,往往需要在大数据上建立复杂的演算法,而为了提升效能,都是依赖处理器直接存取资料。像 MPI 和 BSP 这些平行编程工具,就非常适合这类需要高效能计算的应用。
Pregel
应用在:网络演算法(Web Algorithms)、社交结构演算法(Social Graph Algorithms)、位置结构(Location Graphs)、机器学习和发现(Learning and Discovery)、网络最佳化(Network Optimisation)、网际网络(Internet)。
你需要分析一个在复杂环境中的社交关系网络吗?如果是的话,你所面对的不止是资料的问题而已,而是一个结构的问题。
在数以亿万计的网络节点和路径的环境中,常常需要利用动态结构和网络分析方法的应用,而我们也在愈来愈多的科技发展中感受到这些结构分析方法的重要性,其 中,Google 的 Pregel 架构,就是使用 BSP(Bulk Synchronous Parallel)模型来进行大范围的高效能结构计算。
Dremel
应用在:资料探勘(Data Exploration)、客户支援 (Customer Support)、资料中心监测(Data Center Monitoring)。
你需要查询网络上大规模的资料吗?如果答案是肯定的,你就需要 Google 的 Dremel 架构。它的设计原理就在於支援使用者在查询储存了亿万笔记录的资料表时,能在数秒的时间内传回结果。
Dremel 的查询指令的执行,并不需要转换成 MapReduce 的任务(Job)。Google 在 2006 年就把 Dremel 产品化了,到目前为止已经拥有数千名使用者。
Percolator (Caffeine)
应用在:即时查询(Real Time Search)。
如果你需要对大量的资料集进行不断地更新,那麽 Percolator 会是一个不错的应用选择。它是 Google 应用在网络的索引架构,甚至比 Hadoop 更好用,而且 Google 的即时查询功能「Google Instant」不能少了它。
因为索引会随着时间而增加,若应用 Percolator 的 Google Caffeine 系统检索资料的速度,将比之前采用 Hadoop 的处理快上百倍。
而目前的状况是,Hadoop 因为采取免费试用的方式做推广,这将使得它在许多的实务应用中仍会持续扮演重要的角色。然而,在越来越多的大数据相关应用上,都得面对效能上的严格要求,所以,我们必须、也一定可以找到更新也更威的系统架构。
以上是关于大数据时代,我们需要有超越 Hadoop和MapReduce的杀手级技术的主要内容,如果未能解决你的问题,请参考以下文章