福布斯专栏作家Dave Feinleib绘制的大数据企业生态系统图谱,对于全面了解大数据商业应用架构颇有价值。该图包括大数据的技术支撑、服务框架和上层商业应用,基本囊括了目前大数据商业应用的概貌:以Hadoop、MapReduce、Hbase、Cassandra等为技术支撑,搭建数据分析框架、操作框架、服务框架和数据库框架,提供数据供应、日志应用、节点应用、商业智能应用和可视化分析五大类应用[9]。
图5.1 大数据知识图谱
资料来源:IT经理网http://www.ctocio.com/bigdata/7028.html.
大数据的主要技术[10]:
从技术角度讲可能存在多种方法处理和分析大数据,但多数技术都有一些共同的特点,即利用硬件的优势,使用扩展的、并行的处理技术,采用非关系型数据存储处理非结构化和半结构化数据,并对大数据运用高级分析和数据可视化技术,向终端用户传达见解。
市场调研机构Wikibon已经确定了三种将会改变业务分析和数据管理市场的大数据方法。
(1)Hadoop
Hadoop是一个处理、存储和分析海量的分布式、非结构化数据的开源框架,最初由雅虎的Doug Cutting创建。Hadoop的灵感来自于MapReduce,MapReduce是谷歌在2000年代初期开发的用于网页索引的用户定义函数,它被设计用来处理分布在多个并行节点的PB级和EB级数据。
Hadoop集群运行在廉价的商用硬件上,这样硬件扩展就不存在资金压力。Hadoop是开源社区Apache软件联盟(The Apache Software Foundation)的一个项目,数百名参与者通过社区不断改进其核心技术。Hadoop的基本思想是:与将海量数据限定在一台机器运行的方式不同,Hadoop将大数据分成多个部分,这样每个部分都可以被同时处理和分析。
1)Hadoop的工作模式。客户从日志文件、社交媒体供稿和内部数据存储等来源获得非结构化和半结构化数据。Hadoop将数据打碎成“部分”,这些“部分”被载入到商用硬件的多个节点组成的文件系统。Hadoop的默认文件存储系统是Hadoop分布式文件系统,文件系统(如HDFS)善于存储大量非结构化和半结构化数据,因为它们不需要将数据组织成关系型的行和列。
各“部分”被复制多次,并加载到文件系统,这样如果一个节点失效,另一个节点包含失效节点数据的副本。名称节点充当调解人,负责沟通信息:如哪些节点是可用的,某些数据存储在集群的什么地方,以及哪些节点失效。
一旦数据被加载到集群中,它就准备好通过MapReduce框架进行分析。客户提交一个“匹配”的任务(通常是用Java编写的查询语句)到一个被称为作业跟踪器的节点。该作业跟踪器引用名称节点,以确定完成工作需要访问哪些数据,以及所需的数据在集群的存储位置。一旦确定,作业跟踪器向相关节点提交查询。每个节点同时、并行处理,而非将所有数据集中到一个位置处理,这是Hadoop的一个本质特征。
当每个节点处理完指定的作业后,它会存储结果。客户通过任务追踪器启动“Reduce”任务,汇总Map阶段存储在各个节点上的结果数据,获得原始查询的“答案”,然后将“答案”加载到集群的另一个节点中,客户就可以访问这些可以被载入多种分析环境进行分析的结果了,MapReduce的工作到此就完成了。
一旦MapReduce阶段完成,数据科学家和其他人就可以使用高级数据分析技巧对处理后的数据进一步分析,也可以对这些数据建模,将数据从Hadoop集群转移到现有的关系型数据库、数据仓库等传统IT系统进行进一步的分析。
2)Hadoop的技术组件。Hadoop“栈”由多个组件组成。包括:
①Hadoop分布式文件系统(HDFS):所有Hadoop集群的默认存储层。
②名称节点:在Hadoop集群中,提供数据存储位置以及节点失效信息的节点。
③二级节点:名称节点的备份,它会定期复制和存储名称节点的数据,以防名称节点失效。
④作业跟踪器:Hadoop集群中发起和协调MapReduce作业或数据处理任务的节点。
⑤从节点:Hadoop集群的普通节点,从节点存储数据并且从作业跟踪器那里获取数据处理指令。
除了上述组件以外,Hadoop系统还包括许多免费子项目。NoSQL数据存储系统(如Cassandra和HBase)也被用于存储Hadoop的MapReduce作业结果。除了Java,很多MapReduce作业及其他Hadoop的功能都是用Pig语言写的,Pig是专门针对Hadoop设计的开源语言。
3)Hadoop的优点和缺点。Hadoop的主要好处是它可以让企业以节省成本并高效的方式处理和分析大量的非结构化和半结构化数据,而这类数据迄今还没有其他处理方式。因为Hadoop集群可以扩展到PB级甚至EB级数据,企业不再必须依赖于样本数据集,而是可以处理和分析所有相关数据。数据科学家可以采用迭代的方法进行分析,可以不断改进和测试查询语句从而发现以前未知的一些规律或知识。使用Hadoop的成本也很低廉,开发者可以免费下载Apache的Hadoop分布式平台,然后马上就可以开始体验Hadoop。
Hadoop及其组件的不足之处是它们还不成熟,仍处于发展阶段。就像所有新技术一样,实施和管理Hadoop集群,对大量非结构化数据进行高级分析,都需要大量的专业知识、技能和培训。不幸的是,目前Hadoop开发者和数据科学家的缺乏使得众多企业维持复杂的Hadoop集群并利用其优势变得很困难。此外,由于Hadoop的众多组件都是通过技术社区得到改善,并且新的组件不断被创建,因此作为不成熟的开源技术,存在失败的风险。最后,Hadoop是一个面向批处理的框架,这意味着它不支持实时的数据处理和分析。
好消息是,一些聪明的IT人士不断对ApacheHadoop项目做出贡献,新一代的Hadoop开发者和数据科学家们正在走向成熟。因此,该技术的发展日新月异,逐渐变得更加强大而且更易于实施和管理。供应商(包括Hadoop的初创企业Cloudera和Hortonworks)以及成熟的IT中坚企业(如IBM和微软)正在努力开发企业可用的商业Hadoop分布式平台、工具和服务,让部署和管理这项技术成为现实。还有其他一些企业正在努力完善NoSQL(不仅仅是SQL)数据系统,结合Hadoop提供接近实时的分析解决方案。
(2)NoSQL
一种称为NoSQL的新形式的数据库(NotOnlySQL)已经出现,像Hadoop一样,可以处理大量的多结构化数据。但是,如果说Hadoop擅长支持大规模、批量式的历史分析,在大多数情况下(虽然也有一些例外),NoSQL数据库的目的是为最终用户和自动化的大数据应用程序提供大量存储在多结构化数据中的离散数据。这种能力是关系型数据库欠缺的,它根本无法在大数据规模维持基本的性能水平。
在某些情况下,NoSQL和Hadoop可以协同工作。例如,HBase是流行的NoSQL数据库,它仿照谷歌的BigTable,通常部署在HDFS(Hadoop分布式文件系统)之上,为Hadoop提供低延迟的快速查找功能。(www.daowen.com)
目前可用的NoSQL数据库包括:
●HBase
●Cassandra
●MarkLogic
●Aerospike
●MongoDB
●Accumulo
●Riak
●CouchDB
●DynamoDB
目前大多数NoSQL数据库的缺点是,为了性能和可扩展性,它们遵从ACID(原子性,一致性,隔离性,持久性)原则,许多NoSQL数据库还缺乏成熟的管理和监控工具。这些缺点在开源的NoSQL社区和少数厂商的努力下都在克服过程中,这些厂商包括DataStax、Sqrrl、10gen、Aerospike和Couchbase,他们正在尝试商业化各种NoSQL数据库。
(3)大规模并行分析数据库
不同于传统的数据仓库,大规模并行分析数据库能够以必需的最小的数据建模,快速获取大量的结构化数据,可以向外扩展以容纳TB甚至PB级数据。
对最终用户而言,最重要的是大规模并行分析数据库支持近乎实时的复杂SQL查询结果,又称交互式查询功能,而这正是Hadoop明显缺失的能力。大规模并行分析数据库在某些情况下支持接近实时的大数据应用。其基本特性包括:
1)大规模并行处理的能力。就像其名字表明的一样,大规模并行分析数据库采用大规模并行处理的方式同时支持多台机器上的数据采集、处理和查询,相对传统的数据仓库具有更快的性能。传统数据仓库运行在单一机器上,会受到数据采集这个单一瓶颈点的限制。
2)无共享架构。无共享架构可确保分析数据库环境中没有单点故障,在这种架构下,每个节点独立于其他节点,所以如果一台机器出现故障,其他机器可以继续运行。对大规模并行处理环境而言,这点尤其重要,数百台计算机并行处理数据,偶尔出现一台或多台计算机出现故障是不可避免的。
3)列存储结构。大多数大规模并行分析数据库采用列存储结构,而大多数关系型数据库以行结构存储和处理数据。在列存储环境中,由包含必要数据的列决定查询语句的“答案”,而不是由整行的数据决定,从而导致查询结果瞬间可以得出,这也意味着数据不需要像传统的关系数据库那样构造成整齐的表格。
4)强大的数据压缩功能。它们允许分析数据库收集和存储更大量的数据,而且与传统数据库相比占用更少的硬件资源。例如,具有10比1的压缩功能的数据库,可以将10TB字节的数据压缩到1TB。数据编码(包括数据压缩以及相关的技术)是有效的扩展到海量数据的关键。
5)商用硬件。像Hadoop集群一样,大多数(肯定不是全部)大规模并行分析数据库运行在戴尔、IBM等厂商现成的商用硬件上,这使它们能够向外扩展时具有较好的性价比。
6)在内存中进行数据处理。有些(不是全部)大规模并行分析数据库使用动态RAM或闪存进行实时数据处理,有些(如SAP HANA和Aerospike)完全在内存中运行数据,而其他则采用混合的方式,即用较便宜但低性能的软盘内存处理“冷”数据,用动态RAM或闪存处理“热”数据。
然而,大规模并行分析数据库确实有一些盲点,最值得注意的一点是它们并非被设计用来存储、处理和分析大量的半结构化和非结构化数据。
(4)大数据方法的互补
Hadoop、NoSQL和大规模并行分析数据库不是相互排斥的。相反的,Wikibon认为这三种方法是互补的,彼此可以而且应该共存于许多企业。Hadoop擅长处理和分析大量分布式的非结构化数据,以分批的方式进行历史分析;NoSQL数据库擅长为基于Web的大数据应用程序提供接近实时的多结构化数据存储和处理;大规模并行分析数据库最擅长对大容量的主流结构化数据提供接近实时的分析。
例如,Hadoop完成的历史分析可以移植到分析数据库供进一步分析,或者与传统的企业数据仓库的结构化数据进行集成。从大数据分析得到的见解可以而且应该通过大数据应用实现产品化,企业的目标应该是实现一个灵活的大数据架构,在该架构中,三种技术可以尽可能无缝地共享数据和见解。
很多预建的连接器可以帮助Hadoop开发者和管理员实现这种数据集成,同时也有很多厂商提供大数据应用。这些大数据应用将Hadoop、分析数据库和预配置的硬件进行捆绑,可以达到以最小的调整实现快速部署的目的。另外一种情况,Hadapt提供了一个单一平台,这个平台在相同的集群上同时提供SQL和Hadoop/MapReduce的处理功能。Cloudera也在Impala和Hortonworks项目上通过开源倡议推行这一策略。
但是为了充分利用大数据,企业必须采取进一步措施,使用高级分析技术处理数据,并以此得出有意义的见解或发现。数据科学家通过屈指可数的语言或方法(包括SAS和R)执行这项复杂的工作,分析的结果可以通过Tableau这样的工具可视化,也可以通过大数据应用程序进行操作,这些大数据应用程序包括企业自己开发的应用程序和现成的应用程序。其他厂商(包括Platfora和Datameer)正在开发商业智能型的应用程序,这种应用程序允许非核心用户与大数据直接交互。
底层的大数据方法(如Hadoop,NoSQL和大规模并行分析数据库)不仅本身是互补的,而且与大部分大型企业现有的数据管理技术互补。Wikibon并不建议企业CIO们为了大数据方法而“淘汰并更换”企业现有的数据仓库、数据集成和其他数据管理技术。相反,Wikibon认为首席信息官必须像投资组合经理那样思考,重新权衡优先级,为企业走向创新和发展奠定基础,同时采取必要的措施减轻风险因素。用大数据方法替换现有的数据管理技术,只有当它的商业意义和发展计划与现有的数据管理基础设施尽可能无缝地整合时才有意义,最终目标应该是转型为现代数据架构。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。